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

时间:2023-03-08 16:51:30

目的:

学习windows 开发hadoop程序的配置

相关:

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

环境:

基于以下环境配置好后。

[b0008] Windows 7 下 hadoop 2.6.4 eclipse 本地开发调试配置

1. 新建HDFS下载文件类

在已有mapreduce项目中新建类添加如下代码,代码从[0007]中取出小修改

功能:从hdfs下载文件到windows本地

package hadoop.hdfs;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import org.apache.commons.compress.utils.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; /**
* 功能: 将 hdfs://ssmaster:9000/data/paper.txt下载到Windows下c:\paper.txt
* 调用方式:hadoop jar 打包包名.jar
*/ public class Hdfs_Download { public static void main(String[] args) { Configuration conf =new Configuration(); FileSystem fs = null;
Path src = null;
FSDataInputStream in = null;
FileOutputStream out = null; // src = new Path("hdfs://ssmaster:9000/data/paper.txt" ); src = new Path("hdfs://ssmaster:9000/data/paper.txt" ); try { fs = FileSystem.get(conf) ;
in = fs.open(src); } catch (IOException e) {
e.printStackTrace();
} try {
out = new FileOutputStream ("c:\\paper.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
} try {
IOUtils.copy(in, out);
} catch (IOException e) {
e.printStackTrace();
} }
}

2.复制hadoop配置好的core-site.xml,hdfs-site.xml,mapred-site.xml到src目录下

如图

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

3 运行

右键类名,运行为 java application,正常会执行成功

异常

参考[0009]hadoop异常处理,一般都是配置文件没有

总结:

比[0007]打包执行方便一些。

存在问题:

如果打包到linux下执行,需要修改路径

如何在eclipse中,直接跑程序,下载hdfs到linxu本地