下面是這種情況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