gpt4 book ai didi

hadoop - 如何在没有命令行的情况下使用 Java 从 Hadoop 读取文件

转载 作者:可可西里 更新时间:2023-11-01 14:55:11 26 4
gpt4 key购买 nike

我想从 hadoop 系统读取文件,我可以使用下面的代码做到这一点

String uri = theFilename;
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);
InputStream in = null;
try {
in = fs.open(new Path(uri));
IOUtils.copyBytes(in, System.out, 4096, false);
} finally {
IOUtils.closeStream(in);
}

要运行这个文件,我必须运行 hadoop jar myjar.jar com.mycompany.cloud.CatFile/filepathin_hadoop这样可行。但是我怎样才能从其他程序做同样的事情,我的意思是不使用 hadoop jar 命令。

最佳答案

您可以将您的 core-site.xml 添加到该配置对象,以便它知道您的 HDFS 实例的 URI。此方法需要设置 HADOOP_HOME

Configuration conf = new Configuration();
Path coreSitePath = new Path(System.getenv("HADOOP_HOME"), "conf/core-site.xml");
conf.addResource(coreSitePath);
FileSystem hdfs = FileSystem.get(conf);
// rest of code the same

现在,无需使用 hadoop jar,您就可以打开与 HDFS 实例的连接。

编辑:必须使用 conf.addResource(Path)。如果您使用 String arg,则在类路径中查找该文件名。

关于hadoop - 如何在没有命令行的情况下使用 Java 从 Hadoop 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com