Я хочу знать, как выполнить код преобразования карты в Hadoop 2.9.0 многоузловой кластер?Я хочу понять, какой узел процесса, какой вход.Собственно, как найти, какая часть входных данных обрабатывается каким картографом?Я выполнил следующий код Python на мастере:
import sys
import socket
for line in sys.stdin:
line = line.strip()
words = line.split()
for word in words:
print('%s\t%s\t%s' % (word, 1, socket.gethostname()))
Я использовал socket.gethostname()
для поиска имени узла узлов.Я ожидаю, что выходные данные этого преобразователя будут (например):
Bye 1 hadoopmaster
Goodbye 1 hadoopmaster
Hadoop 1 hadoopmaster
Hadoop 1 hadoopslave1
Hello 1 hadoopmaster
Hello 1 hadoopslave2
Но это:
Bye 1 hadoopmaster
Goodbye 1 hadoopmaster
Hadoop 1 hadoopmaster
Hadoop 1 hadoopmaster
Hello 1 hadoopmaster
Hello 1 hadoopmaster
Не работает ли код на подчиненных узлах?