Posted
Filed under Linux

하둡은 내부 데몬(NameNode, SecondaryNameNode, DataNode, JobTracker, TaskTracker)간에 통신을 위해 다양한 포트를 사용합니다. 만약 하둡이 사용하는 포트가 막혀 있다면, 하둡은 구동했더라도 HDFS 파일 제어나 MapReduce 잡이 정상적으로 실행되지 않을 확률이 매우 높습니다.


CentOS의 경우 OS를 처음 설치했을 때 기본 포트를 제외한 모든 포트를 방화벽에서 막고 있습니다. 포트를 열어 주지 않은 상태에서 MapReduce 잡을 실행할 경우 다음과 같은 로그 메시지가 발생하면서, MapReduce 작업이 더 이상 진행되지 않게 됩니다.


org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy > 
org.apache.hadoop.mapred.TaskTracker: attempt_201302200135_0002_r_000000_0 0.0% reduce > copy >


이러한 현상을 피하기 위해서는 다음과 같은 하둡의 포트를 열어줘야 합니다.

하지만 사내 보안정책으로 인해 기본 포트를 사용하지 못할 경우에는, 설정 파일에서 해당 포트를 변경해주시면 됩니다.


파라미터

 기본값

 용도

 설정 파일

 dfs.secondary.http.address

 50090

SecondaryNameNode 웹 서버 주소 및 포트

 hdfs-site.xml
 dfs.datanode.address

 50010

DataNode 주소 및 포트

 hdfs-site.xml
 dfs.datanode.http.address

 50075

DataNode 웹 서버 용 주소 및 포

 hdfs-site.xml
 dfs.datanode.ipc.address

 50020

DataNode ipc 서버용 주소 및 포트

 hdfs-site.xml
 dfs.http.address

 50070

NameNode 웹 어드민용 주소 및 포트

 hdfs-site.xml
 mapred.job.tracker.http.address

 50030

JobTracker 웹 서버용 주소 및 포트

mapred-site.xml
 mapred.task.tracker.http.address

 50060

TaskTracker 웹 서버용 웹 주소 및 포트

 mapred-site.xml

사실 위와 같이 포트를 한땀 한땀 열어주는 건 매우 번거로운 일입니다. 그래서 대부분은 하둡이 하둡이 사내 내부망으로만 설치가 되어 있기 때문에 다음과 같이 방화벽을 내려주시는 게 가장 간단한 방법입니다.  

su -  root

service iptables stop

chkconfig iptables off

service 코맨드로 현재 실행중인 방화벽을 내려주고,

chkconfig 코맨드로 앞으로 부팅 시 방화벽이 올라오지 않도록 설정합니다.

2013/10/01 08:29 2013/10/01 08:29