mapreduce—使用java runtime.exec()在hadoop上运行命令

whitzsjs  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(321)

有一个名为“袖扣”的程序,其运行方式如下:

cufflinks -o <output-dir>  <input-file>

该程序以1个文件作为输入,在“输出目录”中生成4个文件作为输出。
我尝试在hadoop集群上使用Map器类中的runtime.exec()运行相同的程序。我正在设置
输出目录=/some/path/on/hdfs
我原以为这4个文件将在hdfs上作为o/p生成。但是,事实并非如此,hdfs上的o/p目录不包含这4个文件中的任何一个。
然后我试着设置
输出目录=/tmp/output/
而且成功了。
有人能提出为什么它不能在hdfs上工作吗?我需要做什么才能让它在hdfs上工作?
谢谢。

pcww981p

pcww981p1#

问题是袖扣程序应该使用hdfs内部api在hdfs中创建文件而不是常规的文件操作。

相关问题