我做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是如何实现的。
谢谢。
1条答案
按热度按时间yc0p9oo01#
你最好的选择是跑步
hadoop archive
命令作为外部进程(使用ProcessBuilder
例如),并将配置作为HADOOP_CONF
环境变量。否则,您将不得不编写一个mapreduce作业并直接从rest服务启动它,这将非常复杂。HadoopArchives
本质上是一个命令行实用程序,而不是设计为用作库。