[Hadoop]Hadoop上传本地文件到HDFS

来源:互联网 发布:淘宝禁售商品有哪些 编辑:程序博客网 时间:2024/05/17 08:24

代码如下,需要注意标红处,要不然会出现FileNotFound(permission deny)得错误。

package com.hadooplearn.test;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
//学习HDFS的使用
public class HdfsLearn {
    //复制文件
    public void copyFile(String src,String dst){
        Configuration conf = new Configuration();
        conf.set("mapred.job.tracker", "localhost:9001");  
        conf.set("fs.default.name", "hdfs://localhost:9000");

        FileSystem hdfs = null;
        try {
            hdfs = FileSystem.get(conf);
            Path srcPath = new Path(src);
            Path dstPath = new Path(dst);
            hdfs.copyFromLocalFile(srcPath, dstPath);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally{
            if(hdfs != null){
                try {
                    hdfs.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
    
    public static void main(String[] args){
        System.setProperty("HADOOP_USER_NAME", "pijing");
        String src = "/home/pijing/input/test1";
        String dst = "/";
        HdfsLearn learn = new HdfsLearn();
        learn.copyFile(src, dst);
        System.out.println("copy file from local file system to HDFS");
    }
}

0 0
原创粉丝点击