一般是跟Hive交互失败,配置原因(前提Hive本身运行OK)
修改文件
$KYLIN_HOME/conf/kylin.properties
# Hive client, valid value [cli, beeline] 这里配置Kylin连接Hive的模式,我的Hive用的beeline,默认是cli所以会报错
kylin.hive.client=beeline # Old value is "cli"
#Parameters for beeline client, only necessary if hive client is beeline 这里配置-n用户名,贪图省事用的 root,我之前还以为是需要用连接beeline的用户名密码,配置了 -n hive的用户名 -p hive的密码,结果执行build cube时候失败了,表示没有权限!后来测试发现 好像需要配置Linux系统的用户名,而非hive的用户名.而且不用配置密码(感觉是调用了hive自己的配置信息中的用户名密码跟hive交互),这里的用户名只是为了操作hadoop使用,所以需要linux的用户名
# 下面中jdbc:hive2://localhost:10000根据自己 hive的域名/地址 端口号自行修改
kylin.hive.beeline.params=-n root --hiveconf hive.security.authorization.sqlstd.confwhitelist.append='mapreduce.job.*|dfs.*' -u 'jdbc:hive2://localhost:10000'
原因:Kylin没有Hive操作的相关jar包
解决思路:添加缺失jar包
方法1(推荐):搜索的大家用的最多的方法,但是我没成功.
参考:https://blog.csdn.net/weixin_34380296/article/details/89649992
ps:原文里修改 /etc/profile的内容中
# 7. kylin
export KYLIN_HOME=/developer/apache-kylin-2.3.0-bin
export hive_dependency=$HIVE_HOME/conf:$HIVE_HOME/lib/*:$HCAT_HOME/share/hcatalog/hive-hcatalog-core-1.1.0.jar
hive-hcatalog-core-1.1.0.jar 这个jar包的版本号,根据自己实际路径下的jar包版本自行修改.
修改完 不要忘了
# 刷新下配置文件
source /etc/profile
重启kylin
方法2(不推荐):
因为使用方法1Kylin直接导致我启动Kylin失败,common-logging还是某个jar包冲突.
报错:
You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.
#修改为只引用了hive-hcatalog-core的jar包
hive_dependency=$HCAT_HOME/share/hcatalog/hive-hcatalog-core-对应版本号.jar
所以导致手动把hive的部分jar包拷贝到kylin/lib路径下
[root@Master ~]# cd /opt/apache-kylin-2.6.3-bin-hadoop3/lib
[root@Master lib]# ls
datanucleus-api-jdo-4.2.4.jar hive-exec-3.1.2.jar hive-llap-ext-client-3.1.2.jar hive-shims-scheduler-3.1.2.jar kylin-jdbc-2.6.3.jar
datanucleus-core-4.1.17.jar hive-hbase-handler-3.1.2.jar hive-llap-server-3.1.2.jar hive-standalone-metastore-3.1.2.jar kylin-job-2.6.3.jar
datanucleus-rdbms-4.1.19.jar hive-hcatalog-core-3.1.2.jar hive-llap-tez-3.1.2.jar hive-storage-api-2.7.0.jar libfb303-0.9.3.jar
hive-accumulo-handler-3.1.2.jar hive-hcatalog-server-extensions-3.1.2.jar hive-metastore-3.1.2.jar hive-streaming-3.1.2.jar libthrift-0.9.3.jar
hive-beeline-3.1.2.jar hive-hplsql-3.1.2.jar hive-serde-3.1.2.jar hive-testutils-3.1.2.jar mysql-connector-java-5.1.48.jar
hive-classification-3.1.2.jar hive-jdbc-3.1.2.jar hive-service-3.1.2.jar hive-upgrade-acid-3.1.2.jar mysql-metadata-storage-0.12.0.jar
hive-cli-3.1.2.jar hive-kryo-registrator-3.1.2.jar hive-service-rpc-3.1.2.jar hive-vector-code-gen-3.1.2.jar
hive-common-3.1.2.jar hive-llap-client-3.1.2.jar hive-shims-0.23-3.1.2.jar jdo-api-3.0.1.jar
hive-contrib-3.1.2.jar hive-llap-common-3.1.2.jar hive-shims-3.1.2.jar kylin-coprocessor-2.6.3.jar
hive-druid-handler-3.1.2.jar hive-llap-common-3.1.2-tests.jar hive-shims-common-3.1.2.jar kylin-datasource-sdk-2.6.3.jar
修改hadoop配置文件
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
添加/修改
<configuration>
....略...
<name>dfs.permissions.enabledname>
<value>falsevalue>
<description>
If "true", enable permission checking in HDFS.
If "false", permission checking is turned off,
but all other behavior is unchanged.
Switching from one parameter value to the other does not change the mode,
owner or group of files or directories.
description>
configuration>
修改core-site.xml
<configuration>
...略...
<property>
<name>hadoop.proxyuser.root.hostsname>
<value>*value>
property>
<property>
<name>hadoop.proxyuser.root.groupsname>
<value>*value>
property>
configuration>
解决办法 为:
$HBASE_HOME/conf/hbase-site.xml
的属性hbase.rootdir改成与
$HADOOP_HOME/etc/hadoop/core-site.xml
中的属性fs.defaultFS一致
rmr /hbase
将/hbase删除,然后重启hbase,Kylin重试
nohup hive --service metastore &