zoukankan      html  css  js  c++  java
  • 【会装】kylin的安装(填坑)和简单使用

     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.建立项目:

      

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

      

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

          

      说明:

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

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

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

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

      4.基于模型建立cube

         

        说明:

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

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

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

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

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

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

    5.查询(页面)

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

        

    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) + "
    ");
            }
        }
    
    }

      结果:

      

      

    附录:

      1. 参考https://my.oschina.net/aibati2008/blog/745389来使用

    完毕。

  • 相关阅读:
    DLL编写教程
    Ogre 配置
    LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
    C++编译,链接错误总结
    git基本操作
    实习第33天
    HTTP状态码整理
    Window下的WebStorm快捷键操作
    告别div,可以代替div的几个标签
    实习20天
  • 原文地址:https://www.cnblogs.com/ios123/p/6548440.html
Copyright © 2011-2022 走看看