文章目录
- 一、实验环境
- 二、实验内容
- (一)数据准备
- (二)编程环境准备
- (三)使用Hadoop API操作HDFS文件系统
- (四)使用Hadoop API + Java IO流操作HDFS文件系统
- 三、实验步骤
- (一)数据准备
- (二)编程环境准备
- 1、启动IDEA
- 2、创建Maven项目
- 3、添加项目依赖
- (三)使用Hadoop API操作HDFS文件系统
- 1、获取文件系统并配置在集群上运行
- 2、创建目录
- 3、上传文件
- 4、下载文件
- 5、删除文件/目录
- 6、列出指定路径下的文件和目录
- 7、辅助代码
- (四)使用Hadoop API + Java IO流操作HDFS文件系统
- 4.1、获取文件系统并配置在集群上运行
- 2、上传文件(IO流)
- 3、读取文件(IO流)
- 4、下载文件(IO流)
- 5、辅助代码
一、实验环境
- 本实验主要涉及到了4台虚拟机,其中1台虚拟机的操作系统是
ubuntu desktop
,另外3台虚拟机的操作系统是centos server
。
- 本实验已经搭建好了Hadoop HA的完全分布式集群
二、实验内容
- 我们将一同探讨数据处理中至关重要的一环——Hadoop文件系统(HDFS)的操作。我们将分为四个主要部分,分别是数据准备、编程环境准备、使用Hadoop API操作HDFS文件系统以及使用Hadoop API结合Java IO流进行操作。
(一)数据准备
- 在进行任何数据处理之前,充分准备好数据是至关重要的一步。这一部分将介绍数据准备的重要性,以及如何有效地准备数据以供后续处理使用。
(二)编程环境准备
- 在进行HDFS文件系统的操作之前,我们需要确保我们的编程环境已经得到了妥善的准备。这包括获取文件系统、配置集群环境等步骤,确保我们的操作能够在集群上运行。
(三)使用Hadoop API操作HDFS文件系统
这一部分是我们的重头戏,我们将使用Hadoop API进行各种文件系统的操作。从创建目录到上传、下载、删除文件,再到列出指定路径下的文件和目录,我们将一一演示如何使用Hadoop API轻松地完成这些操作。同时,我们也会分享一些辅助代码,使大家更好地理解和应用这些操作。
(四)使用Hadoop API + Java IO流操作HDFS文件系统
-
在这一部分,我们将进一步深入,结合Java IO流,展示如何通过IO流上传、读取和下载文件。这将为大家提供更多的灵活性和掌握文件系统操作的技能。
-
本次实验帮助大家更好地理解和应用Hadoop文件系统的操作,使大家能够在实际工作中更加得心应手。接下来,我们将深入到各个部分,让我们一同来探索这个数据处理的世界吧!
三、实验步骤
(一)数据准备
- 在
desktop
节点打开终端
- 切换到
/opt
目录
- 创建数据文件
data.txt
- 创建数据文件
localFile.txt
- 下载日志属性文件,执行命令:
wget 192.168.192.81:8086/api/web/resource/bigdata/Hadoop_Base/06/expPackages/log4j.properties
- 下载Hadoop核心配置文件
core-site.xml
,执行命令:wget 192.168.192.81:8086/api/web/resource/bigdata/Hadoop_Base/06/expPackages/core-site.xml
- 下载Hadoop分布式文件系统配置文件
hdfs-site.xml
,执行命令:wget 192.168.192.81:8086/api/web/resource/bigdata/Hadoop_Base/06/expPackages/hdfs-site.xml
(二)编程环境准备
1、启动IDEA
-
在desktop节点上启动IDEA
-
勾选用户协议
-
单击【Continue】按钮
2、创建Maven项目
- 单击欢迎窗口中的【New Project】按钮,在左边栏里选择【Maven】类型
- 单击【Next】按钮,在对话框里设置项目名称、位置、组标识和构件标识
- 单击【Finish】按钮,在弹出的【Tip of the Day】消息框里勾选【Don’t show tips】复选框
- 单击【Close】按钮,看到一个空的Maven项目
3、添加项目依赖
- 在
pom.xml
文件里添加相关依赖
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.6</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.6</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
</dependencies>