没有输入文件的 Hadoop 流作业

标签 hadoop hadoop-streaming

是否可以执行没有输入文件的 Hadoop Streaming 作业?

在我的用例中,我能够使用单个映射器和执行参数为 reducer 生成必要的记录。目前,我使用的是单行 stub 输入文件,我想删除此要求。

我们有 2 个用例。
1)

  1. 我想将文件加载从所有节点可用的网络位置分发到 hdfs。基本上,我将在映射器中运行 ls 并将输出发送到一小组缩减器。
  2. 我们将针对多个模型利用多个不同的参数范围进行拟合。模型名称不会更改,并将作为键进入 reducer,同时在映射器中生成要运行的测试列表。

最佳答案

根据docs这是不可能的。以下是执行需要的参数:

  • 输入目录名或文件名
  • 输出目录名
  • 映射器可执行文件或 JavaClassName
  • reducer 可执行文件或 JavaClassName

目前看来提供一个虚拟输入文件是可行的方法。

关于没有输入文件的 Hadoop 流作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821005/

相关文章:

hadoop - 加入两个表并在配置单元的新表中插入值

amazon-web-services - 无法使用 Hadoop 访问 S3 存储桶

hadoop - 如何让EMR先执行customer jar

hadoop - 使用MapReduce在指定程度内结识 friend

python - Hadoop 流 - 意想不到的争论

hadoop - 如果我使用 -mapper cat 而不是 -mapper org.apache.hadoop.mapred.lib.IdentityMapper,Hadoop Streaming 的性能会降低吗?

java - 为什么这个mapreduce程序可以使用不合格的 `Context`而不导入它?

hadoop - Apache Spark 如何实现比 Hadoop MapReduce 快 100 倍的速度以及在什么场景下?

hadoop - 基于 Hadoop 的流媒体框架,支持 ORC、parquet 文件格式

qt - 在 Qt 中使用 hadoop