Apache Kylin 安装说明

Kylin运行依赖于Hive,MR,Hbase等,所以Kylin的安装需要先配置好Hive,Hadoop,Hbase环境才行。
首先要注意的是,Kylin运行提交任务默认会认为MR任务所在的文件夹jar包,在集群其它机器上相同的位置也有相应的jar包。比如hadoop-mapreduce-client-core-2.4.0.jar位置在kylin机器上为 /usr/local/hadoop, 那么默认运行时候在集群中的机器上jar包的位置也需要在同样的位置。这样的话,我们就需要根据Hadoop集群位置来命名Kylin机器上hadoop安装包路径。
其次就是安装hive,hbase,并且注意的是我们采用的是跑kylin构建任务的Hadoop集群与提供查询服务的Hbase底层Hadoop集群分离的架构,需要跑任务的集群能够有权限访问Hbase集群中Hadoop的各个节点。
最后是关于Kylin的配置,Kylin的配置都在$KYLIN_HOME/conf/kylin.properties
需要注意的几个选项:
kylin.metadata.url=kylin_metadata@hbase kylin元数据存储
kylin.hdfs.working.dir=/user/jiangyu2/kylin Kylin构建过程结果存储路径
kylin.hbase.cluster.fs=hdfs://ns-test 如果是两个hdfs,需要设置hbase的hdfs
kylin.hbase.cluster.hdfs.config.file=hbase.hdfs.xml 如果是两个集群,需要设置hbase的conf ,位置在$KYLIN_HOME/conf下面的hbase.hdfs.xml
最后需要修改Hbase的一个配置

  <property>
      <name>hbase.use.dynamic.jar</name>
      <value>false</value>
  </property>

另外,Kylin的权限可以通过LDAP来管理的,也可以通过硬编码,如果采用硬编码,修改位置在$KYLIN_HOME/tomcat/webapps/kylin/WEB-INF/classes/kylinSecurity.xml

        <beans profile="testing">
                <!-- user auth -->
                <bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />

                <scr:authentication-manager alias="testingAuthenticationManager">
                        <scr:authentication-provider>
                                <scr:user-service>
                                        <scr:user name="MODELER" password="$2a$10$Le5ernTeGNIARwMJsY0WaOLioNQdb0QD11DwjeyNqqNRp5NaDo2FG" authorities="ROLE_MODELER" />
                                        <scr:user name="ANALYST" password="$2a$10$s4INO3XHjPP5Vm2xH027Ce9QeXWdrfq5pvzuGr9z/lQmHqi0rsbNi" authorities="ROLE_ANALYST" />
                                        <scr:user name="ADMIN" password="$2a$10$o3ktIWsGYxXNuUWQiYlZXOW5hWcqyNAFQsSSCSEWoC/BRVMAUjL32" authorities="ROLE_MODELER, ROLE_ANALYST, ROLE_ADMIN" />
                                </scr:user-service>
                                <scr:password-encoder ref="passwordEncoder" />
                        </scr:authentication-provider>
                </scr:authentication-manager>
        </beans>

可以新增加用户,新增加的用户密码由下面的代码来实现

package search;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * Created by jiangyu2 on 12/7/16.
 */
public class F {
  public static void main(String[] args) {
    String password = "suda_test";
    PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
    String encodedPassword = passwordEncoder.encode(password);
    System.out.print(encodedPassword);
  }
}

Kylin安装文档

    最近在接触OLAP相关领域。以下为Kylin安装过程。

    基线版本选用的是0.7.1,github地址是 https://github.com/KylinOLAP/Kylin/tree/0.7.1

    官方安装文档地址是 https://github.com/KylinOLAP/Kylin/wiki/On-Hadoop-CLI-installation.官方binary包地址在首页提供下载。

    Kylin默认使用的是Hadoop 2.2,Hbase 0.98,hive 0.14。binary中打出的jar包全部是基于这些版本。而按照官方安装文档,执行script/package.sh脚本后生成的war包缺少很多页面,所以安装与官方文档略有不同。

    1、下载Kylin源码包,修改pom.xml,将Hadoop版本改为Hadoop 2.4,Hbase改为1.0,Hive改为0.13。

    2、安装npm,在打包过程中会使用

    3、由于Hbase1.0相对于0.98有api改动,会报错,错误为 

Kylin

    修改Kylin代码中的HBaseConnection.class将connection的获取过程改为

    connection =  (ClusterConnection) ConnectionFactory.createConnection(conf); 并修改相应的数据结构。

    4、随后使用script/package.sh打包。打出tomcat部署的war包,位置在/server/target/目录下,将binary包中相应的jar包替换为打出的jar包,主要是以kylin开头的所有jar包

    5、启动tomcat前首先修改hadoop classpath 将$HADOOP_HOME/etc/hadoop/hadoop-env.sh 中capacity jar包去掉,否则kylin启动时会读取hadoop环境,去获取jar包,缺少jar包而无法启动

    6、修改conf/kylin_job_conf.xml,作为任务的通用模板,其中加入rm地址,用于http获取job信息

    <property>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>yz543.hadoop.data.sina.com.cn:9008</value>

    </property>

    7、在跑任务之前需要重新编译hcatalog项目,位置在hive源码包中hcatalog目录下,首先修改hive pom.xml,修改以下两行

    <hadoop-23.version>2.4.0</hadoop-23.version>

    <hbase.hadoop2.version>1.0.0</hbase.hadoop2.version>

    在hcatalog目录下,mvn打包 mvn clean package -DskipTests -Phadoop-2,将hive-catalog*.jar 除了test以外的分发到集群中各个节点,同时分发hive-exec-0.13.0.jar和hive-metastore-0.13.0.jar包。用于mr任务使用。

    8、在Kylin的服务器上加入KYLIN_HOME,PATH等环境变量

    export KYLIN_HOME=/usr/local/Kylin-0.7.1

    export PATH=$KYLIN_HOME/bin:$PATH

    9、需要修改Kylin的启动脚本bin/find-hive-dependency.sh

    10、启动kylin kylin.sh start

    停止kylin  kylin.sh stop