일단 몇가지 참고할 사항을 적겠다.
예제의 경우 기본 하둡세팅을 기준으로 해서 한참 삽질했다.
cloudera CDH5버전으로 할 때 기본 경로부터 찾자.
편의상 5대의 서버중 1번서버를 마스터로 , 2~5를 worker로 쓴다고 가정했다.
server01_hostname : 마스터
server02_hostname : 워커1
server03_hostname : 워커2
server04_hostname : 워커3
server05_hostname : 워커4
1) tajo-env.sh
특별히 복잡한것은 없었고, 클라우데라 CDH경로 기본위치를 찾고 아래와 같이 찾아서 세팅해줬다.
처음 구글링 하면서 소스버전 받아서 직접 빌드해야 하나 하는건가? 하고 혼란했는데 결론적으로는 기냥 바이너리 버전으로 기동성공했다.
... 생략...
# Hadoop home. Required
export HADOOP_HOME=/home1/cloudera/parcels/CDH/lib/hadoop
# The java implementation to use. Required.
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera/
# Extra Java CLASSPATH elements. Optional.
export TAJO_CLASSPATH=$HADOOP_HOME/client/*:$HADOOP_HOME/lib/*
... 생략...
2) tajo-site.xml
가장 혼란했던건 tajo.rootdir 이었던것 같다. 처음에 namenode의 hostname과 9000번 포트를 사용하는 샘플이 많은데
결론부터 말하면 그값을 쓰지 말자. core-site.xml 파일의 fs.defaultFS의 값을 참고해야한다.
* /etc/hadoop/conf/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--Autogenerated by Cloudera Manager-->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://nameservice1</value>
</property>
.....
즉, 아래와 같이 tajo.rootdir 의 값을 설정해줘야 한다.
/tajo 라는 폴더가 있는데 그건 아래내용에서 만든 hdfs상의 기본폴더를 의미하는것이다.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>tajo.rootdir</name>
<value>hdfs://nameservice1/tajo</value>
<description>Base directory including system directories.</description>
</property>
<property>
<name>tajo.master.umbilical-rpc.address</name>
<value>server01_hostname:26001</value>
<description>TajoMaster binding address between master and workers.</description>
</property>
<property>
<name>tajo.master.client-rpc.address</name>
<value>server01_hostname:26002</value>
<description>TajoMaster binding address between master and clients.</description>
</property>
<property>
<name>tajo.resource-tracker.rpc.address</name>
<value>server01_hostname:26003</value>
<description>TajoMaster binding address between master and workers.</description>
</property>
<property>
<name>tajo.catalog.client-rpc.address</name>
<value>server01_hostname:26005</value>
<description>CatalogServer binding address between catalog server and workers.</description>
</property>
</configuration>
3) /tajo 폴더 생성
http://hyunsik.github.io/tajo-doc-kr/docs/0.10.0/configuration/cluster_setup.html
를 참고하면 아래와 같이 hdfs상에 폴더를 생성하게 가이드 되어있다.
만들고 기동하면 하위폴더에 /tajo/system, /tajo/warehouse 가 자동으로 생성된다.
참고로 하둡세팅한 계정과 동일하게 (ssh연동까지된 아이디) 맞춘후 그 아이디로 진행하는게 좋다.
잘못하면 퍼미션 문제로 잘 안될수 있다.
$ $HADOOP_HOME/bin/hadoop fs -mkdir /tajo
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tajo
4) workers
이파일은 worker 서버를 적어주면 된다. 나는 당연히 master서버는 안적었다.
그리고 이 파일은 worker 서버에 복사 안해도 될거 같다는 생각든다 (삽질을 많이해서 worker서버에도 복사하긴했다 ㄱ-)
server02_hostname
server03_hostname
server04_hostname
server05_hostname
이렇게 세팅하고 tajo-site.xml , tajo-env.sh 파일만 worker 노드서버에 복사하고, 마스터노드에서 start-tajo.sh 로 기동.
아. 참고로 http://server01_hostname:26080 로 접속하면 tajo 관리페이지가 나오니 참고하자.