官网地址

搭建开发环境

http://kylin.apache.org/cn/development/dev_env.html

 

准备源码

下载Kylin源码

上到github官网,找到kylin-3.1.0的源码,下载。

HBaseClient工具_kylin

HBaseClient工具_zookeeper_02

导入eclipse

新建立好eclipse的workspace,再以导入maven工程的方式,将源码导入进来。

HBaseClient工具_HBaseClient工具_03

初始导入时,eclipse Package Explorer目录下会有很多异常。

HBaseClient工具_kylin_04

 

异常修改

方案一:修改父工程pom.xml

HBaseClient工具_zookeeper_05

将eclipse.lifecycle-mapping.version改为1.0.0

如此,可以解决很多子工程的pom.xml异常。

 

方案二:Maven Update Project

右键选择kylin父项目,选择Maven,选择Update Project。其他项目可能也需要maven update。

HBaseClient工具_zookeeper_06

例如,更新kylin-server子项目。

HBaseClient工具_HBaseClient工具_07

 

方案三:ecilpse 设置

关掉Ecilpse xml的Validation功能,可以解决很多报错信息。去掉对勾

HBaseClient工具_zookeeper_08

经过如上三个方案后,大多数红色异常报错信息,都可以解决。

 

还剩下些异常,暂时可以先不处理。

HBaseClient工具_zookeeper_09

报错的主要原因是scala插件包的影响,所以暂时可以不处理。

HBaseClient工具_xml_10

源码的准备工作完成了,接下来按官网指导,进行开发环境搭建。

 

搭建开发环境

maven install安装

在Eclipse中配置了Maven任务

HBaseClient工具_kylin_11

HBaseClient工具_kylin_12

Run kylin_install

HBaseClient工具_kylin_13

修改本地配置

修改本地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 中

官网中关于修改的部分,截图于此:

HBaseClient工具_zookeeper_14

安装提示,针对配置文件逐一修改。

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环境就手工拷贝

HBaseClient工具_HBaseClient工具_15

 

安装node.js

第一步:安装npm

请首先确定已经安装了npm工具。

HBaseClient工具_HBaseClient工具_16

如何在windows环境下安装它,请参考。

 在 Windows 上,安装 bower

第二步:安装bower

npm install -g bower

HBaseClient工具_kylin_17

检查安装情况

HBaseClient工具_HBaseClient工具_18

第三步:修改环境变量

在 Windows 上,安装完 bower,需要将 “bower.cmd” 的路径加入系统环境变量 ‘PATH’ 中,请运行:

bower.cmd --allow-root install

HBaseClient工具_zookeeper_19

 

配置DebugTomcat程序

DebugTomcat类的位置,在kylin-server的子项目中。

HBaseClient工具_kylin_20

Run config

HBaseClient工具_HBaseClient工具_21

参数

HBaseClient工具_xml_22

环境变量

HBaseClient工具_xml_23

说明:要指定HADOOP_HOME,且要有一个HADOOP在windows的模拟程序。

HBaseClient工具_kylin_24

DebugTomcat已经配置完成,但还有些地方需要修改,否则启动会报错。

 

修改hbase在zookeeper存储结点

第一步:先查看hbase的元数据存储在zookeeper哪里?

HBaseClient工具_zookeeper_25

见上图,在存在hbase1目录下。(默认是hbase)。

第二步:屏蔽hbase-site.xml zookeeper.znode.parent

HBaseClient工具_xml_26

第三步:修改代码

找到HBaseConnection.java类

路径如下:

/kylin-storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseConnection.java

添加一行代码conf.set("zookeeper.znode.parent", "/hbase1");

HBaseClient工具_kylin_27

为什么要修改?

因为当前需要找到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

对路径做字符串截取

HBaseClient工具_zookeeper_28

若不修改,在zookeeper中kylin目录会有D: 、E: 的前缀。

HBaseClient工具_HBaseClient工具_29

 

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'

HBaseClient工具_zookeeper_30

debugTomcat启动成功

解决如上问题后,debugTomcat启动成功。

重要日志信息

于hbase创建 kylin 元数据表

HBaseClient工具_xml_31

创建用户信息

HBaseClient工具_kylin_32

KYLIN的默认用户密码是ADMIN/KYLIN

检查元数据表的创建情况

用如下命令,进入hbase 的交互式环境。

hbase shell

HBaseClient工具_xml_33

查询下表内容

HBaseClient工具_HBaseClient工具_34

KYLIN WEB界面

HBaseClient工具_zookeeper_35

登录进来 空空如也

HBaseClient工具_xml_36

 

关键配置

说明下配置文件一些比较关键修改点。

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 (系统找不到指定的文件。)

HBaseClient工具_kylin_37

HBaseClient工具_zookeeper_38

解决方案:

见如下帖子


主要内容

打开MANIFEST.MF文件,删除Class-Path(这个指向的就是找不到的那几个),再打包回jar

HBaseClient工具_xml_39

再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

HBaseClient工具_HBaseClient工具_40

解决方案:

Server/pom.xml文件修改,添加exclusion,剔除jsp的影响。

HBaseClient工具_HBaseClient工具_41

添加如下

<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>