当前位置: 首页 > 知识库问答 >
问题:

管道命令行hadoop流作业

百里朝
2023-03-14

我想通过管道传输我的hadoop流作业。例如,我运行了一个命令hadoop jarhadoop-streaming.jar-mappermap1.pyreducer.py-inputxx输出 /output1

但是我想使用第一步的输出作为第二步mapduce作业的输入,而不存储在hdfs中,也许输出为标准输出。有没有像linux管道一样的东西?比如hadoop jarhadoop-streaming.jar-mappermap1.pyreducer.py-inputxx|hadoop jarhadoop-streaming.jar-mappermap2.py-减速器reducer2.py-输出 /output

共有1个答案

张敏达
2023-03-14

我遇到了同样的问题,最终使用bash/shell脚本来运行hadoop流命令。我创建了一个名为hadoop的文件。其中包含以下内容:

rm -r output | bin/hadoop jar share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar -files /hadoop-2.7.3/script/mapper.php -input /data/* -output output -mapper "php mapper.php" -jobconf mapred.reduce.tasks=1
#add a beginning/ending php to the file
ex -sc '1i|<?php' -c '$a|?>' -cx output/part-00000
#move the file from /output to /script
mv /hadoop-2.7.3/output/part-00000 /hadoop-2.7.3/script/part-00000.php

part-00000文件成为下一个hadoop命令的part0000.php文件。

 类似资料:
  • 我正在尝试使用hadoop流,其中我有一个java类用作映射器。为了简化问题,我们假设java代码如下: 我可以将其编译为“javac Test.java”,并从命令行运行它,如下所示: 让我们假设我在HDFS中有一个文件:a.dat 现在我尝试在hadoop流中使用(Test.java)作为映射器。我为[1]-mapper命令行选项提供了什么。它应该像下面这样吗?[2]-file命令行选项。我需

  • 我想运行以下命令: 通过一些搜索,我发现这可能是由于没有设置JAVA_HOME的错误,但它在主节点的~/.bashrc中设置正确 hadoop clustter是一个Amazon Elastic Map Reduce集群。

  • 本文向大家介绍CMD命令行管道命令使用介绍,包括了CMD命令行管道命令使用介绍的使用技巧和注意事项,需要的朋友参考一下 一、什么是管道命令   管道命令能够将一个命令的执行结果经过筛选,只保留我们需要的信息。   如 dir 命令会显示目录下所有文件夹和文件,可以使用管道命令| findstr "" 将dir的结果进行筛选,只保留需要的信息 | 命令管道符 格式:第一条命令 | 第二条命令 [|

  • 问题内容: 我想知道是否有一种方法可以在Go中运行一定的时间,然后在从通道接收到值后将其杀死。在似乎不支持命令管道。谢谢。 问题答案: 这是我的管道示例,通过OS Std Pipe归档一个调用文件b,您可以对其进行编辑并添加计时器以执行所需的操作。 文件b:

  • 问题内容: 我必须 在ant中执行command:所以我尝试了这个任务: 但是我对管道有个异议-“ |” : 所以,这就是问题所在:) 问题答案: 管道(|)仅可用于Shell脚本。您将其作为参数传递给Java进程。 因此,您需要执行一个Shell脚本。您可以通过执行(说)并将上面的内容作为shell语句传递来做到这一点(尽管是 内联的 ,您可以编写一个单独的脚本文件,但这似乎有点麻烦)

  • 我正在尝试在Hadoop流中解决倒置单词列表问题(对于每个单词,输出是包含该单词的文件名列表)。输入是包含文本文件的目录的名称。我已经用python编写了映射器和化简器,它们在尝试使用unix管道时工作正常。但是,当使用Hadoop流命令执行时,代码会运行,但作业最终会失败。我怀疑这是Mapper代码中的东西,但似乎无法确切知道问题所在。 我是一个初学者(如果我没有得到正确的东西,请原谅),在VM