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文件夹中 ( hadoop fs -copyFromLocal quangle.txt /class4/quangle.txt $ hadoop fs -ls /class4 )
3.3.3 配置本地环境 对/app/hadoop-1.1.2/conf目录中的hadoop-env.sh进行配置,如下所示: ( 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代码文件,命令如下: 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里。
学习时间 201分钟
操作时间 117分钟
按键次数 4485次
实验次数 7次
报告字数 3469字
是否完成 完成