복붙노트

[HADOOP] 실행의 실행 중에 하둡에서 슬레이브 노드의 호스트 이름을 찾기지도하는-감소

HADOOP

실행의 실행 중에 하둡에서 슬레이브 노드의 호스트 이름을 찾기지도하는-감소

나는지도 하둡 2.9.0 다중 노드 클러스터에서 코드를 줄일 실행하는 방법을 알고 싶어? 나는 어떤 노드 처리하는 입력 이해 싶어요. 사실, 어떻게 입력 데이터의 모든 부분이있는 매퍼에 의해 처리 찾는 방법은? 나는 마스터에서 다음 파이썬 코드를 실행 :

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

코드는 슬레이브 노드에서 실행되지 않는 이유는 무엇입니까?

해결법

    from https://stackoverflow.com/questions/50656448/finding-hostname-of-slave-nodes-in-hadoop-during-execution-of-running-map-reduce by cc-by-sa and MIT license