티스토리 뷰
Installation
CDH(Cloudera's Distribution for Hadoop)
- CDH는 hadoop, hbase, zookeeper 등의 프레임워크를 자동 설치해주고 편리한 인터페이스로 관리하게 해주는 cloudera manager이다. 하둡에코시스템. 하둡, 주키퍼, 스파크, 제플린 설치까지는 괜찮다. 그러나 플럼, 카프카, 스쿱 등 다양한 에코시스템을 설치하다 보면 설치가 굉장히 까다롭고 복잡해진다. 그래서 CDH를 설치해 보자
기본적으로 우분투 환경에서 설치하였다.
설치전
Configure Network Names(네트워크 이름 구성)
시작 전에 루트 계정으로 진행을 해주자.
// root 계정으로 진행
$ sudo -i
1. Set the hostname to a unique name (notlocalhost
).
서버 이름을 변경해 주자. 3개의 서버를 사용한다고 가정을 한다면, 아래와 같이 '.hadoop.com'을 뒤쪽에 붙여서 이름을 만들어준다.
// 172.16.1.101 서버1 이름변경
$ sudo hostnamectl set-hostname hadoop01.hadoop.com
// 172.16.1.102 서버2 이름변경
$ sudo hostnamectl set-hostname hadoop02.hadoop.com
// 172.16.1.103 서버3 이름변경
$ sudo hostnamectl set-hostname hadoop03.hadoop.com
// 네트워크 재시작
$ systemctl restart network
이때 서버 주소(ex_172.16.1.101)를 알고 싶다면 아래와 같은 명령어를 치면 된다.
$ hostname -i
2. Edit /etc/hosts
with the IP address and fully qualified domain name (FQDN) of each host in the cluster. You can add the unqualified name as well.
이제 3개의 서버들끼리 통신을 주고받기 위해서 아래와 같이 사용하고자 하는 서버의 각각에 아래의 내용을 추가해준다. ($ vi /etc/hosts)
// # vi /etc/hosts
172.16.1.101 hadoop01.hadoop.com hadoop01
172.16.1.102 hadoop02.hadoop.com hadoop02
172.16.1.103 hadoop03.hadoop.com hadoop03
위의 내용을 추가한 전체 코드는 아래와 같다.
127.0.0.1 localhost
127.0.1.1 hadoop01-HVM-domU
172.16.1.101 hadoop01.hadoop.com hadoop01
172.16.1.102 hadoop02.hadoop.com hadoop02
172.16.1.103 hadoop03.hadoop.com hadoop03
#172.16.1.108 hadoop04.hadoop.com hadoop04
#172.16.1.109 hadoop05.hadoop.com hadoop05
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
나는 5개의 서버를 사용했기 때문에 위의 5개 가 포함된 것이다.
3. Disabling the Firewall
아래의 명령어를 작성하여 방화벽을 꺼주자.
$ sudo ufw disable
5. Enable an NTP Service
- /etc/ntp.conf 파일을 수정하여 NTP 서버를 추가한다. NTP란 Network Time Protocol의 약자로 Network 상에 연결된 장비와 장비 간에 시간 정보를 동기화하기 위한 프로토콜이다.
$ vi /etc/ntp.conf
//매니저 노드
<주석처리>
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
<추가 입력>
server 127.127.1.0 # 로컬 시간
fudge 127.127.1.0 stratum 0
//나머지 노드
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
<추가 입력>
server MANAGER # MANAGER 장비의 시간과 동기화
우리가 클라우데라 매니저 서버에 연결할 하나의 서버를 매니저 노트의 내용을 추가해 주면 되고, 나머지 노드에는 'server MANAGER'만 추가해 주면 된다.
$ sudo systemctl start ntpd // 서비스 시작
$ sudo systemctl enable ntpd // 부팅시 실행되도록 서비스 활성화
$ ntpq -p // NTP 서버확인
6. (RHEL 6 Compatible Only) Install Python 2.7 on Hue Hosts
Hue를 사용하려면 파이썬 2.7 버전이 필요하기 때문에 설치를 해주자.
$ sudo yum install python27
$ python --version
위의 명령어가 안되면, 아래로 하자.
sudo yum install centos-release-scl
sudo yum install scl-utils
sudo yum install python27
source /opt/rh/python27/enable
python --version
7. install JDK
- 절대 openJDK는 설치하면 안 된다.
sudo yum install oracle-j2sdk1.8
설치경로는 /usr/java/ 이다.
개인적으로는 여기를 눌러서 수동으로 JDK를 설치하는 것을 추천한다.
8. ssh key설정
서버들을 연결하려면, 서로의 서버에 접속할 때 비밀번호 없이 자동 로그인이 될 수 있도록 키 설정을 해줘야 한다. 우선은 모든 서버에 각각 아래의 명령어를 통해 keygen을 만들자.
$ ssh-keygen
이때 정보 입력하라고 하는 모든 것은 엔터를 눌러서 넘어가면 된다. 3개의 서버를 모두 만들어 주고 아래의 명령어를 각각 치면서 연결을 해준다. 각각 해당 서버에 맞는 root 비밀번호를 적어주면 된다. 만약 안된다면, root 비밀번호 설정이 안 돼 있을 수 있으니 passwd 명령어를 사용해서 비밀번호를 생성해 주자.
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop01@172.16.1.101
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop02@172.16.1.102
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop03@172.16.1.103
9. PermitRootLogin 설정
이 부분은 가장 마지막에 설정을 해주는 것이 좋다. vi /etc/ssh/sshd_config 에 들어가서 PermitRootLogin부분을 찾아서 아래와 같이 바꿔주면 된다.
PermitRootLogin yes
이 정도 하면, 클라우데라 매니저를 실행하는데 문제가 없다. 이제 설치를 하러 가보자.
설치
Installing Cloudera Manager, CDH, and Managed Services
- cloudera Manager는 클러스터의 노드 중에서 호스트로 사용할 노드 1대에 설치를 하면 된다. 그리고 설치된 서버에서 Hadoop, Spark, Hive를 설치 배포하면 된다.
https://www.cloudera.com/downloads/cdp-private-cloud-trial.html
들어가서 로그인하고 블라블라 하면, 아래의 url을 받는다. 즉, 굳이 들어갈 필요 없이 내용을 아래와 같이 한 줄씩 그대로 쳐준다. 이때 3개의 서버에 모두 설치해 준다.
$ wget https://archive.cloudera.com/cm7/7.1.4/cloudera-manager-installer.bin
$ chmod u+x cloudera-manager-installer.bin
$ sudo ./cloudera-manager-installer.bin
파란화면이 실행되면 next를 눌러서 설치한다.
사용하고자 하는 서버에 모두 설치를 했다면, 이제 클라우데라 매니저 서버와 그 외 서버를 나눠서 아래와 같은 명령어를 작성해 준다.
// 1번 서버 설치
$ sudo apt-get install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
$ service cloudera-scm-server-db status
$ sudo service cloudera-scm-server start
cloudera-scm-sercer-db가 먼저 실행되야 cloudera-manager-server가 잘 실행된다..
// 나머지 서버 설치
$ sudo apt-get install cloudera-manager-daemons cloudera-manager-agent
$ service cloudera-scm-server status
$ service cloudera-scm-server start
설치가 완료됐다면, 클라우데라 매니저 서버를 설치한 1번 서버에서 netstat -nap | grep 7180
로 서버가 올라왔는지 확인하고 홈페이지로 들어가자.
install cloudera-manager
웹페이지를 열어서 172.16.1.101:7180
으로 접속해서 'admin/admin'으로 로그인하고 설치를 진행한다. 여기서 172.16.1.101은 우리가 처음에 설정한 hadoop01이다. 그 뒤에 7180을 붙여주면, 로그인 화면이 뜰 것이다. 로그인 후에 다음을 누르면 호스트를 선택하는 것이 나온다.
172.16.1.[101-110]
위와 같이 적고 검색을 누르면 172.16.1.101부터 172.16.1.110까지 확인되는 모든 호스트를 검색한다. 그중에 우리가 설정한 101, 102, 103을 선택하고 다음을 넘어가면 된다.
호스트 이름을 위와 같이 검색해서 만들고자 하는 서버를 체크해준다. 그리고 install Agents부분에서 인증이 아래와 같은 오류가 뜨면서 안된다면, 위의 설치 전 설정을 다시 해보자. 필자는 처음 설치할 때 설치가 안돼서, 40번 이상의 클라우데라 설치를 했고 가능한 모든 에러를 봤다. 그리고 클라우데라가 돌아가는 최소한의 설정을 적어놨기 때문에, 위의 설정만 하면 반드시 아래의 에러가 발생하지 않고 설치가 진행될 것이다.
다음과 같은 에러가 발생할 수 있다. Exhausted avaulable authentication methods가 발생한다면, 각각의 서버끼리 키 설정을 하지 않아도 접속이 가능하도록 키 설정을 해주면 된다.
위의 화면이 설치가 되면 아래의 화면으로 넘어갈 것이다.
기다리면 된다.
서버 완료 후 추가적인 하둡 에코시스템 구축을 진행 예정이다.
'빅데이터' 카테고리의 다른 글
클라우데라_Cloudera Manager Server GC cpu usage is at 5% or more of total process time (0) | 2021.05.22 |
---|---|
클라우데라_Exhausted available authentication methods 에러 (0) | 2021.05.20 |
[Ubuntu] OpenJDK 설치, 삭제 방법 (0) | 2021.05.18 |
[빅데이터플랫폼] flume 설치 실행 (0) | 2021.05.06 |
하둡(Hadoop) 기초 정리 (5) | 2021.05.02 |
- Total
- Today
- Yesterday
- logout
- 자료구조
- read_csv
- react
- pandas
- mongoDB
- DFS
- Deque
- useHistory 안됨
- react autoFocus
- NextJS
- vuejs
- next.config.js
- 클라우데라
- django
- BFS
- typescript
- Vue
- UserCreationForm
- Queue
- Express
- nodejs
- login
- useState
- TensorFlow
- nextjs autoFocus
- 자연어처리
- error:0308010C:digital envelope routines::unsupported
- JavaScript
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |