Hadoop Clustering (1)
앞으로 진행할 내용은 6개의 node로 구성된 multi-node distributed Hadoop cluster
를 구성하는 것입니다.
HDP
, CDH
와 같은 Hadoop 배포판을 사용하지 않고 aphache.org
의 Native Hadoop
배포판으로 설치를 진행합니다.
Hadoop 클러스터링 환경을 구성하기 전에 아래 처럼 노드들을 구상하였습니다.
node | host | address |
---|---|---|
1 | lxc-centos-1 | 10.10.30.101 |
2 | lxc-centos-2 | 10.10.30.102 |
3 | lxc-centos-3 | 10.10.30.103 |
4 | lxc-centos-4 | 10.10.30.104 |
5 | lxc-centos-5 | 10.10.30.105 |
6 | lxc-centos-6 | 10.10.30.106 |
각 호스트별로 설정하기 번거로우니 node 1
번에 기본설정을 한후 나머지 노드들을 clone하기로 한다
그리고 본인이 다른 용도로 운영중인 Ubuntu 18.04
데스크탑도 차후에 worker node로 추가하기로 했다
Preparation
yum update, SSH 설정
1 | yum update -y |
Java
1 | yum install java-1.8.0-openjdk-devel |
File open limits 변경
리눅스에는 동시에 파일을 open 하거나 실행 할 수 있는 갯수에 대한 제한, open file limit이 걸려있다 아래와 같이 리소스 제한을 풀어준다
1 | 최소 |
NTP 설정
1 | 현재 서버 시간 및 time zone 확인 |
우선 lxc-centos-1
을 ntp 서버로 두고 차후 클러스터들로 하여금 시간 동기화를 진행하도록 한다
호스트 파일 설정
1 | vim /etc/hosts |
Disable THP
CDH나 HDP에서 언급하길 Transparent Huge Pages(THP)의 THP compaction
로 인해 Hadoop의 성능이 저하될 수 있다고 한다.
pve
서버에 접속하여 아래 명령을 입력하자, 컨테이너는 커널을 공유하기 때문에 컨테이너상에서 커널 설정을 넣어도 적용되지 않기 때문에 메인 커널 서버에 접속해주고 설정을 잡아줘야 한다.
THP 옵션 활성화 상태 확인
1 | cat /sys/kernel/mm/transparent_hugepage/enabled |
always가 []로 싸여서 [always]
로 되어있으면 활성된 상태이다
다음 2가지 절차로 THP를 끌 수 있다
- 아래
echo
명령어를/etc/rc.d/rc.local
에 덮어 씌우고reboot
1 | echo never > /sys/kernel/mm/transparent_hugepage/enabled |
/etc/default/grub
파일의GRUB_CMDLINE_LINUX
옵션에 다음 내용을 추가한다
1 | GRUB_CMDLINE_LINUX = "transparent_hugepage=never" |
그 후 cat /proc/meminfo
를 열어서 아래 처럼 모든 값이 0이 되었는지 확인해준다
1 | AnonHugePages: 0 kB |
더 자세한 내용은 아래 링크에서 확인하자
vm.swappiness 설정
CDH, HDP에 따르면 swap
이 설정되어 있다면 메모리를 최대한 활용하지 못하는 경우가 생길 수 있기 때문에 되도록이면 끄거나 최소크기로 지정하는 것으로 권장 되어있다
pve
서버에 접속해서 아래 내용들을 수행한다
1 | swap 크기 확인 |
얼추 필요한 프로그램과 설정이 끝났으니 이제 clone
을 시켜준다
Proxmox web-ui에 접속해서 lxc-centos-1
컨테이너에 오른쪽 버튼을 클릭하고 (꺼진 상태여야함)
clone
을 눌러서 간단히 hostname
만 입력해주면 복제된 컨테이너를 생성할 수 있다
이제 각 노드에 들어가서 ssh-copy-id
, IP 변경
, ntp 동기화
를 하도록 하자
pssh
를 설치 하였기 때문에 모든 노드들에게 병렬로 동일한 명령을 내릴 수 있다
pssh -h [호스트파일] [명령어]
1 | vim hosts |
추가
proxmox-6.1에서 LXC가 stop
이나 reboot
, clone
시 /etc/hosts
가 초기설정으로 override 되는 문제가 있어서 아래를 실행해준다
1 | touch /etc/.pve-ignore |
이러면 /etc/hosts
가 초기 설정으로 바뀌는걸 막을 수 있다