Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以“输出”为例;选择";在hive中作为Hadoop jar输入文件的输入_Hadoop_Jar_Hive_Hadoop Streaming - Fatal编程技术网

以“输出”为例;选择";在hive中作为Hadoop jar输入文件的输入

以“输出”为例;选择";在hive中作为Hadoop jar输入文件的输入,hadoop,jar,hive,hadoop-streaming,Hadoop,Jar,Hive,Hadoop Streaming,我正在试验一个名为vowpal wabbit的机器学习软件包。 要在hadoop集群上运行vowpal wabbit,建议执行以下操作: hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.3.0.jar \ -Dmapred.job.name="vw allreduce $in_directory" \ -Dmapred.map.tasks.spe

我正在试验一个名为vowpal wabbit的机器学习软件包。 要在hadoop集群上运行vowpal wabbit,建议执行以下操作:

hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.3.0.jar \
    -Dmapred.job.name="vw allreduce $in_directory" \
    -Dmapred.map.tasks.speculative.execution=true \
    -Dmapred.reduce.tasks=0 \
    -Dmapred.child.java.opts="-Xmx100m" \
    -Dmapred.task.timeout=600000000 \
    -Dmapred.job.map.memory.mb=1000 \
    -input <in_directory> \
    -output <out_directory> \
    -file /home/produser/vowpal_wabbit/vowpalwabbit/vw \
    -file /usr/lib64/libboost_program_options.so.5 \
    -file /lib64/libz.so.1 \
    -file /home/produser/vowpal_wabbit/cluster/runvw-yarn.sh \
    -mapper /home/produser/vowpal_wabbit/cluster/runvw-yarn.sh \
    -reducer NONE
hadoop-jar/usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.3.0.jar\
-Dmapred.job.name=“vw allreduce$在\u目录中”\
-Dmapred.map.tasks.prospective.execution=true\
-Dmapred.reduce.tasks=0\
-Dmapred.child.java.opts=“-Xmx100m”\
-Dmapred.task.timeout=600000000\
-Dmapred.job.map.memory.mb=1000\
-输入\
-输出\
-文件/home/produser/vowpal_wabbit/vowpalwabbit/vw\
-文件/usr/lib64/libboost_program_options.so.5\
-文件/lib64/libz.so.1\
-文件/home/produser/vowpal_wabbit/cluster/runvw-warn.sh\
-mapper/home/produser/vowpal_wabbit/cluster/runvw-warn.sh\
-无减速器
其中runvw-warn.sh作为映射器,将在每台机器上调用vowpal wabbit的命令,其中包含存储在机器上的数据片段

在传入数据之前,我必须重新格式化数据。我尝试使用配置单元查询从网格中选择数据,重新格式化数据,然后将其传递给“hadoopjar”命令。但我不想在集群上存储重新格式化的数据以浪费空间。所以我不知道在“hadoopjar”命令中的“-input”选项后面应该放什么

所以我的问题是,有没有办法在“-input”命令后面加上类似“stdin”的内容? 在选择数据之后,我应该将“hadoopjar”命令放在我的配置单元查询中的什么位置

另外,我发现了“hive--ServiceJAR”,它看起来很像HadoopJAR,这有帮助吗


谢谢大家!!我几周前才开始学习hadoop和hive,所以如果您有更好的设计或解决方案,请随时告诉我。我可以重写每件事。

看起来您将运行两轮Mapreduce:第一轮是Hive查询,第二轮是Mapreduce流。就我而言,要使用多轮Mapreduce作业,我们始终需要在轮之间向hdfs写入/读取数据。这就是为什么MapReduce总是被称为批处理操作


因此,您的问题的答案是否定的。

您能否存储重新格式化的数据,并在作业完成后将其删除?我认为hadoop不能支持您所说的“stdin”,因为它是本地的“stdin”,但是MapReduce任务可能会在其他节点上运行。