cd ~/hadoop/etc/hadoop
에 들어가서 ls
을 입력cd ~/hadoop/etc/hadoop
에서 vim workers
입력
:wq
, 여기서 datanode는 실제 데이터가 저장되는 곳(나의 경우 세 개의 datanode를 지정한 것)workers 파일 복사(scp 사용법)
scp [파일대상][서버][서버의 파일경로]
scp ./workers namenode:/home/hadoop/hadoop/etc/hadoop/
(namenode, secondnode, datanode3 모두 같은 명령어 실행)
위 명령어는 cd ~/hadoop/etc/hadoop
에서 실행
이 경우 다른 서버끼리 미리 ssh 연결되어 있어야 함(전에 vi /etc/hosts
했던 거)
./workers
파일을 다른 서버로 복사하는 명령어로, 이 파일을 복사해 /home/hadoop/hadoop/etc/hadoop/
디렉토리에 배치하면 namenode가 worker 노드를 식별하고 클러스터의 구성을 설정, 작업 분산을 할 수 있음
ping datanode3
를 입력하면 실시간으로 ping이 보내지는 걸 볼 수 있음(ping은 네트워크 연결 상태를 확인하기 위해 주로 사용)ssh namenode
namenode로 이동 hadoop namenode -format
start-dfs.sh
: 분산파일시스템(HDFS)의 서비스를 시작 jps
: 자바프로세스를 알려주는 명령어, 직전의 start-dfs.sh
를 실행하고 jps
를 입력하면 Namenode, Jps, Datanode가 출력됨ssh secondnode
로 이동한 후 start-yarn.sh
jps
를 입력하면 Datanode, Nodemanager, Jps, Resourcemanager, secondaryNamenode가 출력됨mr-jobhistory-daemon.sh start historyserver
명령어 입력
이때 datanode3에서 jps
입력 시 Datanode, Jps, Nodemanager가 출력됨
위 세개의 start를 실행 한 뒤 namenode와 secondnode에서 jps를 실행하면 Datanode, Nodemanager, Jps, Resourcemanager, secondaryNamenode가 출력됨
datanode3에서 jps를 실행하면 Datanode, Jps, Nodemanager가 출력됨
보안그룹 인바운드 규칙 추가
0.0.0.0/0
으로 시정하고 규칙 추가hadoop 상태 확인하는 페이지 열기
namenode public IP:50070
입력(client나 private 아님 !!)cd hadoop/logs
에서 log를 확인할 수 있음
대문자 G 하면 맨끝으로가고 맨 처음으로 가려면 gg
tail을 맨 앞에 붙이면 해당 파일의 끝부분만 보여줌, 끝에 3줄만 보고 싶으면 명령어 맨 뒤에 -n 3
를 붙여줌
log파일을 vim으로 열어서 error가 뜨는 부분을 확인
ssh namenode stop-dfs.sh
, ssh secondnode start-yarn.sh
같은 명령어를 쉽게 사용하려면 환경파일(bashrc)에서 별칭 설정을 해줘야 함 !vim ~/.bashrc
입력하고 아래 부분을 추가alias start-dfs="ssh namenode start-dfs.sh"
alias start-yarn="ssh secondnode start-yarn.sh"
alias stop-dfs="ssh namenode stop-dfs.sh"
alias stop-yarn="ssh secondnode stop-yarn.sh"
alias start-mr="ssh namenode mr-jobhistory-daemon.sh start historyserver"
alias stop-mr="ssh namenode mr-jobhistory-daemon.sh stop historyserver"
start-dfs
, start-yarn
, start-mr
명령어를 사용해서 위의 작업을 수행할 수 있다 !!hadoop namenode -format
할때마다 data 폴더 안에 존재하는 파일도 삭제할건지 물어보고(y/n) + 위의 start 명령어 세가지를 모두 실행했는데 namenode, secondnode, datanode3에서 jps하면 datanode만 안뜰때 !!
이 경우 namenode, secondnode, datanode3 서버의 data
폴더가 비어있지 않거나, format시 제대로 format이 안돼서 발생하는 문제였다.
그래서 나의 경우 세 서버 모두 rm -rf data
로 data
폴더를 삭제하고 format -> start-dfs -> start-yarn -> start-mr 순으로 실행
만약 start 명령어를 실행했을 때 이미 running 중이라고 뜬다면 stop-dfs, stop-yarn, stop-mr을 먼저 하고 다시 start 하기 !