노드 종류

  NameNode

  SecondaryNameNode

  DataNode

  NodeManager

  ResourceManager

  JobHistoryServer





NameNode 

  port : 9000 

    용도 : 

    설정 : core-site.xml

      <property>

        <name>fs.defaultFS</name>

        <value>hdfs://localhost:9000</value>

      </property>

    

  50070

    용도 : NameNode web 주소

    설정 :  hdfs-site.xml

      <property>

        <name>dfs.namenode.http-address</name>

        <value>0.0.0.0:50070</value>

      </property>

    

  

SecondaryNameNode

  NameNode의 9000 으로 접속


  50090

    용도 : listen 주소

    설정 : hdfs-site.xml

      <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>0.0.0.0:50090</value>

      </property>



DataNode

  NameNode의 9000 으로 접속


  50010

    용도 : 데이터 전송을 위한 listen 주소

    설정 : hdfs-site.xml

      <property>

        <name>dfs.datanode.address</name>

        <value>0.0.0.0:50010</value>

      </property>

      

  50075

    용도 : DataNode http listen 주소

    설정 : hdfs-site.xml

      <property>

        <name>dfs.datanode.http.address</name>

        <value>0.0.0.0:50075</value>

      </property>

      

  50020

    용도 : DataNode ipc listen 주소

    설정 : hdfs-site.xml

      <property>

        <name>dfs.datanode.ipc.address</name>

        <value>0.0.0.0:50020</value>

      </property>

      

  46767

    용도 :

    설정 :

      <property>

        <name></name>

        <value></value>

      </property>


      

NodeManager

   ResourceManager 의 8031 로 접속


  13562

    용도 : 중간 map 출력물을 리듀서로 전송하기 위한 ShuffleHandler의 port

    설정 : mapred-site.xml

      <property>

        <name>mapreduce.shuffle.port</name>

        <value>13562</value>

      </property>

      

  45597

    용도 :

    설정 :

      <property>

        <name></name>

        <value></value>

      </property>

      

  8040

    용도 : localizer ipc 주소

    설정 : yarn-site.xml

      <property>

        <name>yarn.nodemanager.localizer.address</name>

        <value>${yarn.nodemanager.hostname}:8040</value>

      </property>

      

  8042

    용도 : NodeManager web 주소

    설정 : yarn-site.xml

      <property>

        <name>yarn.nodemanager.webapp.address</name>

        <value>${yarn.nodemanager.hostname}:8042</value>

      </property>

      

   

ResourceManager

  8030

    용도 : scheduler 인터페이스 주소

    설정 : yarn-site.xml

      <property>

        <name>yarn.resourcemanager.scheduler.address</name>

        <value> ${yarn.resourcemanager.hostname}:8030</value>

      </property>

      

  8031

    용도 : RM의 Resource Tracker의 RPC 주소

    설정 : yarn-site.xml

      <property>

        <name>yarn.resourcemanager.resource-tracker.address</name>

        <value>${yarn.resourcemanager.hostname}:8031</value>

      </property>

      

  8032

    용도 : RM의 applications manager 인터페이스(RPC) 주소

    설정 : yarn-site.xml

      <property>

        <name>yarn.resourcemanager.address</name>

        <value>${yarn.resourcemanager.hostname}:8032</value>

      </property>

      

  8033

    용도 : RM admin 인터페이스 주소

    설정 : yarn-site.xml

      <property>

        <name>yarn.resourcemanager.admin.address</name>

        <value>${yarn.resourcemanager.hostname}:8033</value>

      </property>

      

  8088

    용도 : RM web 주소

    설정 : yarn-site.xml

      <property>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>${yarn.resourcemanager.hostname}:8088</value>

      </property>

    


JobHistoryServer

  NameNode의 9000 으로 접속

  

  10020

    용도 : JobHistoryServer ipc 주소

    설정 : mapred-site.xml

      <property>

        <name>mapreduce.jobhistory.address</name>

        <value>0.0.0.0:10020</value>

      </property>

      

  19888

    용도 : JobHistoryServer web 주소

    설정 : mapred-site.xml

      <property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>0.0.0.0:19888</value>

      </property>

      

  10033

    용도 : JobHistoryServer admin 인터페이스 주소

    설정 : mapred-site.xml

      <property>

        <name>mapreduce.jobhistory.admin.address</name>

        <value>0.0.0.0:10033</value>

      </property>

      










==============================================
== mapreduce, yarn 실행시 포트 ESTABLISHED 포트 관찰

아래 예재 실행 시 포트를 1초마다 관찰 함
  while true; do sleep 1; netstat -nap |grep ESTA; echo ---------------------------------------------------------- ; done
  while true; do sleep 1; jps; echo ---------------------------------------------------------- ; done

** 예제
# bin/hdfs dfs -mkdir /user/root
# bin/hdfs dfs -put etc/hadoop input
# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
# bin/hdfs dfs -cat output/*
# bin/hdfs dfs -rm -r output


** pseudo-distributed 구성에서 yarn 을 띄우지 않고 실행 시
(mapred-site.xml에 mapreduce.framework.name 가 local 이며 sbin/start-dfs.sh만 실행)
실행 전
  DataNode 가 NameNode 의 9000 포트로 접속 중
실행
  RunJar 가 NameNode 9000 포트로 접속
  RunJar 가 DataNode의 50010 포트로 접속



** pseudo-distributed 구성에서 yarn 을 띄우고 실행 시
실행 전
  DataNode 가 NameNode 의 9000 포트로 접속 중
  NodeManager 가 ResourceManager의 8031 포트로 접속 중
실행
 (SecondaryNameNode 에서 NameNode 9000 포트 접속은 주기적으로 발생하는 듯..)
 
  RunJar 에서 NameNode 9000 포트 접속
  RunJar 에서 ResourceManager 8032 포트 접속
  
  ResourceManager 에서 NodeManager 44355 포트 접속 (포트 번호 랜덤??)
  NodeManager 에서 자기자신의 8040 포트 접속
  NodeManager 에서 NameNode 9000 포트 접속
  NodeManager 에서 DataNode 50010 포트 접속
  
  MRAppMaster 에서 NameNode 9000 포트 접속
  MRAppMaster 에서 DataNode 50010 포트 접속
  MRAppMaster 에서 DataNode 50010 포트 접속
  RunJar 에서 MRAppMaster 46237 포트 접속 (포트 번호 랜덤??)
  MRAppMaster 에서 ResourceManager 8030 포트 접속
  
  반복 {
    YarnChild 프로세스 들이 MRAppMaster 43501 포트 접속 (포트 번호 랜덤??)
    ...
    MRAppMaster 에서 NameNode 9000 포트 접속
    YarnChild 프로세스 들이 NameNode 9000 포트 접속
    MRAppMaster 에서 DataNode 50010 포트 접속
  } 약 40개의 YarnChild 프로세스가 생성됨 ??
  
  
  RunJar 에서 ResourceManager 8032 포트 접속
  RunJar 에서 NameNode 9000 포트 접속
  
  
  ResourceManager 에서 NodeManager 44355 포트 접속 (포트 번호 랜덤??)