下面是这种情况Hadoop的流:写输出到不同的文件
Reducer1
/
Mapper - - Reducer2
\
ReducerN
在减速,我想写在不同文件中的数据,可以说减速看起来像
def reduce():
for line in sys.STDIN:
if(line == type1):
create_type_1_file(line)
if(line == type2):
create_type_2_file(line)
if(line == type3):
create_type3_file(line)
... and so on
def create_type_1_file(line):
# writes to file1
def create_type2_file(line):
# writes to file2
def create_type_3_file(line):
# write to file 3
考虑路径写为:
file1 = /home/user/data/file1
file2 = /home/user/data/file2
file3 = /home/user/data/file3
当我在pseudo-distributed mode(machine with one node and hdfs daemons running)
运行,事情是因为所有的d好aemons将写入同一组文件
问题: - 如果我在1000台机器的群集中运行此操作,它们是否会写入同一组文件?我在这种情况下是writing to local filesystem
- 在hadoop streaming
有没有更好的方法来执行此操作?
谢谢
这个答案可能会帮助(不知道的,因此评论
在减速用法)http://stackoverflow.com/questions/162 6786 /生成-分离 - 输出 - 文件功能于Hadoop的流/ 1690092#1690092 – Nija