Hi all,
I download the source code of Apache Kylin v1.0 and change the
pom.xml at KYLIN_HOME/pom.xml as follow then use mvn to complie:
<!-- Hadoop versions -->
<hadoop2.version>2.6.0</hadoop2.version>
<yarn.version>2.6.0</yarn.version>
<zookeeper.version>3.4.6</zookeeper.version>
<hive.version>1.1.0</hive.version>
<hive-hcatalog.version>1.1.0</hive-hcatalog.version>
<hbase-hadoop2.version>1.0.0</hbase-hadoop2.version>
My hadoop,hive,hbase version is :
hadoop : cdh 5.4.3(hadoop2.6.0)
hive: hive-1.1.0-cdh5.4.3
hbase: HBase 1.0.0-cdh5.4.3
apache kylin: kylin-1.0-incubating
I run the sample.sh in KYLIN_HOME/bin the create cube data.
And because the cluster has kerberos authentication, I use the solution
of https://issues.apache.org/jira/browse/KYLIN-1014
to fix it.
But the build cube job still fail at step 13#, #13 Step Name: Create
HTable,the error is:
java.lang.NoSuchMethodError:
org.apache.hadoop.hbase.HTableDescriptor.setValue(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/hadoop/hbase/HTableDescriptor;
at
org.apache.kylin.job.hadoop.hbase.CreateHTableJob.run(CreateHTableJob.java:80)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at
org.apache.kylin.job.common.HadoopShellExecutable.doWork(HadoopShellExecutable.java:62)
at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:107)
at
org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:51)
at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:107)
at
org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:130)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
I found the HTableDescriptor class in hbase-client.jar but when I put
this jar into KYLIN_HOME/tomcat/webapps/kylin/WEB-INF/lib/ it also has error:
java.lang.LinkageError: loader constraint violation: loader (instance
of org/apache/catalina/loader/WebappClassLoader) previously initiated loading
for a different type with name "org/apache/hadoop/hbase/HTableDescriptor"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at
org.apache.kylin.job.hadoop.hbase.CreateHTableJob.run(CreateHTableJob.java:78)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at
org.apache.kylin.job.common.HadoopShellExecutable.doWork(HadoopShellExecutable.java:62)
at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:107)
at
org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:51)
at
org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:107)
at
org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:130)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Can anyone tell me how to change the pom.xml to fix this error?