Tajo2015. 2. 19. 11:07

다운받은 소스화일 압축을 풀고

tar xzvf tajo-0.9.0-src.tar.gz


소스화일 디렉토리로 이동하여

cd tajo-0.9.0-src


Tajo를 빌드 (HiveMetastore사용버전)

mvn clean package -DskipTests -Pdist -Dtar -Phcatalog-0.13.1


에러발생

hadoop@HOSTNAME tajo-0.9.0-src]$ mvn clean package -DskipTests -Pdist -Dtar -Phcatalog-0.13.1

[INFO] Scanning for projects...

[ERROR] The build could not read 1 project -> [Help 1]

[ERROR]

[ERROR]   The project org.apache.tajo:tajo-hcatalog:0.9.0-SNAPSHOT (/home/hadoop/tajo-0.9.0-src/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/pom.xml) has 1 error

[ERROR]     Non-resolvable parent POM: Could not find artifact org.apache.tajo:tajo-project:pom:0.9.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 23, column 11 -> [Help 2]

[ERROR]

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException


이부분이 수상해서 살펴보니

[ERROR]   The project org.apache.tajo:tajo-hcatalog:0.9.0-SNAPSHOT (/home/hadoop/tajo-0.9.0-src/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/pom.xml) has 1 error


<parent>

    <artifactId>tajo-project</artifactId>

    <groupId>org.apache.tajo</groupId>

    <version>0.9.0-SNAPSHOT</version>

    <relativePath>../../../tajo-project</relativePath>

  </parent>


version부분에 0.9.0-SNAPSHOT이라고 되어있는데 현재 다운로드받은 버전은 0.9.0이므로 SNAPSHOT을 삭제

다시 빌드! 이번엔 성공

[INFO] Executed tasks

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO]

[INFO] Tajo Main ......................................... SUCCESS [  5.389 s]

[INFO] Tajo Project POM .................................. SUCCESS [  2.677 s]

[INFO] Tajo Maven Plugins ................................ SUCCESS [ 10.486 s]

[INFO] Tajo Common ....................................... SUCCESS [ 20.892 s]

[INFO] Tajo Algebra ...................................... SUCCESS [  3.623 s]

[INFO] Tajo Catalog Common ............................... SUCCESS [  9.133 s]

[INFO] Tajo Rpc .......................................... SUCCESS [  4.632 s]

[INFO] Tajo Catalog Client ............................... SUCCESS [  1.430 s]

[INFO] Tajo Catalog Server ............................... SUCCESS [  2.334 s]

[INFO] Tajo Storage ...................................... SUCCESS [  6.295 s]

[INFO] Tajo Core PullServer .............................. SUCCESS [  2.978 s]

[INFO] Tajo Client ....................................... SUCCESS [  5.272 s]

[INFO] Tajo JDBC Driver .................................. SUCCESS [  1.868 s]

[INFO] ASM (thirdparty) .................................. SUCCESS [  3.689 s]

[INFO] Tajo Core ......................................... SUCCESS [ 38.899 s]

[INFO] Tajo Catalog Drivers HCatalog ..................... SUCCESS [  3.437 s]

[INFO] Tajo Catalog Drivers .............................. SUCCESS [  0.024 s]

[INFO] Tajo Catalog ...................................... SUCCESS [  1.093 s]

[INFO] Tajo Distribution ................................. SUCCESS [  8.911 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 02:14 min

[INFO] Finished at: 2015-02-19T11:07:57+09:00

[INFO] Final Memory: 83M/269M

[INFO] ------------------------------------------------------------------------


압축해제

tar xzvf tajo-0.9.0-src/tajo-dist/target/tajo-0.9.0.tar.gz


cd tajo-0.9.0

vi conf/tajo-env.sh

hive설정

export HIVE_HOME=/usr/lib/hive

export HIVE_JDBC_DRIVER_DIR=/usr/lib/hive/lib/mysql-connector-java.jar


vi conf/catalog-site.xml

hcatalog설정추가

<configuration>

  <property>

    <name>tajo.catalog.store.class</name>

    <value>org.apache.tajo.catalog.store.HCatalogStore</value>

  </property>

</configuration>


설정은 다 된거 같은데...뭘 실행해야하나? 

[hadoop@HOSTNAME bin]$ ./start-catalog.sh

starting catalog, logging to /home/hadoop/tajo-0.9.0/bin/../logs/tajo-hadoop-catalog-VHHDPTS1503.out

[hadoop@HOSTNAME bin]$

[hadoop@HOSTNAME bin]$

[hadoop@HOSTNAME bin]$ ./tsql

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/CommandLineParser

        at java.lang.Class.getDeclaredMethods0(Native Method)

        at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)

        at java.lang.Class.getMethod0(Class.java:2764)

        at java.lang.Class.getMethod(Class.java:1653)

        at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)

        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)

Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.CommandLineParser

        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)

        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

        ... 6 more


vi tajo

# HADOOP JAR DIRS

#HADOOP_MODULE_DIRS="$HADOOP_HOME/share/hadoop/common/lib

#$HADOOP_HOME/share/hadoop/common

#$HADOOP_HOME/share/hadoop/hdfs

#$HADOOP_HOME/share/hadoop/hdfs/lib

#$HADOOP_HOME/share/hadoop/yarn

#$HADOOP_HOME/share/hadoop/mapreduce"


HADOOP_MODULE_DIRS="$HADOOP_HOME/lib

$HADOOP_HOME/

$HADOOP_HOME/../hadoop-hdfs

$HADOOP_HOME/../hadoop-hdfs/lib

$HADOOP_HOME/../hadoop-yarn

$HADOOP_HOME/../hadoop-mapreduce"


다른 에러 발생

[hadoop@HOSTNAME bin]$ ./tsql

ERROR: Exception was thrown. Caused by Giving up after tries=2

Exception in thread "main" com.google.protobuf.ServiceException: Giving up after tries=2

        at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:102)

        at org.apache.tajo.client.TajoClient.getCurrentDatabase(TajoClient.java:262)

        at org.apache.tajo.cli.TajoCli.<init>(TajoCli.java:243)

        at org.apache.tajo.cli.TajoCli.main(TajoCli.java:690)

Caused by: org.jboss.netty.channel.ConnectTimeoutException: Connect error to localhost/127.0.0.1:26002 caused by ConnectException: Connection refused: localhost/127.0.0.1:26002

        at org.apache.tajo.rpc.NettyClientBase.handleConnectionInternally(NettyClientBase.java:106)

        at org.apache.tajo.rpc.NettyClientBase.connect(NettyClientBase.java:116)

        at org.apache.tajo.rpc.NettyClientBase.init(NettyClientBase.java:68)

        at org.apache.tajo.rpc.NettyClientBase.init(NettyClientBase.java:54)

        at org.apache.tajo.rpc.BlockingRpcClient.<init>(BlockingRpcClient.java:76)

        at org.apache.tajo.rpc.RpcConnectionPool.makeConnection(RpcConnectionPool.java:73)

        at org.apache.tajo.rpc.RpcConnectionPool.getConnection(RpcConnectionPool.java:88)

        at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:93)

        ... 3 more


start-tajo.sh을 실행하고

[hadoop@HOSTNAME bin]$ ./start-tajo.sh

Starting single TajoMaster

starting master, logging to /home/hadoop/tajo-0.9.0/bin/../logs/tajo-hadoop-master-HOSTNAME .out

localhost: starting worker, logging to /home/hadoop/tajo-0.9.0/bin/../logs/tajo-hadoop-worker-HOSTNAME .out


다시 tsql실행

[hadoop@HOSTNAME bin]$ ./tsql


Try \? for help.

default>

default>


성공!

default> \l

default

ec_dwh

ec_ods


hive의 데이터베이스 리스트가 보인다


default> \c ec_ods;

You are now connected to database "ec_ods" as user "hadoop".

ec_ods>


테이블 리스트도 보인다.

ec_ods> \d

log_login

order_delivery

order_item

order_main

product

product_common

product_sku

product_store

psec_company

psec_user

psec_zipcodemast


이제 select를 해보자

ec_ods> select * from order_main limit 10;

ERROR: relation "ec_ods.order_main" does not exist


헉! 테이블이 존재안한다는 에러...


테이블정의를 보려하니 역시 테이블이 없다는 에러 (참고로, hive에 존재하는 테이블)

ec_ods> \d order_main

ERROR: no such a table: order_main

com.google.protobuf.ServiceException: java.sql.SQLException: ERROR: no such a table: order_main

        at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:105)

        at org.apache.tajo.client.TajoClient.getTableDesc(TajoClient.java:972)

        at org.apache.tajo.cli.DescTableCommand.invoke(DescTableCommand.java:48)

        at org.apache.tajo.cli.TajoCli.executeMetaCommand(TajoCli.java:470)

        at org.apache.tajo.cli.TajoCli.executeParsedResults(TajoCli.java:443)

        at org.apache.tajo.cli.TajoCli.runShell(TajoCli.java:419)

        at org.apache.tajo.cli.TajoCli.main(TajoCli.java:692)

Caused by: java.sql.SQLException: ERROR: no such a table: order_main

        at org.apache.tajo.client.TajoClient$24.call(TajoClient.java:985)

        at org.apache.tajo.client.TajoClient$24.call(TajoClient.java:972)

        at org.apache.tajo.rpc.ServerCallable.withRetries(ServerCallable.java:95)

        ... 6 more





'Tajo' 카테고리의 다른 글

Tajo Hive 연동 테스트  (0) 2015.02.27
Tajo Hive 연동  (0) 2015.02.18
Posted by 유나아빠