目的:
学习使用hdfs 的java命令操作
相关:
进化:
[0010] windows 下 eclipse 开发 hdfs程序样例 (二)
[0011] 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 本地,
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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 }
备注:
"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,运行程序