[b0007] windows 下 eclipse 开发 hdfs程序样例

目的:

学习使用hdfs 的java命令操作

相关:

进化:

[b0010] windows 下 eclipse 开发 hdfs程序样例 (二)

[b0011] windows 下 eclipse 开发 hdfs程序样例 (三)

环境:

hadoop2.6.4 伪分布式

win7 + eclipse Version: Luna Service Release 1 (4.4.1)

1. 新建项目

1.1 新建java项目  Hadoop_伪分布式

1.2 导入hadoop 2.6.4 的jar包

项目名字上右键->属性->Java构建路径->添加库->用户库,创建用户库 hadoop2.6

点击用户库hadoop2.6->添加外部jar  依次将hadoop2.6.4 解压目录下的所有jar包,及对应子目录 lib下jar包导入

share\hadoop\common

share\hadoop\hdfs

share\hadoop\yarn

share\hadoop\mapredude

 

2.新建类,编写如下代码   

   通过流的方式,从hdfs 下载一个文件到linux 本地,

 1 /**
 2  *  功能:      将 hdfs://ssmaster:9000/data/paper.txt下载到Linux下/home/hadoop/paper.txt
 3  *  调用方式:hadoop jar 打包包名.jar  
 4  */
 5 package hadoop.hdfs;
 6 
 7 import java.io.FileNotFoundException;
 8 import java.io.FileOutputStream;
 9 import java.io.IOException;
10 
11 import org.apache.commons.compress.utils.IOUtils;
12 import org.apache.hadoop.conf.Configuration;
13 import org.apache.hadoop.fs.FSDataInputStream;
14 import org.apache.hadoop.fs.FileSystem;
15 import org.apache.hadoop.fs.Path;
16 
17 public class Test_Fun {
18 
19     public static void main(String[] args) {
20         
21     Configuration conf =new Configuration();
22     
23     FileSystem fs = null;
24     Path src = null;
25     FSDataInputStream in = null;
26     FileOutputStream out = null;
27       
28     src = new Path("hdfs://ssmaster:9000/data/paper.txt" );
29     
30     try {
31         
32       fs = FileSystem.get(conf) ;
33       in = fs.open(src);
34 
35        } catch (IOException e) {
36         e.printStackTrace(); 
37     }
38     
39     try {
40         out = new FileOutputStream ("/home/hadoop/paper.txt");
41     } catch (FileNotFoundException e) {
42         e.printStackTrace();
43     }
44     
45     try {
46         IOUtils.copy(in, out);
47     } catch (IOException e) {
48         e.printStackTrace();
49     }
50 
51 }
52 }
View Code

备注:

"hdfs://ssmaster:9000/data/paper.txt"  中前面的路径取自 hadoop安装后的配置文件 core-site.xml里的

参数 <name>fs.defaultFS</name><value>hdfs://ssmaster:9000</value>

3.导出jar包、执行

右键项目名字->导出->java/jar文件 ->指定jar路径名字->指定main类 ->完成

上传到linux服务器,执行程序,查看结果

hadoop@ssmaster:~/java_program$ hadoop jar hadoop_hdfs_download.jar
hadoop@ssmaster:~$ ls
Desktop    Downloads         hadoop-2.6.4.tar.gz  java_program  paper.txt              Pictures  spark-2.0.1-bin-hadoop2.6.tgz  Videos
Documents  examples.desktop  hdfs-site.xml        Music         park-2.0.1-bin-hadoop  Public    Templates

 

总结:

步骤麻烦啰嗦。

其他可选方案,需要研究

windows下的eclipse 中的程序运行,直接操作hadoop

在linux中安装eclipse,运行程序

 

posted @ 2016-10-23 22:14  sunzebo  阅读(910)  评论(0编辑  收藏  举报