官网地址
搭建开发环境
http://kylin.apache.org/cn/development/dev_env.html
准备源码
下载Kylin源码
上到github官网,找到kylin-3.1.0的源码,下载。
导入eclipse
新建立好eclipse的workspace,再以导入maven工程的方式,将源码导入进来。
初始导入时,eclipse Package Explorer目录下会有很多异常。
异常修改
方案一:修改父工程pom.xml
将eclipse.lifecycle-mapping.version改为1.0.0
如此,可以解决很多子工程的pom.xml异常。
方案二:Maven Update Project
右键选择kylin父项目,选择Maven,选择Update Project。其他项目可能也需要maven update。
例如,更新kylin-server子项目。
方案三:ecilpse 设置
关掉Ecilpse xml的Validation功能,可以解决很多报错信息。去掉对勾
经过如上三个方案后,大多数红色异常报错信息,都可以解决。
还剩下些异常,暂时可以先不处理。
报错的主要原因是scala插件包的影响,所以暂时可以不处理。
源码的准备工作完成了,接下来按官网指导,进行开发环境搭建。
搭建开发环境
maven install安装
在Eclipse中配置了Maven任务
Run kylin_install
修改本地配置
修改本地Wins环境hosts文件
加上大数据集群节点的hostname信息
192.168.7.xxx slave2
192.168.7.xxx slave1
192.168.7.xxx master
据官网提示,修改配置。
修改kylin的配置
在 examples/test_case_data/sandbox/kylin.properties 中
修改hadoop的配置
在 examples/test_case_data/sandbox 中
官网中关于修改的部分,截图于此:
安装提示,针对配置文件逐一修改。
kylin配置
kylin.properties
/kylin-core-common/src/main/resources/kylin-defaults.properties
hadoop配置
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
hive配置
hive-site.xml
hbase配置
hbase-site.xml
本地运行 Kylin Web 服务器
步骤重要 步骤重要 步骤重要
拷贝WEB-INF文件
cp -r server/src/main/webapp/WEB-INF webapp/app/WEB-INF
Wins环境就手工拷贝
安装node.js
第一步:安装npm
请首先确定已经安装了npm工具。
如何在windows环境下安装它,请参考。
在 Windows 上,安装 bower
第二步:安装bower
npm install -g bower
检查安装情况
第三步:修改环境变量
在 Windows 上,安装完 bower,需要将 “bower.cmd” 的路径加入系统环境变量 ‘PATH’ 中,请运行:
bower.cmd --allow-root install
配置DebugTomcat程序
DebugTomcat类的位置,在kylin-server的子项目中。
Run config
参数
环境变量
说明:要指定HADOOP_HOME,且要有一个HADOOP在windows的模拟程序。
DebugTomcat已经配置完成,但还有些地方需要修改,否则启动会报错。
修改hbase在zookeeper存储结点
第一步:先查看hbase的元数据存储在zookeeper哪里?
见上图,在存在hbase1目录下。(默认是hbase)。
第二步:屏蔽hbase-site.xml zookeeper.znode.parent
第三步:修改代码
找到HBaseConnection.java类
路径如下:
/kylin-storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseConnection.java
添加一行代码conf.set("zookeeper.znode.parent", "/hbase1");
为什么要修改?
因为当前需要找到hbase存储在zookeeper中的元数据,如果路径错了,就会报空指针。
主要错误信息如下:
java.lang.NullPointerException at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.getMetaReplicaNodes
Zookeeper Node设置
若是windows系统,建议修改,若是Mac、Linux可以忽略。
找到ZKUtil.java类
/kylin-core-common/src/main/java/org/apache/kylin/common/util/ZKUtil.java
对路径做字符串截取
若不修改,在zookeeper中kylin目录会有D: 、E: 的前缀。
DebugTomcat启动
因权限问题,启动报错。
Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.security.AccessDeniedException): org.apache.hadoop.hbase.security.AccessDeniedException: root user name/password is error
需要针对 hbase 数据库进行修改
针对hbase-site.xml添加配置
<property>
<name>hxxx.security.authentication</name>
<value>false</value>
</property>
Hbase为root用户赋权
此时启动debugTomcat的程序,会遇到一个问题。
AccessDeniedException: Insufficient permissions
org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (user=root, scope=default, params=[namespace=default,table=default:kylin_metadata_yfh,family=f],action=CREATE)
原因:hbase数据库,要为root用户赋权,root用户才能创建数据表。
解决方案:
hbase shell
grant 'root', 'RWXCA'
debugTomcat启动成功
解决如上问题后,debugTomcat启动成功。
重要日志信息
于hbase创建 kylin 元数据表
创建用户信息
KYLIN的默认用户密码是ADMIN/KYLIN
检查元数据表的创建情况
用如下命令,进入hbase 的交互式环境。
hbase shell
查询下表内容
KYLIN WEB界面
登录进来 空空如也
关键配置
说明下配置文件一些比较关键修改点。
kylin
第一个文件kylin.properties
路径:
/kylin/examples/test_case_data/sandbox/kylin.properties
# The metadata store in hbase
kylin.metadata.url=kylin_metadata_win310@hbase
# The storage for final cube file in hbase
kylin.storage.url=hbase
# Working folder in HDFS, make sure user has the right access to the hdfs directory
kylin.env.hdfs-working-dir=/kylin_win310
# zookeeper连接串
kylin.env.zookeeper-connect-string=master,slave1,slave2
# kylin 远程配置 #在kylin hadoop剥离中,此处也要配置
kylin.job.use-remote-cli=true
kylin.job.remote-cli-hostname=slave1
kylin.job.remote-cli-username=root
kylin.job.remote-cli-password=xxx
第二个文件kylin-defaults.properties
路径:
/kylin-core-common/src/main/resources/kylin-defaults.properties
# kylin zk base path
kylin.env.zookeeper-base-path=/kylin_win310
# The prefix of hbase table
kylin.storage.hbase.table-name-prefix=KYLIN_WIN310_
Hadoop
路径:
/kylin/examples/test_case_data/sandbox
hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:8020/apps/hbase/data</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://xxx:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
yarn-site.xml
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
端口一定要与大数据平台一致
原始配置
其他 Hadoop 配置逐一修改。
开发环境搭建,介绍完毕!
补充本地DebugTomcat启动
遇到几个新问题,补充一下。
问题1
FileNotFoundException: D:\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\jaxb-api.jar (系统找不到指定的文件。)
FileNotFoundException: D:\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\activation.jar (系统找不到指定的文件。)
FileNotFoundException: D:\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\jsr173_1.0_api.jar (系统找不到指定的文件。)
FileNotFoundException: D:\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\jaxb1-impl.jar (系统找不到指定的文件。)
解决方案:
见如下帖子
主要内容
打开MANIFEST.MF文件,删除Class-Path(这个指向的就是找不到的那几个),再打包回jar
再DebugTomcat启动,如上问题可以解决。
问题2
org.apache.jasper.JasperException: PWC6177: XML parsing error on file file:/D:/repository/com/sun/jersey/jersey-servlet/1.19/jersey-servlet-1.19.jar
Caused by: org.xml.sax.SAXException: PWC6181: File /javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd not found
解决方案:
Server/pom.xml文件修改,添加exclusion,剔除jsp的影响。
添加如下
<exclusion>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
</exclusion>