【会装】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:
(以上版本需要根据自己的需要选择,本次使用的是 apache-kylin-1.6.0-cdh5.7 和 apache-tomcat-8.5.11)
3.设定环境变量:
export CATALINA_HOME=/Users/apple/Desktop/software/apache-tomcat-8.5.
export KYLIN_HOME=/Users/apple/Desktop/hadoop2/apachesrc/kylin/bin/apache-kylin-1.6.-cdh5.-bin
4.修改配置文件kylin.properties,增加如下两项目:
kylin.job.jar=/Users/apple/Desktop/hadoop2/apachesrc/kylin/bin/apache-kylin-1.6.-cdh5.-bin/lib/kylin-job-1.6..jar
kylin.coprocessor.local.jar=/Users/apple/Desktop/hadoop2/apachesrc/kylin/bin/apache-kylin-1.6.-cdh5.-bin/lib/kylin-coprocessor-1.6..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./bin/apache-hive-2.0.-bin
export HIVE_CONF_DIR=/Users/apple/Desktop/hadoop2/apachesrc/hive/2.0./bin/config
export HCAT_HOME=$HIVE_HOME/hcatalog
export HIVE_CONF=/Users/apple/Desktop/hadoop2/apachesrc/hive/2.0./bin/config
export HADOOP_HOME=/Users/apple/Desktop/hadoop2/cdh/hadoop/bin/hadoop-2.6.-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.-cdh5.4.2
export HBASE_HOME=/Users/apple/Desktop/hadoop2/cdh/hbase/bin/hbase-1.2.-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 &
7. 启动kylin
kylin.sh start
启动过程中会对依赖的服务进行连通性的检查:
if [ -z "$KYLIN_HOME" ]
then
echo 'please make sure KYLIN_HOME has been set'
exit
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
fi if [ -z "$(command -v hive --version)" ]
then
echo "Please make sure the user has the privilege to run hive shell"
exit
fi if [ -z "$(command -v hadoop version)" ]
then
echo "Please make sure the user has the privilege to run hadoop shell"
exit
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) + "\n");
}
} }
结果:
附录:
1. 参考https://my.oschina.net/aibati2008/blog/745389来使用
完毕。
【会装】kylin的安装(填坑)和简单使用的更多相关文章
- ubuntu 14.04中安装 ruby on rails 环境(填坑版) 呕血推荐
环境:在win7 上Vmware虚拟机环境中安装的ubuntu 14.04 开发相关: ruby 2.2.0 rails 4.2.0 sublime text 3 本文说明:所有的命令均在$ 之后,若 ...
- CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)
安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...
- windows下jenkins常见问题填坑
没有什么高深的东西,1 2天的时间大多数人都能自己摸索出来,这里将自己遇到过的问题分享出来避免其他同学再一次挖坑. 目录 1. 主从节点 2. Nuget自动包还原 3. powershell部署 4 ...
- 【过程改进】 windows下jenkins常见问题填坑
没有什么高深的东西,1 2天的时间大多数人都能自己摸索出来,这里将自己遇到过的问题分享出来避免其他同学再一次挖坑. 目录 1. 主从节点 2. Nuget自动包还原 3. powershell部署 4 ...
- 持续集成 windows下jenkins常见问题填坑
[过程改进]持续集成 windows下jenkins常见问题填坑 没有什么高深的东西,1 2天的时间大多数人都能自己摸索出来,这里将自己遇到过的问题分享出来避免其他同学再一次挖坑. 目录 1. 主从节 ...
- Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记
公司的CDH早就装好了,一直想自己装一个玩玩,最近组了台电脑,笔记本就淘汰下来了,加上之前的,一共3台,就在X宝上买了CPU和内存升级了下笔记本,就自己组了个集群. 话说,好想去捡垃圾,捡台8核16线 ...
- Hexo博客skapp主题部署填坑指南
相信大家都很喜欢 hexo skapp 的主题,由于作者采用结巴分词,加上需要依赖各种各样的环境 所以可能大家踩过很多坑,也许每个人踩得坑不一样,这里使用 Docker 容器 centos 来部署, ...
- Android—基于微信开放平台v3SDK,开发微信支付填坑。
接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...
- 解决Ubuntu Kylin 1610安装ANSYS17.2的NVIDIA显卡驱动问题
Ubuntu Kylin 1610在安装完毕后,会自动安装显卡驱动,对于一般的图形图像使用来说自然不会有太大的问题,但是对于ANSYS17.2的一些模块,还是会出现问题.一个比较常见的问题就是Open ...
随机推荐
- Eclipse中使用git提交代码,报错Testng 运行Cannot find class in classpath的解决方案
一.查找原因方式 1.点击Project——>Clear...——>Build Automatically 2.查看问题 二.报错因素 1.提交.xlsx文件 2.提交时,.xlsx文件被 ...
- 【纪念】NOIP2018前夕——一些想说的话
刚刚复习了一下相关的内容,决定一会儿就洗洗睡了.在睡觉之前,决定写点东西. 有的时候真的很迷茫,选择了一条超过自己能力范围的路,每天挣扎在各种各样难题的面前,文化成绩一落千丈……在从前觉得这一切都是有 ...
- 【刷题】BZOJ 4349 最小树形图
Description 小C现在正要攻打科学馆腹地------计算机第三机房.而信息组的同学们已经建好了一座座堡垒,准备迎战.小C作为一种高度智慧的可怕生物,早已对同学们的信息了如指掌. 攻打每一个人 ...
- day29:关闭服务|
1. 在centos6系统里,我们可以使用ntsysv关闭不需要开机启动的服务,当然也可以使用chkconfig工具来实现. 写一个shell脚本,用chkconfig工具把不常用的服务关闭.脚本需要 ...
- 洛谷 P3648 [APIO2014]序列分割 解题报告
P3648 [APIO2014]序列分割 题目描述 你正在玩一个关于长度为\(n\)的非负整数序列的游戏.这个游戏中你需要把序列分成\(k+1\)个非空的块.为了得到\(k+1\)块,你需要重复下面的 ...
- bzip2 --安装
下载源文件安装包: http://www.bzip.org/downloads.html 解压: tar -xzvf bzip2-1.0.6.tar.gz 进入解压后的目录: cd bzip2-1.0 ...
- flex的使用实例
之前的随笔从阮一峰老师那里学到了flex的基本用法及作用,现在来把flex具体运用到实例中,看看flex的弹性布局效果. 1. flex设置元素垂直居中对齐 在之前的一篇文章中记载过如何垂直居中对齐 ...
- NOIP2017 Day2 T2 宝藏(状压DP)
$O(n*3^n)$好难想...还有好多没见过的操作 令$f[i][j]$表示最深深度为i,点的状态为j的最小代价,每次枚举状态$S$后,计算$S$的补集里的每个点与S里的点的最小连边代价,再$O(3 ...
- 【数学】【P5076】 Tweetuzki 爱整除
Description 对于一个数 \(k\),找到任意一个 \(x\),满足 \(0~\leq~k~\leq~x~\leq~10^{18}\) 且对于任意一个 \(x\) 进制数,把该数字各数位上的 ...
- 使图片水平并垂直居中的一个Hack
淘宝的一个前端面试题:使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中. 想起了vertical-align:middle;但是不行,后来才知道还要di ...