Hadoop hdfs编程案例
一、 HDFS编程实践
- 启动hadoop
切换到hadoop安装目录
cd /usr/local/Hadoop
格式化hadoop的hdfs文件系统
./bin/hdfs namenode -format
启动hadoop
查看fs总共有哪些命令
创建用户目录:(多级目录)
cd /usr/local/Hadoop
./bin/hdfs dfs -mkdir –p /user/hadoop
创建两个文件
cd /usr/local/hadoop
./bin/hadoop fs -mkdir -p delete/test1
./bin/hadoop fs -mkdir -p delete/test2
查看创建的两个文件
./bin/hadoop fs -ls delete/
- 将文件上传到hadoop下的input中
./bin/hadoop fs -put -p /home/hadoop/myLocalFile.txt input - 查看input目录中的文件
./bin/hadoop fs -ls input
-
查看myLocalFile.txt文件中的内容
./bin/hadoop fs -cat input/myLocalFile.txt
-
通过web来查询
二、利用Java API与HDFS进行交互
- 搜索eclipse进行安装
- 安装默认的工作目录下
- 创建项目:Dblab (File->new->java-project)
4. 安装项目加载所需要的jar包
Java API所在的jar包都在已经安装好的hadoop文件夹里,路径:/usr/local/hadoop/share/Hadoop
在该界面中,上面的一排目录按钮(即“usr”、“local”、“hadoop”、“share”、“hadoop”、“mapreduce”和“lib”),当点击某个目录按钮时,就会在下面列出该目录的内容。
为了编写一个能够与HDFS交互的Java应用程序,一般需要向Java工程中添加以下JAR包:
(1)”/usr/local/hadoop/share/hadoop/common”目录下的hadoop-common-2.7.1.jar和haoop-nfs-2.7.1.jar;
(2)/usr/local/hadoop/share/hadoop/common/lib”目录下的所有JAR包;
(3)“/usr/local/hadoop/share/hadoop/hdfs”目录下的haoop-hdfs-2.7.1.jar和haoop-hdfs-nfs-2.7.1.jar;
(4)“/usr/local/hadoop/share/hadoop/hdfs/lib”目录下的所有JAR包。
比如,如果要把“/usr/local/hadoop/share/hadoop/common”目录下的hadoop-common-2.7.1.jar和haoop-nfs-2.7.1.jar添加到当前的Java工程中,可以在界面中点击目录按钮,进入到common目录,然后,界面会显示出common目录下的所有内容.
当需要选中某个目录下的所有JAR包时,可以使用“Ctrl+A”组合键进行全选操作。全部添加完毕以后,就可以点击界面右下角的“Finish”按钮。
在Dblab项目中创建类HDFSFileifExist
6. 输入代码:1.判断文件test是否存在
7. 输出代码:判断文件myLocalFile.txt
判断结果 文件存在
三、应用程序的部署
-
将java应用程序生成jar包,部署到Hadoop平台上运行。
在hadoop安装目录下新建一个名称为myapp的目录,用来存放我们自己编写的Hadoop应用程序。
cd /usr/local/hadoop
mkdir myapp -
请在Eclipse工作界面左侧的“Package Explorer”面板中,在工程名称“HDFSExample”上点击鼠标右键,在弹出的菜单中选择“Export”
-
点击next
-
“Launch configuration”用于设置生成的JAR包被部署启动时运行的主类,需要在下拉列表中选择刚才配置的类“HDFSFileIfExist-Dblab”。
-
在“Export destination”中需要设置JAR包要输出保存到哪个目录,比如,这里设置为“/usr/local/hadoop/myapp/Dblab.jar”。在“Library handling”下面选择“Extract required libraries into generated
6. 可以到Linux系统中查看一下生成的Dblab.jar文件
使用hadoop jar命令运行程序。命令如下:
方法一:
cd /usr/local/hadoop
./bin/hadoop jar ./myapp/Dblab.jar
方法二
cd /usr/local/hadoop
java -jar ./myapp/Dblab.jar