일단 몇가지 참고할 사항을 적겠다.

예제의 경우 기본 하둡세팅을 기준으로 해서 한참 삽질했다.


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 관리페이지가 나오니 참고하자.


+ Recent posts