我有一个关于 mrjob 的问题。我使用一个名称节点和一个作业跟踪器在 3 个数据节点上使用 hadoopcluster。从一个漂亮的示例应用程序开始,我写了如下内容
first_script.py:
for i in range(1,2000000):
print "My Line "+str(i)
这显然是在向 stdout 写入一堆行,辅助脚本是 mrjobs Mapper 和 Reducer。我尝试从 unix (GNU) 调用:
python first_script| python second_script.py -r hadoop
这完成了工作,但它正在将输入完全上传到 hdfs。就在所有内容都上传完毕后,他开始了第二份工作。所以我的问题是:是否可以强制流?(比如发送 EOF?)还是我弄错了整个事情?