hdfs的实验总结_HDFS原理及操作

HDFS实验报告

目录:

一、三个实验总结步骤

二、三个实验具体步骤

三、实验心得

一、三个实验总结步骤

(1)测试例子1.编译代码读取HDFS文件内容

在/app/hadoop-1.1.2目录下建立myclass和input目录,

在hdfs中建立目录/class4;

input目录下建立并编写quangle.txt文件,

将本地quangle.txt文件复制到class4目录下;

myclass目录下建立、编写并编译FileSystemCat.java代码文件,

使用编译代码读取class4目录下的quangle.txt文件。

(2)测试例子2.编译代码读取本地文件并将本地文件的部分内容写到HDFS

myclass目录下建立、编写并编译LocalFile2Hdfs.java代码文件;

input目录下建立并编写local2hdfs.txt文件;

使用编译代码将local2hdfs.txt文件的部分内容上传到HDFS,

成为class4目录下的新文件local2hdfs_part.txt;

读取local2hdfs_part.txt文件内容验证是否上传成功。

(3)测试例子3.编译代码读取HDFS中文件并将HDFS中文件的部分内容写到本地

myclass目录下建立、编写并编译Hdfs2LocalFile.java代码文件;

input目录下建立并编写hdfs2local.txt文件,

将该hdfs2local.txt文件复制到class4目录下;

使用编译代码将class4目录下hdfs2local.txt文件的部分内容写入本地,

成为input目录下的新文件hdfs2local_part.txt;

读取hdfs2local_part.txt文件内容验证是否成功。

二、三个实验具体步骤

3.1 测试例子1内容

在Hadoop集群中编译并运行《权威指南》中的例3.2,读取HDFS文件内容

3.3 实现过程

3.3.1 创建代码目录

1.配置主机名为hadoop;

2.启动Hadoop;

3.在/app/hadoop-1.1.2目录下建立myclass和input目录;

3.3.2 建立例子文件上传到HDFS中

1.进入/app/hadoop-1.1.2/input目录,在该目录中建立并编辑quangle.txt文件

2.在hdfs中建立目录/class4

(hadoop fs -mkdir /class4)

3.把例子文件上传到hdfs的/class4文件夹中

(

$ cd /app/hadoop-1.1.2/input

$ hadoop fs -copyFromLocal quangle.txt /class4/quangle.txt

$ hadoop fs -ls /class4

)

3.3.3 配置本地环境

对/app/hadoop-1.1.2/conf目录中的hadoop-env.sh进行配置,如下所示:

(

$ cd /app/hadoop-1.1.2/conf

$ sudo vi hadoop-env.sh

)

加入对HADOOP_CLASPATH变量值,值为/app/hadoop-1.1.2/myclass,设置完毕后编译该配置文件,使配置生效

(export HADOOP_CLASSPATH=/app/hadoop-1.1.2/myclass)

3.3.4 编写代码

进入/app/hadoop-1.1.2/myclass目录,在该目录中建立FileSystemCat.java代码文件,命令如下:

$ cd /app/hadoop-1.1.2/myclass/

$ vi FileSystemCat.java

3.3.5 编译代码

在/app/hadoop-1.1.2/myclass目录中,使用如下命令编译代码:

$ javac -classpath ../hadoop-core-1.1.2.jar FileSystemCat.java

3.3.6 使用编译代码读取HDFS文件

使用如下命令读取HDFS中/class4/quangle.txt内容:

$ hadoop FileSystemCat /class4/quangle.txt

4 测试例子2

4.1 测试例子2内容

在本地文件系统生成一个大约100字节的文本文件,写一段程序读入这个文件并将其第101-120字节的内容写入HDFS成为一个新文件。

4.3 实现过程

4.3.1 编写代码

进入/app/hadoop-1.1.2/myclass目录,在该目录中建立LocalFile2Hdfs.java代码文件,命令如下:

cd /app/hadoop-1.1.2/myclass/

vi LocalFile2Hdfs.java

4.3.2 编译代码

在/app/hadoop-1.1.2/myclass目录中,使用如下命令编译代码:

javac -classpath ../hadoop-core-1.1.2.jar LocalFile2Hdfs.java

4.3.3 建立测试文件

进入/app/hadoop-1.1.2/input目录,在该目录中建立local2hdfs.txt文件

cd /app/hadoop-1.1.2/input/

vi local2hdfs.txt

4.3.4 使用编译代码上传文件内容到HDFS

使用如下命令读取local2hdfs第101-120字节的内容写入HDFS成为一个新文件:

cd /app/hadoop-1.1.2/input

hadoop LocalFile2Hdfs local2hdfs.txt /class4/local2hdfs_part.txt

4.3.5 验证是否成功

使用如下命令读取local2hdfs_part.txt内容:

hadoop fs -cat /class4/local2hdfs_part.txt

5 测试例子3

5.1 测试例子3内容

测试例子2的反向操作,在HDFS中生成一个大约100字节的文本文件,写一段程序读入这个文件,并将其第101-120字节的内容写入本地文件系统成为一个新文件。

5.3 实现过程

5.3.1 编写代码

进入/app/hadoop-1.1.2/myclass目录,在该目录中建立Hdfs2LocalFile.java代码文件,命令如下:

cd /app/hadoop-1.1.2/myclass/

vi Hdfs2LocalFile.java

5.3.2 编译代码

在/app/hadoop-1.1.2/myclass目录中,使用如下命令编译代码:

javac -classpath ../hadoop-core-1.1.2.jar Hdfs2LocalFile.java

5.3.3 建立测试文件

进入/app/hadoop-1.1.2/input目录,在该目录中建立hdfs2local.txt文件

cd /app/hadoop-1.1.2/input/

vi hdfs2local.txt

在/app/hadoop-1.1.2/input目录下把该文件上传到hdfs的/class4/文件夹中

hadoop fs -copyFromLocal hdfs2local.txt /class4/hdfs2local.txt

hadoop fs -ls /class4/

5.3.4 使用编译代码把文件内容从HDFS输出到文件系统中

使用如下命令读取hdfs2local.txt第101-120字节的内容写入本地文件系统成为一个新文件:

hadoop Hdfs2LocalFile /class4/hdfs2local.txt hdfs2local_part.txt

三、实验心得

通过本次实验对HDFS有了更深一步的理解。

不仅了解到HDFS的读写操作的基本流程,

借助open()、read()方法执行HDFS读操作,

借助create()、write()方法执行HDFS写操作,

两种操作最后都借助close()关闭读或写。

还理解了存在本地指的是文件存储在linux的某个目录下,

提交到HDFS指的是文件存储在分布式文件系统的DN里。


版权声明:本文为weixin_39608988原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。