java操作hdfs(上传、下载、查询)
来源:互联网 发布:算法统宗阅读 编辑:程序博客网 时间:2024/05/01 16:18
一、新建java project
二、导入hdfs的配置文件到src目录下
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
三、导入相关jar(hadoop的所有jar包)
四、编写测试类
内容如下:
package com.test;
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.io.FileUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.SequenceFile.CompressionType;
import org.apache.hadoop.io.SequenceFile.Reader;
import org.apache.hadoop.io.Text;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
*
* @ClassName: HdfsTest
* @Description: 测试hdfs的上传和下载,以及
* @author
* @date 2016年5月23日 下午1:29:18
*
*/
public class HdfsTest {
private FileSystem fs ;
Configuration conf;
@Before
public void setup()throws Exception{
//读取classpath目录下所有hadoop的配置
conf =new Configuration();
fs =FileSystem.get(conf);
}
@After
public void end()throws Exception{
fs.close();
}
/**
*
* @Title: mkdir
* @Description: 测试在hdfs上创建文件夹
* @param @throws Exception
* @return void
* @throws
*/
@Test
public void mkdir()throws Exception{
Path dir =new Path("/usr/zs");
fs.mkdirs(dir);
}
/**
*
* @Title: upload
* @Description: 测试上传文件到hdfs上
* @param @throws Exception
* @return void
* @throws
*/
@Test
public void upload()throws Exception{
Path file =new Path("/usr/zs/11.jar");
FSDataOutputStream out = fs.create(file);
IOUtils.copyBytes(new FileInputStream("D:\\demo-step.jar"), out, conf);
}
/**
*
* @Title: ls
* @Description: 列出文件夹下的文件信息
* @param @throws Exception
* @return void
* @throws
*/
@Test
public void ls()throws Exception{
Path dir =new Path("/usr/zs");
FileStatus[] fss = fs.listStatus(dir);
for(FileStatus file :fss){
System.out.println(file.isDirectory());
System.out.println(file.getPath());
System.out.println(file.getModificationTime());
System.out.println(file.getLen());
}
}
/**
* SequenceFile:hdfs 中的序列文件,把多个文件合成(压缩)一个大文件
* :每个小文件:key和value
* string:Text
* int:IntWritble
* long:LongWritble
* Map:MapWritble
* @throws Exception
*/
@Test
public void smallFiles()throws Exception{
Path big =new Path("/usr/zs/test");
SequenceFile.Writer writer =SequenceFile.createWriter(fs, conf, big, Text.class, Text.class, CompressionType.NONE);
for(File file:new File("E:\\data").listFiles()){
writer.append(new Text(file.getName()), new Text(FileUtils.readFileToString(file)));
}
writer.close();
}
/**
*
* @Title: readSmallFiles
* @Description: 读取文件内容
* @param @throws Exception
* @return void
* @throws
*/
@Test
public void readSmallFiles()throws Exception{
Path big =new Path("/usr/zs/test");
SequenceFile.Reader reader =new Reader(fs, big, conf);
while(reader.next(new Text("NOTICE.txt"))){
Text t =new Text();
reader.getCurrentValue(t);
System.out.println(t.toString());
}
}
}
五、备注
以上测试已经通过,可以直接修改后使用。
- java操作hdfs(上传、下载、查询)
- java操作hdfs(上传、下载、查询)
- Java实现远程HDFS的文件操作(新建、上传、下载、删除)
- Java实现远程HDFS的文件操作(新建、上传、下载、删除)
- hdfs基本操作,上传、下载、删除
- 调用JAVA API 对 HDFS 进行文件的读取、写入、上传、下载、删除等操作
- java实现对hdfs文件系统的上传,下载,删除,创建文件夹的操作演示
- java操作hdfs,实现文件上传、下载以及查看当前文件夹下所有文件
- HDFS java 操作 HDFS
- HDFS 使用java api实现上传/下载/删除文件
- HDFS 使用Java api实现上传/下载/删除文件
- hdfs文件上传和下载
- JAVA实现:将文件从本地上传到HDFS上、从HDFS上读取等操作
- Java Ftp 操作上传与下载
- java操作HDFS------Hadoop学习(3)
- java操作HDFS文件系统
- 使用java操作HDFS
- Java API操作HDFS
- Android提高UI流畅度
- 室内环境监测系统的设计二
- java编程思想之构造器和多态
- 指尖上的电商---(9).net开发Solr中的Facet功能
- [SCU 4515] 又见背包 (可行性背包DP)
- java操作hdfs(上传、下载、查询)
- leetcode笔记--Burst Balloons
- Linux下FastDFS图片服务器的搭建
- 指尖上的电商---(10)SolrAdmin中添加多核
- 【题】【数论(拓欧求逆元)、前缀和】NKOJ 3683 沙拉公主的困惑
- 数据库故障恢复修复指南
- Java枚举
- JSON解析器
- Android通过第三方登录理解oauth2.0机制