将hive中“select”的输出作为hadoopjar输入文件的输入

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

我正在试验一个名为vowpalwabbit的机器学习软件包。要在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

其中runvw-yarn.sh作为Map器,将在每台机器上调用vowpal wabbit的命令,并在其中存储数据
在我把数据传进来之前,我必须重新格式化它。我尝试使用hivequery从网格中选择数据,重新格式化它,然后将其传递给“hadoopjar”命令。但我不想将重新格式化的数据存储在集群上以浪费空间。所以我不知道在“hadoopjar”命令的“-input”选项后面应该放什么。
所以我的问题是,有没有办法在“-input”命令后面加上类似“stdin”的东西?另外,在选择数据之后,我应该将“hadoopjar”命令放在我的配置单元查询中的什么位置?
p、 我找到了“hive-servicejar”,它看起来像hadoopjar,这有帮助吗?
谢谢您!几周前我刚开始学习hadoop和hive,所以如果您有更好的设计或解决方案,请随时告诉我。我可以重写每件事。

f2uvfpb9

f2uvfpb91#

似乎要运行两轮mapreduce:第一轮是hive查询,第二轮是mapreduce流。就我而言,要使用多轮mapreduce作业,我们总是需要在轮之间向hdfs写入/读取hdfs。这就是为什么mapreduce总是被称为批处理操作。
所以,你的问题的答案是否定的。

相关问题