1. 引言

Apache Kylin(麒麟)是由eBay开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据。底层存储用的是HBase,数据输入与cube building用的是Hive,中间数据存储用的是HDFS。搭建环境:

Kylin version = 1.2
Hive version = 0.13.1-cdh5.3.2
HBase version = 0.98.6+cdh5.3.2
Hadoop version = 2.5.0-cdh5.3.2

本文提供的是半分布式安装——HBase环境只在本机搭建;已略去Hadoop环境搭建过程,将主要介绍Hive、HBase、Kylin的搭建步骤。

2. Hive部署

解压包tar zxvf hive-0.13.1-cdh5.3.2.tar.gz,然后mv到指定目录mv hive-0.13.1-cdh5.3.2 <desc-dir>/,指定HIVE_HOME,在.bashrc中添加

export HIVE_HOME=/<desc-dir>/hive-0.13.1-cdh5.3.2/
export PATH=$PATH:$HIVE_HOME/bin:

source后,可以输入hive命令进行表操作;但是还未配置Hive的元数据库。cd ${HIVE_HOME}/conf,创建配置文件cp hive-default.xml.template hive-site.xml,在hive-site.xml文件中配置mysql作为元数据库,需修改以下内容:

<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description>
</property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description>
</property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>username to use against metastore database</description>
</property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value><description>password to use against metastore database</description>
</property>

元数据库在mysql中的database为hive,Driver为com.mysql.jdbc.Driver,用户名与密码均为hive;需在mysql中配置Hive元数据库:

mysql -u root -pmysql> CREATE DATABASE hive;-- 创建 hive 用户,并赋予访问 hive 数据库的权限
mysql> GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql> FLUSH PRIVILEGES;-- 设置 binary log 的格式:
mysql> set global binlog_format=MIXED;

此外还需要添加mysql jdbc jar 包:

tar xvzf mysql-connector-java-5.1.37.tar.gz
mv mysql-connector-java-5.1.37/mysql-connector-java-5.1.37-bin.jar $HIVE_HOME/lib

Kylin用 HCatalog 读取Hive表的,而HCatalog用 property hive.metastore.uris 创建HiveMetaStoreClient 得到元信息。因此,我们还需修改hive-site.xml:

<property><name>hive.metastore.uris</name><value>thrift://localhost:9083</value><description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>

开启metastore 服务:

nohup hive --service metastore -p 9083 &

3. HBase 部署

与Hive 搭建步骤相类似,解压文件mv到指定目录,然后在.bashrc中配置环境变量:

tar zxvf hbase-0.98.6-cdh5.3.2.tar.gz
mv hbase-0.98.6-cdh5.3.2 <desc-dir>/
--.bashrc
export HBASE_HOME=/<desc-dir>//hbase-0.98.6-cdh5.3.2/
export PATH=$PATH:$HIVE_HOME/bin:$HBASE_HOME/bin

以root权限开启HBase服务:

sudo start-hbase.sh

4. Kylin 部署

解压文件mv到指定目录,然后在.bashrc中配置环境变量KYLIN_HOME。此外,还需要修改Kylin的部分配置信息,cd ${KYLIN_HOME}/conf 修改kylin.properites:

#部署服务器ip,便于其他机器访问
kylin.rest.servers=ip:7070#kylin在hdfs存储路径
kylin.hdfs.working.dir=<hdfs-dir>#依赖jar包地址
kylin.job.mr.lib.dir=<lib hdfs-dir>

在每一台机器上可能Hive的部署目录不一致,导致诸如此类exception(因此需要配置 kylin.job.mr.lib.dir):

java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatInputFormat not foundat org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2199)at org.apache.hadoop.mapreduce.task.JobContextImpl.getInputFormatClass(JobContextImpl.java:184)
...

kylin_job_conf.xml配置队列权限:

<property><name>mapreduce.job.queuename</name><value>...</value><description>the queue name</description>
</property>

(最新版本1.5.1同时需要在hive-site.xml 添加)配置完成后,运行./bin/find-hive-dependency.sh看Hive环境是否配置正确,可能需要手动设置HCAT_HOME;./bin/kylin.sh start即可开启kylin服务了。


番外

Kylin如何添加登录用户

官方doc给出解决思路:Kylin是采用Spring security framework做用户认证的,需要配置${KYLIN_HOME}/tomcat/webapps/kylin/WEB-INF/classes/kylinSecurity.xml 的sandbox,testing部分

<beans profile="sandbox,testing"><scr:authentication-manager alias="authenticationManager"><scr:authentication-provider><scr:user-service>...<scr:user name="ADMIN" password="$2a$10$o3ktIWsGYxXNuUWQiYlZXOW5hWcqyNAFQsSSCSEWoC/BRVMAUjL32" authorities="ROLE_MODELER, ROLE_ANALYST, ROLE_ADMIN" /><scr:user name="xxx" password="xxx" authorities="ROLE_MODELER, ROLE_ANALYST, ROLE_ADMIN" />...

password需要spring加密:

<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>4.0.0.RELEASE</version>
</dependency>
String password = "123456";
org.springframework.security.crypto.password.PasswordEncoder encoder= new org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder();
String encodedPassword = encoder.encode(password);
System.out.print(encodedPassword);

Apache Kylin 部署之不完全指南相关推荐

  1. Apache Kylin 4.0.2 集群模式安装部署指南

    前言 本文隶属于专栏<大数据安装部署>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 软件要求 Hadoop: cdh5.x, cdh6.x, hdp2.x, ...

  2. Apache Kylin新手入门指南

    Apache Kylin新手入门指南 文章目录 Apache Kylin新手入门指南 1 Apache Kylin是什么 2 为什么使用Apache Kylin 3 Apache Kylin的易用性如 ...

  3. 【读书笔记】数据仓库- Apache Kylin权威指南

    Apache Kylin权威指南(第2版) ◆ 1.2.1 为什么要使用Apache Kylin 它们的主要技术是"大规模并行处理"(Massively Parallel Proc ...

  4. Apache Kylin权威指南1.3 Apache Kylin的工作原理

    1.3 Apache Kylin的工作原理 Apache Kylin的工作原理本质上是MOLAP(Multidimensional Online Analytical Processing)Cube, ...

  5. Apache Kylin VS Apache Doris

    作者: 康凯森 日期: 2018-04-17 分类: OLAP 1 系统架构 1.1 What is Kylin 1.2 What is Doris 2 数据模型 2.1 Kylin的聚合模型 2.2 ...

  6. 一文读懂Apache Kylin(麒麟)

    "麒麟出没,必有祥瑞." -- 中国古谚语 Kylin思维导图 前言 随着移动互联网.物联网等技术的发展,近些年人类所积累的数据正在呈爆炸式的增长,大数据时代已经来临.但是海量数据 ...

  7. 一文读懂Apache Kylin

    感谢分享. http://www.jianshu.com/p/abd5e90ab051?utm_campaign=maleskine&utm_content=note&utm_medi ...

  8. Apache Kylin(一)

    文章摘自<Apache Kylin 权威指南> 一.概述 Apache Kylin 是Hadoop大数据平台上的一个开源的联机分析处理(OLAP)引擎.它采用多维立方体预计算技术,将大数据 ...

  9. Apache Kylin

    "麒麟出没,必有祥瑞." -- 中国古谚语 Kylin思维导图 前言 随着移动互联网.物联网等技术的发展,近些年人类所积累的数据正在呈爆炸式的增长,大数据时代已经来临.但是海量数据 ...

最新文章

  1. 对偶问题(dual problem)
  2. 理解Linux的性能
  3. [转]轻松掌握Ajax.net系列教程十六:使用DropDownExtender
  4. python中字典数据的特点_Python数据类型(字典)
  5. c语言程序做成可执行文件,windows环境下C程序生成可执行文件
  6. 信安教程第二版-第18章网络安全测评技术与标准
  7. Java同步组件之Condition,FutureTask
  8. mysql5.7 主从数据库操作命令
  9. May the Sunshine be with you!
  10. 2016中国APP分类排行榜参选入围产品公示
  11. xbox one s驱动_【硬件资讯】次世代主机间最大差距?PS5 120Hz支持成难题,XBOX优势巨大!!...
  12. 人工智能之Python人脸对比、人脸检测
  13. AE影视后期特效制作深入剖析AE表达…
  14. 2021.8-机器学习地震信号去噪和到时识取环境配置
  15. python工程师学习路径
  16. dsp 中DATA_SECTION用法
  17. Linux关闭/禁用触摸屏,deepin关闭/禁用触摸屏方法
  18. 横河川仪压力变送器故障代码_压力变送器常见故障解决方法
  19. 【云原生】Prometheus PromQL讲解与实战操作
  20. python学习笔记(空气质量指数)

热门文章

  1. ionic app 优化三件套,让其更贴近原生app
  2. 数据结构实习-迷宫(基于Qt实现)
  3. Atitit 基于dom的游戏引擎
  4. Eclipse配置默认的编码集为utf-8
  5. SEO中HTML标签权重列表
  6. 判断一颗二叉树是否是二叉排序树
  7. Msql自学日志01---基本操作增,删,改,查,建
  8. java -jar命令引导启动Springboot项目的那点事
  9. java rmi 文件传输_JAVA-RMI实现大文件传输
  10. 90国央行齐聚华盛顿研讨区块链:“这一切意味着什么”