如何从java创建har(hadoop存档)?

xriantvc  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(382)

我做rest服务,它必须在hadoop集群中创建har文件。其余部分在应用服务器上工作,而不是在hadoop集群中。为此,我使用org.apache.hadoop.tools.hadooparchives。但在创建hadooparchive对象时,我不知道如何设置集群。
hadooparchives har=新hadooparchives(conf);
另一方面,当我尝试使用org.apache.hadoop.fs.fshell时,我使用next
fsshell=newshellinstance();
conf.set(“fs.defaultfs”,”hdfs://...");
shell.setconf(conf);
一切都很顺利。
但我不明白同样的hadoop是如何实现的。
谢谢。

yc0p9oo0

yc0p9oo01#

你最好的选择是跑步 hadoop archive 命令作为外部进程(使用 ProcessBuilder 例如),并将配置作为 HADOOP_CONF 环境变量。否则,您将不得不编写一个mapreduce作业并直接从rest服务启动它,这将非常复杂。 HadoopArchives 本质上是一个命令行实用程序,而不是设计为用作库。

相关问题