java - 使用java程序合并hdfs中的文件

标签 java hadoop hdfs bigdata

我是大数据的新手,正在做一个小任务,我需要将多个文件合并到 hdfs 中的单个文件中。我正在使用 Java 程序来完成此操作(将所有类似于 prod* 的文件合并到一个 prod.txt 文件中)。我已经寻求帮助,到目前为止我编写的代码是:

公共(public)类合并文件{

public static void main(String[] args) throws FileNotFoundException {
    // TODO Auto-generated method stub

    String srcPath = "/user/demouser/first/prod*"; 
    String dstPath = "/user/demouser/second/prod.txt"; 
    Configuration conf = new Configuration(); 
    conf.set("fs.default.name","http://hostname:portnumber/");
    try 
    { 
        FileSystem hdfs = FileSystem.get(conf); 
        FileUtil.copyMerge(hdfs, new Path(srcPath), hdfs, new Path(dstPath), false, conf, null); 
        } 
    catch (IOException e) 
    { }

    }

}

它不起作用,我无法弄清楚如何解决这个问题。我也不明白“fs.default.name”的工作原理。请帮忙。

最佳答案

你需要一个真实的主机名和端口号来替换' http://hostname:portnumber/ ',您的主机名和端口号必须可以从您的计算机访问。它应该是您的文件系统的位置。

关于java - 使用java程序合并hdfs中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50250881/

相关文章:

java - 朝最有效的方向旋转

java - Jersey :可以从父类继承路径

hadoop - E0405:提交请求没有任何应用程序或库路径

hadoop - 从头开始dml-hive

java - 从 Spark 中的压缩中读取整个文本文件

java - 使用jdbc在oracle中将InputStream保存为clob

java - 打印出由 JAVA 堆栈操作的表达式

performance - hadoop/YARN如何确定一个节点很慢,它对该节点的任务有何作用?

hadoop - 为什么tensorflow无法连接到HDFS?

hadoop - 使用Ambari逐步安装Plain hadoop集群