First failure: Timed out after 120000 ms. Waiting for Cloudera Manager Agents to detect release: SQOOP_NETEZZA_CONNECTOR 

CDH를 설치하고 parcels을 배포할때 freeze상태가 되버리는데, 문제는 기존에 설치되어 있는 openjdk 삭제하면 문제 해결



들어가며

  앞서 클러스터를 구축하는 방법에 대해서 설명을 하였다. [Cloudera] 클라우데라 설치하는 방법 - (Linux, Cloudier Manager) 그렇다면 이렇게 구축된 클러스터에 새로운 노드를 추가하기 위해서는 어떤 작업을 진행해야할까에 대해서 이번 글에 적으려고 한다. 막상 클러스트러를 구축할때 처럼만 설정하면 되지 라고 생각하지만, 막상 내가 각 노드에 어떤 내용을 추가했는지 기억이 안난다는 함정이 있다. 그래서 DataNode를 추가하거나 Spark의 WorkerNode를 추가를 할 경우에 어떤 설정 및 설치를 해야하는지 아래 설명한다. 


1. 스토리지 추가하기

  일단 새로운 노드를 클라우드에서 생성을 한다. 기존 노드들에서도 스토리지를 추가했기 때문에 생성이 완료되면 스토리지를 추가하자. 스리지가 생성이 되면 자동으로 마운트가 되지 않는다. 그렇기 때문에 dev/하위에 자동으로 할당된 경로를 찾고, 포맷 및 마운트를 진행하면 된다. 마운트에 관련된 내용은 아래 포스트에서 설명을 했다. [Linux] 스토리지 추가하기 (포맷하기, 마운트하기)

 2. host등록하기 

banana.host01의 /etc/hosts에 추가할 hostname과 ip주소를 넣는다.  (banana.host01은 Cloudier Manager가 설치된 서버)
추가할 서버의 /etc/hosts에 내용을 넣는다. 

3. ssh-key 등록

$ ssh-keygen -f /home/banana/.ssh/id_rsa -t rss -N ''
$ cp /home/banana/.ssh/id_rsa.pub /home/banana/.ssh/authorized_keys && chmod 644 /home/banana/.ssh/authorized_keys\
authorized_key에 master(banana.host01)의 public key를 넣어준다. 

4. 배포하기

  준비가 다 완료되었으면 Cloudier Manager의 웹사이트에 들어가서  [호스트] - [새 호스트를 클러스터에 추가] 


들어가며

  Hadoop의 MapReduce와 HDFS 등 Hadoop Ecosystem을 설치하고, 설정을 하는게 매우 번거로운 작업이 많다. 그렇기 때문에 각종 Application을 패키지화 해서 개발자들에게 제공하는 회사들이 등장하기 시작한다. Cloudera와 Hortonworks가 바로 자신들만의 Manager를 통해서 각종 어플리케이션을 배포하고, 설정을 쉽고 빠르게 할 수 있도록 도움을 주고 있다. 그렇기 때문에 결과적으로 Hadoop, Spark, Hive, 그리고 Hue와 같은 기존에는 독립적으로 설치해서 사용했다면, 이제는 Cloudera에서 제공하는 Manager를 통해서 설치를 해보자.

Pre-Installation

  설치하기 전에는 호스트 등록과, ssh-keygen을 통해 ssh-key를 등록을 해야한다. 이 작업을 하는 이유는 추후에 Cloudera Manager를 통해 설치할 호스트의 ip와 hostname을 등록을 하고, ssh-key를 등록하므로써, 비밀번호 없이 ssh로 호스트에 접근이 가능해야, 배포를 어떠한 제약이 없이 가능하다. 

1. ssh-key 등록

[Linux] SSH key 생성 및 패스워드 없이 로그인하기 을 참고해서 등록을 하면된다. 

2. 호스트 등록하기

  호스트는 /etc/hosts의 경로에서 등록이 가능하다. 맨 아래에 자신이 추가하고자 하는 ip hostname을 등록하자
예)  123.123.123.123 banana.hostname.com
이렇게 등록을 하고 나서 확인을 해야할 사항은 아래 커맨드를 입력했을때 아무런 반응없이 호스트에 연결이 되면 된다.
$ ssh <account>@banana.hostname.com
만약에 입력을 했는데, 비밀번호를 물어보면 1. ssh-key등록을 다시 수행하고, unknown hostname의 에러가 발생하면, 2번을 제대로 수행했는지 확인하면 된다. 

Cloudera Manager 다운로드, 설치, 배포

  이제는 본격적으로 Cloudera Manager를 다운로드 받고 설치하면 된다. Cloudera Manager는 클러스터의 노드 중에서 호스트로 사용할 노드 1대에 설치하면 된다. 느낌은 Cloudera Manager를 설치하고, 설치된 서버에서 각 노드로 Hadoop, Spark, Hive를 설치 배포를 하는 개념이다. 이러한 작업을 하기 위해서 설치하기 전에 앞서 ssh-key와 호스트를 등록했다. 

1. 바이너리 다운로드 및 설치

$ wget https://archive.cloudera.com/cm5/installer/latest/cloudera-manager-installer.bin
$ sudo chmod u+x cloudera-manager-installer.bin
$ sudo ./cloudera-manager-installer.bin 

설치가 완료되면, http://localhost:7180/으로 접속이 가능한지 확인한다. Cloudera Manager의 웹 사이트가 보이면 설치는 완료됬다. 이제 배포만 하면된다.

2. 배포하기

  서버에 Cloudera Manager가 설치가 됬다면,  admin/admin으로 로그인해서 안내를 해주는 순서를 따라가면된다. 만약에 에러가 생기면 /var/log/cloudera-scm-agent/cloudera-scm-agent.log를 sudo권한으로 보면 된다. 

$ sudo tail -F /var/log/cloudera-scm-agent/cloudera-scm-agent.log

  배포를 하다가 에러가 생기면 거의 대부분이 hostname에 관련된 오류일 것이다. 그러면 hostname이 정확하게 지정이 되어있는지 확인한다. 나같은 경우에는 parcel을 설치하는 freezing이 되었다. 이런 난관에서도 무엇을 보면 되느냐... 바로 로그를 확인한다. 이미 지나간내용이라면 아래와 같이 진행되는 로그를 보기 위해서는 위 커맨드를 수행하면 된다. 

$ sudo more -T /var/log/cloudera-scm-agent/cloudera-scm-agent.log

  위에서 freezing된 문제를 확인해본 결과 문제점은 이것 또한...  hostname때문이 이였음… 왜 호스트 네임이 지멋대루여, 컴퓨터는 거짓말안하는데 거짓말하는거 같단 말이지요. 이렇게 배포가 완료되면, 각 설정파일을 자신의 하드웨어 스펙에 맞게 수정하면 된다. 이제 마음껏 분산에서 처리를 해보시길.

+ Recent posts