kylin的安装和简单使用

来源:博客园 作者:ios123

1.简介


  kylin的设计思想是空间换时间,将hive上的大表的维度全部排列组合计算也将度量提前计算然后存入HBase库,这个步骤在kylin中称之为build cube。


在查询的时候已经建立cube的hive表会直接访问HBase的scan来拿出结果,对于度量则可以直接get即可。由于数据量的膨胀关系,数据的维度需要控制在15个以下。另外由于是预计算结果所以数据


在确定列等信息后不能修改,不能修改表结构。


 


2.环境说明


  hadoop CDH5.4.2 ----- 需要打上MAPREDUCE-6213补丁


  HBase CDH5.7.0--------kylin只支持HBase1.1.0以上的版本


  Hive apache-hive-2.0.1


3.安装步骤


  1.下载kylin:


    http://kylin.apache.org/cn/download/


  2.下载tomcat:


    http://tomcat.apache.org/


    (以上版本需要根据自己的需要选择,本次使用的是 apache-kylin-1.6.0-cdh5.7 和 apache-tomcat-8.5.11)


  3.设定环境变量:


  export CATALINA_HOME=/Users/apple/Desktop/software/apache-tomcat-8.5.11


  export KYLIN_HOME=/Users/apple/Desktop/hadoop2/apachesrc/kylin/bin/apache-kylin-1.6.0-cdh5.7-bin


  4.修改配置文件kylin.properties,增加如下两项目:


kylin.job.jar=/Users/apple/Desktop/hadoop2/apachesrc/kylin/bin/apache-kylin-1.6.0-cdh5.7-bin/lib/kylin-job-1.6.0.jar

kylin.coprocessor.local.jar=/Users/apple/Desktop/hadoop2/apachesrc/kylin/bin/apache-kylin-1.6.0-cdh5.7-bin/lib/kylin-coprocessor-1.6.0.jar

    需要将kylin.coprocessor.local.jar指定的jar包放到hbase集群的lib下。


  5.  kylin依赖的服务需要在kylin本地安装服务器上有拷贝(可以不起服务),同时需要如下进行环境变量的设定:这样kylin可以连接hive hbase以及hadoop集群。


复制代码

export HIVE_HOME=/Users/apple/Desktop/hadoop2/apachesrc/hive/2.0.1/bin/apache-hive-2.0.1-bin

export HIVE_CONF_DIR=/Users/apple/Desktop/hadoop2/apachesrc/hive/2.0.1/bin/config

export HCAT_HOME=$HIVE_HOME/hcatalog

export HIVE_CONF=/Users/apple/Desktop/hadoop2/apachesrc/hive/2.0.1/bin/config

export HADOOP_HOME=/Users/apple/Desktop/hadoop2/cdh/hadoop/bin/hadoop-2.6.0-cdh5.4.2

export HADOOP_CONF_DIR=/Users/apple/Desktop/hadoop2/cdh/hadoop/bin/config

#export YARN_HOME=$HADOOP_HOME

#export YARN_CONF_DIR=$HADOOP_CONF_DIR

#export HBASE_HOME=/Users/apple/Desktop/hadoop2/cdh/hbase/bin/hbase-1.0.0-cdh5.4.2

export HBASE_HOME=/Users/apple/Desktop/hadoop2/cdh/hbase/bin/hbase-1.2.0-cdh5.7.0

export HBASE_CONF_DIR=/Users/apple/Desktop/hadoop2/cdh/hbase/bin/config

export PATH=$HIVE_HOME/bin:$HBASE_HOME/bin:$KYLIN_HOME/bin:$HCAT_HOME/bin:$CATALINA_HOME/bin:$SBT_HOME/bin:$MAVEN_HOME/bin:$PROTOBUF_HOME/bin:$JAVA_HOME/bin:$ANT_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

复制代码

 


  6. 需要开启hive的远程thrift的metastare服务,kylin在sync hive表元数据的时候需要连接这个服务。


nohup hive --service metastore -p 9083 &

 


  7. 启动kylin


     kylin.sh start


   启动过程中会对依赖的服务进行连通性的检查:


复制代码

if [ -z "$KYLIN_HOME" ]

then

    echo 'please make sure KYLIN_HOME has been set'

    exit 1

else

    echo "KYLIN_HOME is set to ${KYLIN_HOME}"

fi


if [ -z "$(command -v hbase version)" ]

then

    echo "Please make sure the user has the privilege to run hbase shell"

    exit 1

fi


if [ -z "$(command -v hive --version)" ]

then

    echo "Please make sure the user has the privilege to run hive shell"

    exit 1

fi


if [ -z "$(command -v hadoop version)" ]

then

    echo "Please make sure the user has the privilege to run hadoop shell"

    exit 1

fi

复制代码

  


  8.  默认用户名/密码 ADMIN / KYLIN


     


4.简单使用


  一般使用步骤为:0.登录->1.建立项目->2.同步hive表元数据(事实表)->3.在事实表基础上建立模型->4.在模型基础上建立cube->5.build cube->通过cube查询


  0.登录kylin


  1.建立项目:

blob.png

2.同步hive表元数据(事实表)

blob.png

 3.基于hive事实表进行模型的建立

blob.png

说明:

    1.选择模型基于的事实表

    2.选择事实表中那些对于那些维度进行建模,被选维度会被用于cube的计算。

    3.选择事实表中那些度量进行建模,被选度量在计算cube的时候直接进行预计算结果。

    4.选择事实表中的分区信息以及数据过滤,数据过滤条件中不能有时间或者分区字段的过滤,这样会影响增量刷cube(因为增量是基于时间的(或者说分区)进行的)

 

  4.基于模型建立cube

blob.png

说明:

      1.新建cube的时候选择基于model

      2.选择要创建的维度信息

      3.选择哪些度量需要做聚合计算,以及做什么聚合计算

      4.选择增量刷新cube的定时任务,以及此模型开始的分区信息

      5.当设定完毕保存后产生cube任务,点击build

      6.通过监控页面可以查看到当前cube任务的运行信息,主要通过MR计算得出立方体结构数据,然后将这些数据通过bulkload到HBase,最后做清理动作

 

5.查询(页面)

    当cube创建完毕后可以通过jdbc链接或者直接通过查询页面进行查询,只有已经建立了cube的事实表才能做查询。

blob.png

6.查询(jdbc)

  驱动请在此下载:https://javalibs.com/artifact/org.apache.kylin/kylin-jdbc

 

  样例代码:

import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;import org.apache.kylin.jdbc.Driver;public class JdbcMain {    public static void main(String[] args) throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException {
       Driver driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
       Properties info = new Properties();        // 登录web的密码,更多用户可以被设定 也可以链接ldap连接到内部账户服务
       info.put("user", "ADMIN");
       info.put("password", "KYLIN");        // test 为工程名,指明此链接去哪一个工程下去查询
       Connection conn = driver.connect("jdbc:kylin://applexf.local:7070/test", info);
       Statement state = conn.createStatement();
       ResultSet resultSet = state.executeQuery("select * from TABLEFORKYLIN");        while (resultSet.next()) {
           System.out.print(resultSet.getString(1) + " ");
           System.out.print(resultSet.getString(2) + " ");
           System.out.print(resultSet.getString(3) + "\n");
       }
   }

}

blob.png

相关文档推荐

金蝶云星空+V7.7产品培训PLM安装部署.PPTX

2138101988  3.52MB 23页 积分5

一种秒级安装npm的方式.PDF

46029500 零弌 1.59MB 29页 积分4

zookeepe kafka storm安装手册.DOCX

421862860  0.14MB 14页 积分4

Oracle数据库双机热备安装手册.DOC

222425377  5.95MB 71页 积分5

阿里云数据库平台架构演进之路.PDF

422135165 徐东来 1.29MB 31页 积分4

互联网架构解耦优化实践.PDF

421862185 沈剑 1.64MB 18页 积分4

微软BIGartnerBI魔力象限的领导者.PDF

421862184 炼数成金 20.01MB 42页 积分4

自然语言理解技术与智能问答实践.PDF

421862183 刘琳 1.35MB 28页 积分4

阿里云机器学习技术与应用.PDF

421862182 刘吉哲 2.06MB 26页 积分4

智能运维中的异常检测和根源分析.PDF

421862181 赵宇辰 0.79MB 35页 积分4

相关文章推荐