Monday, April 25, 2016

[빅데이터] CentOS에 하둡(Hadoop)과 스파크, 자바(Java), 스칼라, 메이븐(Maven), R 설치하기


빅데이터 솔루션 개발을 위해 CentOS가 설치된
Dell 서버가 하나 들어 왔습니다. 분산 처리를
하는 Slave 서버의 사양이 좋을 수록 처리
퍼포먼스가 좋다라고 하니 얼른 환경 설정을
해서 테스트 해보기로 했다.
그렇지만 환경설정이라는 게 단시간 내에
안끝날 거란 걸 너무나도 잘 알기 때문에
비장한 각오로 임했습니다.
이미 회사 서버에는 왠만한 환경은
다 갖춰져 있었고, 설치한 경험이
있어서 전보다는 막힘이 없겠지만
OS가 CentOS로 다른 것이라
OS dependency 한게 있으면
분명 고생을 할거란 생각도 가지고...

Root 계정이 sudo 명령어 사용할 수 있도록 설정
chmod u+\ /etc/sudoers

그룹 생성
sudo groupadd 그룹

사용자 생성
계정 생성 : sudo useradd 계정
사용자 암호 설정 : passwd 계정
암호 설정 확인 : cat /etc/shadow

그룹에 사용자 추가
sudo gpasswd -a 계정 그룹

설치 파일(.gz) 저장할 디렉토리 생성
su - 계정
​mkdir Downloads



wget 을 이용해서 다운로드 받은 파일들

설치

gz/tar 압축풀기 : tar xzf 압축파일명
zip 압축풀기 : unzip 압축파일명

하둡 설정
$HADOOP_HOME/etc/hadoop에서 아래의
파일들에 대한 환경 설정이 필요.
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml

이미 환경 설정이 완료된 내용을
복사해서 적용했다. 이 때 서버ip,
계정 등은 새로 환경 설정을 해주는
서버의 정보로 수정해 주어야 된다.

sudo mkdir -p hadoop_sotre/tmp
sudo mkdir -p hadoop_store/hdfs/namenode
sudo mkdir -p hadoop_store/hdfs/datanode
sudo chown -R 계정:그룹 hadoop_store

$HADOOP_HOME/etc/hadoop/ 경로에 있는
slaves와 masters 파일에 host를 적어준다.
이 때 해당 서버가 slaves(datanode)이면
slaves 파일에 host를 적어주면 되고
마스터(namenode) 서버이면 masters
파일에만 host를 적어주면 됩니다.

$HADOOP_HOME/etc/hadoop/ 에 있는
hadoop-env.sh 를 열어 자바 경로 설정
export JAVA_HOME=자바경로

스파크 설정
$SPARK_HOME/build/zinc-버전/bin/
에서 아래의 명령어 수행한다
./zinc -shudown

$SPARK_HOME 에서 아래의 명령어를
차례로 수행합니다.
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
./make-distribution.sh --tgz --skip-java-test -Pyarn -Phadoop-2.6 -Dhadoop.version=2.7.1 -Phive -Phive-thriftserver -Dscala-2.10

설치
R 설치를 위해서는 좀 복잡한 과정을 거칩니다.
yum update
sudo mv 0608B895.txt /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
rpm -qa gpg*
sudo rpm -ivh epel-release-6-8.noarch.rpm
sudo yum install npm
sudo yum install R

.bash_profile에 아래 내용 추가
R_HOKME=usr/lib64/R

유별나게 R만 CentOS의 영향을
많이 받아서 설치하는데
애 많이 먹었습니다...

SparkR 설치
$SPARK_HOME/R 에서 아래의 명령어 수행
USE_MAVEN=1 USE_YARN=1 SPARK_YARN_VERSION=2.7.1 SPARK_HADOOP_VERSION=2.7.1 SPARK_VERSION=1.5.1 ./install-dev.sh

host 설정
sudo nano /etc/hosts에서 서버 URL에
해당하는 host를 아래와 같이 지정해 준다.
111.222.333.444 test-server01
111.222.333.555 test-server02

sudo nano /etc/sysconfig/network 에서
작업하는 서버의 HOSTNAME 설정
HOSTNAME=test-server02

SSH 통신을 위한 공개키 공유
공개키가 없는 서버 : ssh 계정@작업서버IP mkdir -p .ssh
공개키가 있는 서버 : cat ~/.ssh/id_rsa.pub | ssh 계정@공개키없는서버IP /cat >> ~/.ssh/authorized_keys'

.bashrc 파일 복사
cat ~/.bashrc | ssh 계정@설정할서버IP 'cat >> ~/.bash_profile'
기존 서버에서는 .bashrc 파일이고, CentOS에서 .bash_profile

.bash_profile 수정 사항 반영
source ~/.bash_profile

주의사항
모든 서버의 하둡 경로는
동일해야 하둡 구동 시
모든 서버에서 하둡 관련
프로세서가 정상적으로
동작합니다.

No comments:

Post a Comment