hadoop实现文件的上传下载

简介: hadoop实现文件的上传下载

文章目录

1.环境搭建

创建一个Maven项目,这里就不多介绍,hadoop单节点的搭建参考上篇博客。

引入客户端依赖,注意版本需要一致

1)引入依赖

<dependency>

           <groupId>org.apache.hadoop</groupId>

           <artifactId>hadoop-client</artifactId>

           <version>2.6.5</version>

       </dependency>

2 需要将配置文件拷贝到resource下

ffe4f85bd1424a6e8f80e710b635217a.png

2.代码编写

客户端连接与关闭的代码

   public Configuration conf = null;

   public FileSystem fs = null;

   /**

    * 之前

    * @throws Exception

    */

   @Before

   public void conn() throws Exception {

       conf = new Configuration(true);//true

       //去环境变量 HADOOP_USER_NAME  root

       fs = FileSystem.get(URI.create("hdfs://node01:9000/"),conf,"root");

   }

   @After

   public void close() throws Exception {

       fs.close();

   }

1) 创建目录

 /**

    * 测试创建目录

    * @throws Exception

    */

   @Test

   public void mkdir() throws Exception {

       Path dir = new Path("/elite");

       if(fs.exists(dir)){

           fs.delete(dir,true);

       }

       fs.mkdirs(dir);

   }

54443a90a29e43928d9e2e6a8773ce51.png

2.上传文件

  /**

    * 测试文件上传

    * @throws Exception

    */

   @Test

   public void upload() throws Exception {

       BufferedInputStream input = new BufferedInputStream(new FileInputStream(new File("D:\\devproject\\devcode\\code\\bigdata\\src\\main\\resources\\test.txt")));

       Path outfile   = new Path("/elite/test.txt");

       FSDataOutputStream output = fs.create(outfile);

       IOUtils.copyBytes(input,output,conf,true);

   }

00452e8f30474849b2610b190d81d851.png

3.下载文件

/**

    * 文件存储以块来切分

    * @throws Exception

    */

   @Test

   public void blocks() throws Exception {

       Path file = new Path("/elite/data.txt");

       FileStatus fss = fs.getFileStatus(file);

       //输出块信息

       BlockLocation[] blks = fs.getFileBlockLocations(fss, 0, fss.getLen());

       for (BlockLocation b : blks) {

           System.out.println(b);

       }

       FSDataInputStream in = fs.open(file);

       System.out.print((char) in.readByte());

       System.out.print((char) in.readByte());

       System.out.print((char) in.readByte());

       System.out.print((char) in.readByte());

       System.out.print((char) in.readByte());

       System.out.print((char) in.readByte());

       System.out.print((char) in.readByte());

       System.out.print((char) in.readByte());

   }

输出

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

0,9,node01

12312312

Process finished with exit code 0

15e4d474357a40c2b0193a5b3713f5ab.png


相关文章
|
7月前
|
分布式计算 大数据 Hadoop
【大数据开发技术】实验03-Hadoop读取文件
【大数据开发技术】实验03-Hadoop读取文件
119 0
|
5月前
|
存储 分布式计算 Hadoop
Hadoop分块存储解析及还原分块存储的文件
Hadoop分块存储解析及还原分块存储的文件
25 0
|
5月前
|
分布式计算 Hadoop Linux
解决Hadoop在浏览器中Browse Directory,无法下载文件的问题
解决Hadoop在浏览器中Browse Directory,无法下载文件的问题
37 0
|
6月前
|
分布式计算 Hadoop Java
Hadoop学习笔记:运行wordcount对文件字符串进行统计案例
Hadoop学习笔记:运行wordcount对文件字符串进行统计案例
34 0
|
8月前
|
SQL 存储 分布式计算
大数据Hadoop小文件问题与企业级解决方案
大数据Hadoop小文件问题与企业级解决方案
44 0
|
9月前
|
机器学习/深度学习 分布式计算 资源调度
Hadoop3 Centos 7编译安装和文件配置(内附编译好的包)
Hadoop3 Centos 7编译安装和文件配置(内附编译好的包)
157 1
|
11月前
|
存储 分布式计算 Java
|
12月前
|
分布式计算 Hadoop Shell
开启hadoop后对文件执行shell操作
开启hadoop后对文件执行shell操作
|
分布式计算 Hadoop
Hadoop学习:MapReduce实现文件的解压缩
Hadoop学习:MapReduce实现文件的解压缩
118 0
|
分布式计算 Hadoop
Hadoop 查看Fsimage和Edits文件 命令
1.oiv查看Fsimage文件
175 0

相关实验场景

更多