카테고리 없음

Apache KUDU 설치

라미로 2018. 9. 20. 16:25

apache kudu의 공식 사이트이다.

https://kudu.apache.org/docs/index.html


소개하기로는, Hadoop 플랫폼 용으로 개발된 스토리지 관리 소프트웨어라고 한다.

시작은 클라우데라에서 시작되었다고 하고, "Columnar Data Store 라는 독특한 저장소를 사용한다.

용어와, 장단점 등은 나중에 따로 찾아보도록하고 설치를 진행해본다.


# 설치환경 : CentOS 7 x64  

참조 문서 : https://kudu.apache.org/docs/installation.html


yum 설치를 권장하고있는데, 저장소를 참조하기 위해 .repo를 추가한다.


vim /etc/yum.repos.d/cloudera-kudu.repo


#아래 내용을 입력

[cloudera-cdh5]

# Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 7 x86_64

name=Cloudera's Distribution for Hadoop, Version 5

baseurl=https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5/

gpgkey =https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/RPM-GPG-KEY-cloudera    

gpgcheck = 1


KUDU의 마스터는 1개 또는 3개(1개 결함 허용) 또는 5개( 2개의 결함 허용 )을 가질수 있다고 한다. 

구축이 완료되면 마스터 이중화도 테스트 해보자.


#설치 명령은 아래와 같고,

sudo yum install kudu                         # Base Kudu files

sudo yum install kudu-master                  # Kudu master init.d service script and default configuration

sudo yum install kudu-tserver                 # Kudu tablet server init.d service script and default configuration

sudo yum install kudu-client0                 # Kudu C++ client shared library

sudo yum install kudu-client-devel            # Kudu C++ client SDK



#실행 명령은 아래와 같다.

[root@KUDU1 ~]# service  kudu-master start

Started Kudu Master Server (kudu-master):                  [  OK  ]

[root@KUDU1 ~]# service  kudu-tserver start

Started Kudu Tablet Server (kudu-tserver):                 [  OK  ]



#예제에는 없지만, 방화벽을 해제하고

firewall-cmd --permanent --zone=public --add-port=8051/tcp

firewall-cmd --permanent --zone=public --add-port=8050/tcp

firewall-cmd --reload



#chkconfig 명령으로 재부팅 시 자동으로 올라도록 조정해준다.

chkconfig kudu-master on     

chkconfig kudu-tserver on          


#설정에 대한 상세 정보지만.. 일단 스킵한다

https://kudu.apache.org/docs/configuration.html






#아래와 같이, 설치 확인이 가능하고,


[root@KUDU1 ~]# kudu master list 10.1.3.21:7051
               uuid               | rpc-addresses
----------------------------------+---------------
 04e949e0335f42e697761e67b3707932 | KUDU1:7051



#웹을 열어서도 확인 가능하다




kudu는 일반적으로 impala라는 질의엔진을 통해서 질의를 한다.

즉, 임팔라를 설치해야 한다는 뜻.


#임팔라 공식 사이트

https://impala.apache.org


여기 번역을 해보면,

Apache Impala 프로젝트는 널리 사용되는 Apache Hadoop 파일 형식에 저장된 데이터에 대한 고성능의 지연 시간이 적은 SQL 쿼리를 제공합니다.

Impala는 Apache Hive 메타 스토어 데이터베이스와 통합되어 두 구성 요소간에 데이터베이스와 테이블을 공유합니다

라고 하니까, 실제로 Hadoop과 Hive도 설치를 해야한다...


소스 인스톨을 시도해봤는데, 에러를 못잡아서 yum으로 하기로한다.

신기하게도 클라우데라에서는 CDH( Cloudera Distribution Including Apache Hadoop ) 라는 특수한 배포 형식을 사용하여 배포판간의 버전관리를 쉽 도록 구성해놓았다.


#마찬가지로 repo 파일을 추가하고

vim /etc/yum.repos.d/cdh.repo



#아래 입력

[cloudera-cdh5]

# Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 7 x86_64

name=Cloudera's Distribution for Hadoop, Version 5

baseurl=https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5/

gpgkey =https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/RPM-GPG-KEY-cloudera    

gpgcheck = 1



#그리고 yum을 이용해 설치를 진행한다.
yum install impala 
yum install impala-state-store
yum install impala-server
yum install impala-shell 

 

매우 많은 패키지들이 설치된다. hadoop도 ,  hive도 의존성이 걸려있다.

 

 


 
다시 kudu 사이트에 들어가보면, 임팔라 쉘을 어떻게 활용하는지에 대한 정보가 나와있는데,
https://kudu.apache.org/docs/kudu_impala_integration.html#_using_the_impala_shell

No configuration changes are required within Kudu to enable access from Impala. 라는 멋진 설명이 붙어있다.
kudu는 세팅하지 않아도 된다는 뜻.



#우선 임팔라를 실행한다.
service impala-state-store start
service impala-catalog start
service impala-server start


당장 이렇게 하면 다른 엔진은 잘 실행되는데, impalad 가 실행이 되지 않는다.
로그 내용을 보니까 hdfs에 연결하지 못하여 발생하는 문제.
impala-server.cc:283] Could not read the root directory at hdfs://kudu1:9000. Error was:

즉, 하둡이 먼저 실행되어야 한다는 뜻이다 ( 일이 일을 자꾸 낳는다... )

CDN 5.1 기준으로 보면,
https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_vd_cdh_package_tarball_510.html#tarball_5102

hadoop 2.6이 호환대상인걸 볼 수 있는데, 다행이 아까 yum으로 설치는 다 되어있다.

실행하기 위해, JAVA_HOME은 알아서 잡고,

export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec
또는 환경변수파일에 아래 환경변수를 등록한다.


#실행은 아래와 같다. ( 이런건 임팔라쪽에서도 링크를걸어줬으면 좋았을걸.. )
/usr/lib/hadoop/sbin/hadoop-daemon.sh start namenode

혹시 이 과정에서 에러가 나면, hdfs를 포맷해주고 시작한다.

/usr/lib/hadoop-hdfs/bin/hdfs namenode -format


그러면 하둡이 성공적으로 올라오고 

#이제 다시 임팔라 서버를 실행시키면 잘 실행이 된다......
servie impala-server start

 

 




#명령은 의외로 간단.
impala-shell 이라고만 입력하면, 자동으로 kudu에 접속이 된다...

 


 


사용법은 다음 포스팅에...