java - 不使用 sudo 将文件从 HDFS 复制到本地系统

标签 java hadoop

我想复制 part-r-00000 文件的内容,我尝试了下面的代码,但它显示权限被拒绝。我知道这可以使用 sudo 从终端完成。有没有办法使用java程序来做到这一点。需要帮助

config.set("fs.default.name","hdfs://127.0.0.1:54310/");
FileSystem hdFS = FileSystem.get(config);
Path local = new Path("/home/abc/cloud");
Path hdfs = new Path("/home/hduser/all_output/Phase4_OutPut");
if (hdFS.exists(hdfs))
    hdFS.copyToLocalFile(false,new Path(finalP+"/part-r-00000"), local);
else
    System.out.println("NOT COPIED");

最佳答案

  • 检查您是否具有访问文件
  • 所需的权限
  • 您可以使用 hadoop native 命令来 copyToLocal

    Hadoop fs -copyToLocal/hdfslocation/local
    或者

    Hadoop fs -get/souce/hdfslocation/local
  • 关于java - 不使用 sudo 将文件从 HDFS 复制到本地系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32562129/

    相关文章:

    使用第三方 .jar 文件时出现 java.lang.NoClassDefFoundError

    java - CriteriaQuery 与 OrderBy 和 MaxResult 仅返回非 NULL 行

    serialization - oozie 上的 Avro Map-Reduce

    amazon-web-services - Hadoop对云延迟的影响

    java - 两个 Java 函数声明之间的区别

    java - 是否可以保存从http读取的zip文件并直接将其保存到Databse中,而无需在java中物理创建它

    java - 如何按条件从队列中删除消息?

    java - 无法解释的 Java HashMap 行为

    hadoop - 通过PigServer API执行Pig Shell命令

    hadoop - Hadoop MapReduce未运行0%Map and Reduce