首页 > 代码库 > [0010] windows 下 eclipse 开发 hdfs程序样例 (二)

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

目的:

学习windows 开发hadoop程序的配置

相关:

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

环境:

基于以下环境配置好后。

[0008] 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 = http://www.mamicode.com/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();
    }

}
}
View Code

 

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

如图

技术分享

 

3 运行

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

 

异常

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

 

总结:

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

存在问题:

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

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

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