메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


Hadoop hadoop설치시 참고사항

구퍼 2013.03.08 09:30 조회 수 : 2131

일단 기본적인 설정이나 설치법은 검색하시면 많이 나옵니다. 그래서 그것들은 제외하고,
제가 겪었던 찾기 힘든 정보들만 서술합니다.
 
1. rsa 공개키 인증
  hadoop의 특성상 node들사이의 통신이 이루어져야 합니다. Public key authorization을 이용해서 암호없이
서로 통신할 수 있도록 합니다. 그런데 방법이 검색해보면 이것저것 나오는데, 몇 개 시도해보면서 해맨 결과
아래와 같은 방법이 가장 좋은거 같습니다. 그리고 편하죠;
  공개키가 제대로 안되어 있으면 permission denied 와 같은 error가 발생합니다. Master node에서 slave node들로
ssh 연결을 했을 때 비번을 묻지 않고 바로 연결이 되면 설정이 제대로 된 겁니다.

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/udanax/.ssh/id_dsa):
Created directory '/home/udanax/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/udanax/.ssh/id_dsa.
Your public key has been saved in /home/udanax/.ssh/id_dsa.pub.
The key fingerprint is: blah~ blah~
$ _

$ cat ~/.ssh/id_dsa.pub | ssh id@host "cat >> .ssh/authorized_keys"
password: enter the password
$ _


2. Configure 파일
  설치법마다 다르게 configure 파일 3개(site-core, hdfs, mapred 등)을 설정하는데 사실
기본적으로 필요한 property는 주소에 관련된 부분뿐입니다. 나머지는 default로 돌려도 소형 cluster에서는
그닥 문제가 없는거 같네요. apache에 가보면 lager cluster를 node 900개 정도로 보고 example configure를 올려놨기
때문에;

3.  Incompatible namespaceIDs
  namenode의 문제입니다. 검색하면 나오지만 dfs/data/의 data를 모두 삭제하고 namenode를 다시 format후에 실행하면 
됩니다. 다만! 주의 할점은 master에서만 하면 되는게 아니라 모든 node에 대해서 다 해줘야 한다는 겁니다 -_-.. 전 이걸 
몰라서 한참 고생했네요; cssh나 puttycs, xshell의 명령어 등을 통해 모든 node에 대해 한번에 실행해주고, master
에서 namenode를 format하고 다시 실행시키면 됩니다.(물론 그 전에 정지시켜놔야겟죠?;)

4. Connection refused,
  정말 짜증 나는 문제인데..주소를 ip말고 hostname등으로 해주시는것 말고는 크게 문제 될건 없어보이지만, 
가장 주의할 점은 어떤 configure 파일을 수정했으면 단순히 master에만 있으면 되는게 아니라 모든 slave node 들에 
전부 다시 배포해야합니다. 그리고 namenode만 format을 하면 되는게 아니라 위의 3번과
같은 과정을 다시 거쳐야합니다. (모든 node들에 대해 dfs/data 삭제 -> 다시 namenode 포맷 -> 실행)

5. Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.
  이제 설치가 다 되고 끝난 줄 알았지만! 예제를 실행시켜보니 map은 되는데 reduce 16% 과정에서 뻗으면서 위와 같은
에러가 발생합니다 -_-.. 검색결과가 많이 나오는거보니 흔한 에러 같은데 크게 해결책은 2가지가 나옵니다. Property에 
"tasktracker.http.threads" 가 적어서 그런거니 400으로 늘리라는 것과 /etc/hosts와 /etc/hostname을 match 시키라는 거죠.


  일단 해본결과 저는 2가지 모두 문제가 아니었습니다; 사실 etc/hostname은 없어도 되더군요. 전 /etc/hosts만 모든 
node들을 일치시켰거든요.
 
  외국 사이트들을 몇페이지 뒤져보다보니, 저 문제가 node 들간의 통신 문제라는 의견이 있더군요. 그래서 방화벽 port를 
열어야한답니다. 결국 방화벽 문제가 맞습니다; 모든 node들에 대해서 이것도 필요한 port를 열어주셔야합니다. 
일단 테스트하려면 방화벽을 해제시켜서 문제가 맞는지 확인하시기 바랍니다.


6. start 순서!
  job-tracker에서 node를 5개가 아니라 0개로 인식하는 에러가 있었습니다. 겨우 datanode를 살려놓고 나니까 이런 문제가 
생긴거죠. 문제는 start-dfs.sh 후에 start-mapred.sh를 해주셔야합니다. start-mapred.sh를 하면 datanode가 없기 때문에 
인식을 못하는거죠..그냥 속편하게 start-all.sh 를 합시다.

6. Log를 확인하자!!
  문제가 생겨서 에러가 뜨거나 원하는 결과가 안나오면 항상 log를 확인하시기 바랍니다. 각 node들마다 각자 log를 가지고 
있습니다. log의 에러문제를 구글에서 검색해서 보다보면 결국 원하는 해답을 찾게 됩니다..수많은 삽질과 함께 ㅠㅠ


7. 제대로 동작하는지 확인하는 방법
MasterAddress:50070 은 datanode에 대해서 확인할 수 있습니다. Livenode에 연결한 갯수의 node가 모두 떠야합니다.
MasterAddress:50030 은 job-tracker에 대해서 확인할 수 있습니다. Cluster summary에 연결한 node가 모두 정상적으로 
떠야하고, job 실행 시 여기에 진행상황, 결과 등이 나타납니다.


8. Livenode가 0또는 1인 경우
  Data node들이 제대로 동작을 안하는 경우입니다. 설정이 잘못되서 에러가 난거죠. 각 data node 들의 log를 참조하셔서 
확인하셔야 합니다. 저같은 경우에는 3번의 문제였습니다.
 
9. hadoop namenode -format은 stop-all.sh을 수행하여 데몬을 내려놓고 해주서야 함......
번호 제목 글쓴이 날짜 조회 수
79 access=WRITE, inode="staging":ubuntu:supergroup:rwxr-xr-x 오류 총관리자 2014.07.05 1719
78 org.apache.hadoop.security.AccessControlException: Permission denied: user=hadoop, access=WRITE, inode="":root:supergroup:rwxr-xr-x 오류 처리방법 총관리자 2014.07.05 2833
77 banana pi에(lubuntu)에 hadoop설치하고 테스트하기 - 성공 file 총관리자 2014.07.05 2760
76 2개 data를 join하고 마지막으로 code정보를 join하여 결과를 얻는 mr 프로그램 총관리자 2014.06.30 408
75 jsoup 사용 예제 총관리자 2014.06.06 1506
74 Cannot create /var/run/oozie/oozie.pid: Directory nonexistent오류 총관리자 2014.06.03 479
73 oozie job 구동시 JA009: User: hadoop is not allowed to impersonate hadoop 오류나는 경우 총관리자 2014.06.02 807
72 원보드pc인 bananapi를 이용하여 hadoop 클러스터 구성하기(준비물) file 총관리자 2014.05.29 3834
71 의사분산모드에 hadoop설치및 ecosystem 환경 정리 총관리자 2014.05.29 3170
70 hadoop및 ecosystem에서 사용되는 명령문 정리 총관리자 2014.05.28 3455
69 hive job실행시 meta정보를 원격의 mysql에 저장하는 경우 설정방법 총관리자 2014.05.28 1088
68 oozie의 meta정보를 mysql에서 관리하기 총관리자 2014.05.26 1466
67 hive query에서 mapreduce돌리지 않고 select하는 방법 총관리자 2014.05.23 809
66 hiverserver2기동시 connection refused가 발생하는 경우 조치방법 총관리자 2014.05.22 1464
65 import 혹은 export할때 hive파일의 default 구분자는 --input-fields-terminated-by "x01"와 같이 지정해야함 총관리자 2014.05.20 4244
64 hive에서 insert overwrite directory.. 로 하면 default column구분자는 'SOH'혹은 't'가 됨 총관리자 2014.05.20 999
63 source의 type을 spooldir로 하는 경우 해당 경로에 파일이 들어오면 파일단위로 전송함 총관리자 2014.05.20 687
62 특정파일이 생성되어야 action이 실행되는 oozie job만들기(coordinator.xml) 총관리자 2014.05.20 983
61 dual table만들기 총관리자 2014.05.16 819
60 sqoop에서 oracle관련 작업할때 테이블명, 사용자명, DB명은 모두 대문자로 사용할것 총관리자 2014.05.15 1527

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로