메뉴 건너뛰기

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을 수행하여 데몬을 내려놓고 해주서야 함......
번호 제목 글쓴이 날짜 조회 수
139 Tracking URL = N/A 가발생하는 경우 - 환경설정값을 잘못설정하는 경우에 발생함 총관리자 2015.06.17 423
138 java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error: Unable to deserialize reduce input key from...오류해결방법 총관리자 2015.06.16 1673
137 hortonworks에서 제공하는 메모리 설정값 계산기 사용법 file 총관리자 2015.06.14 719
136 Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.http.HttpConfig.getSchemePrefix()Ljava/lang/String; 해결->실패 총관리자 2015.06.14 402
135 hadoop 2.6.0에 sqoop2 (1.99.5) server및 client설치 == fail 총관리자 2015.06.11 1770
134 "File /user/hadoop/share/lib does not exist" 오류 해결방법 총관리자 2015.06.07 655
133 Error: E0501 : E0501: Could not perform authorization operation, User: hadoop is not allowed to impersonate hadoop 해결하는 방법 총관리자 2015.06.07 385
132 Error: Could not find or load main class nodemnager 가 발생할때 해결하는 방법 총관리자 2015.06.05 426
131 센서테스트 file 총관리자 2015.05.25 167
130 apk 파일 위치 file 총관리자 2015.05.25 2227
129 HAX is not working and emulator runs in emulation mode 메세지가 나오는 경우 file 총관리자 2015.05.25 159
128 hbase shell 필드 검색 방법 총관리자 2015.05.24 1900
127 flume 1.5.2 설치및 테스트(source : file, sink : hdfs) in HA 총관리자 2015.05.21 1415
126 java.lang.ClassNotFoundException: org.apache.hadoop.util.ShutdownHookManager 오류조치사항 총관리자 2015.05.20 572
125 Permission denied: user=hadoop, access=EXECUTE, inode="/tmp":root:supergroup:drwxrwx--- 오류해결방법 총관리자 2015.05.17 412
124 Nodes of the cluster (unhealthy)중 1/1 log-dirs are bad: 오류 해결방법 총관리자 2015.05.17 599
123 secureCRT에서 backspace키가 작동하지 않는 경우 해결방법 총관리자 2015.05.11 713
122 hbase가 기동시키는 zookeeper에서 받아드리는 ip가 IPv6로 사용되는 경우가 있는데 이를 IPv4로 강제적용하는 방법 총관리자 2015.05.08 267
121 hbase CustomFilter만들기 (0.98.X이상) 총관리자 2015.05.08 162
120 znode /hbase recursive하게 지우기 총관리자 2015.05.06 673

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.

위로