메뉴 건너뛰기

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을 수행하여 데몬을 내려놓고 해주서야 함......
번호 제목 글쓴이 날짜 조회 수
299 TransmitData() to failed: Network error: Recv() got EOF from remote (error 108) 오류 현상 총관리자 2019.02.15 357
298 [Oozie]Disk I/O error: Failed to open HDFS file dhfs://..../tb_aaa/....OPYING 총관리자 2019.02.15 311
297 kafka에서 메세지 중복 consume이 발생할 수 있는 상황 총관리자 2018.10.23 258
296 [sentry]role부여후 테이블명이 변경되어 오류가 발생할때 조치방법 총관리자 2018.10.16 215
295 hive metastore ERD file 총관리자 2018.09.20 727
294 Error: java.lang.RuntimeException: java.lang.OutOfMemoryError 오류가 발생하는 경우 총관리자 2018.09.20 215
293 physical memory used되면서 mapper가 kill되는 경우 오류 발생시 조치 총관리자 2018.09.20 1522
292 impala,hive및 hdfs만 접근가능하고 파일을 이용한 테이블생성가능하도록 hue 권한설정설정 총관리자 2018.09.17 356
291 cloudera(python 2.7.5)에서 anaconda3로 설치한 외부 python(3.6.6)을 이용하여 pyspark를 사용하는 설정 총관리자 2018.09.14 1084
290 oracle to hive data type정리표 총관리자 2018.08.22 764
289 postgresql-9.4에서 FATAL: remaining connection slots are reserved for non-replication superuser connections가 나올때 조치 총관리자 2018.08.16 937
288 sentry설정 방법및 활성화시 설정이 필요한 파일및 설정값, 계정생성 방법 총관리자 2018.08.16 777
287 컬럼및 라인의 구분자를 지정하여 sqoop으로 데이타를 가져오고 hive테이블을 생성하는 명령문 총관리자 2018.08.03 418
286 sqoop으로 mariadb에 접근해서 hive 테이블로 자동으로 생성하기 총관리자 2018.08.03 670
285 Last transaction was partial에 따른 Unable to load database on disk오류 발생시 조치사항 총관리자 2018.08.03 3973
284 RHEL 7.4에 zeppelin 0.7.4 설치 총관리자 2018.07.31 196
283 conda를 이용한 jupyterhub(v0.9)및 jupyter설치 (v4.4.0) 총관리자 2018.07.30 421
282 HiveServer2인증을 PAM을 이용하도록 설정하는 방법 총관리자 2018.07.21 254
281 [postgresql 9.x] PostgreSQL Replication 구축하기 총관리자 2018.07.17 226
280 spark 2.3.0을 설치하가 위해서 parcel에 다음 url을 입력한다. 총관리자 2018.07.15 198

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.

위로