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


相关文章
|
SQL 分布式计算 Hadoop
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
305 3
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
133 3
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
173 2
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
188 1
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
291 1
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
237 1
|
分布式计算 Hadoop Java
Hadoop编辑hadoop-env.sh文件
【7月更文挑战第19天】
1071 5
|
分布式计算 Hadoop Shell
Hadoop修改bashrc或profile文件
【7月更文挑战第16天】
446 2
|
分布式计算 Hadoop 关系型数据库
实时计算 Flink版操作报错合集之Hadoop在将文件写入HDFS时,无法在所有指定的数据节点上进行复制,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL 分布式计算 关系型数据库
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
222 2

相关实验场景

更多