Apache Kylin 部署之不完全指南
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 -p
mysql> 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 found
at 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 部署之不完全指南的更多相关文章
- Apache Kylin安装部署
0x01 Kylin安装环境 Kylin依赖于hadoop大数据平台,安装部署之前确认,大数据平台已经安装Hadoop, HBase, Hive. 1.1 了解kylin的两种二进制包 预打包的二进制 ...
- 【大数据安全】Apache Kylin 安全配置(Kerberos)
1. 概述 本文首先会简单介绍Kylin的安装配置,然后介绍启用Kerberos的CDH集群中如何部署及使用Kylin. Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spa ...
- Apache Kylin v3.0.0-alpha 发布
Apache Kylin v3.0.0-alpha 发布 Apr 19, 2019 • Shaofeng Shi 近日 Apache Kylin 社区很高兴地宣布,Apache Kylin v3.0. ...
- 浅淡 Apache Kylin 与 ClickHouse 的对比
作者简介 周耀,Kyligence 解决方案架构师,Apache Kylin.Apache Superset Contributor. Apache Kylin 和 ClickHouse 都是目前市场 ...
- 《基于Apache Kylin构建大数据分析平台》
Kyligence联合创始人兼CEO,Apache Kylin项目管理委员会主席(PMC Chair)韩卿 武汉市云升科技发展有限公司董事长,<智慧城市-大数据.物联网和云计算之应用>作者 ...
- 【转】使用Apache Kylin搭建企业级开源大数据分析平台
http://www.thebigdata.cn/JieJueFangAn/30143.html 本篇文章整理自史少锋4月23日在『1024大数据技术峰会』上的分享实录:使用Apache Kylin搭 ...
- [kylin] 部署kylin服务
一.工具准备 zookeeper3.4.6 (hadoop.hbase 管理工具) Hadoop. Hbase1.1.4 Kylin1.5.0-HBase1.1.3 Jdk1.7.80 Hive 二. ...
- Apache kylin 入门
本篇文章就概念.工作机制.数据备份.优势与不足4个方面详细介绍了Apache Kylin. Apache Kylin 简介 1. Apache kylin 是一个开源的海量数据分布式预处理引擎.它通过 ...
- Apache kylin的基础环境
一.Apache kylin的基础环境 由于Apache kylin上的OLAP(wiki:OLAP)是构建在hadoop生态环境上的,所以hadoop环境的稳定性和健壮性对kylin的稳定运行至关重 ...
随机推荐
- ASP.NET MVC3 Razor 初心者容易遇到的問題(转)
这是一些相关的文章地址 http://demo.tc/Post/679 http://blog.csdn.net/cheny_com/article/details/6298496
- 客户端GUI程序开发漫谈
这篇文章包含了这个领域的很多开源项目的介绍,还有我多年来的心血和汗水 去年夏天的时候,我用QT做了一个小工具 后来还用QT做了流程设计器 我把程序分享给飞扬青云之后,他甚至搞出来一套QT的皮肤来 说 ...
- 目前在做的一个web应用程序的前端选型
最近进入了一个新的项目组,要新起一个项目.这个Web项目是一个企业内部使用的系统,主要用来记录.追踪.管理潜在客户的数据.该系统有以下特点: 需要支持IE10及以上版本: 后端采用micro serv ...
- 关于QCon2015感想与反思
QCon2015专场有不少关于架构优化.专项领域调优专题,但能系统性描述产品测试方向只有<携程无线App自动化测试实践>. (一). 携程的无线App自动化 <携程无线A ...
- 正式开始jQuery源码的学习
查了一些资料,2.0.3版本的jq源码分析的资料比较多,就以这个版本研究学习了. 今天正式开始.
- CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法
目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...
- FIR.im Weekly - 劳动节我们也没有停下来
五一到五四的节假日对勤劳的开发者们似乎是零存在,各种干货好资源也并未因假期的到来而减少,所以这周的 Weekly 依然多产. Swift 样式指南:2015年4月更新 这是 @开发技术前线 收录的由 ...
- Android Activity 启动模式和任务栈
在了解了基本的Activity的生命周期后,我们能够很好的在一个Activity上面做相关的业务.但是这是不够的,因为Android通过任务栈来保存整个APP的Activity,合理的调度任务栈才能够 ...
- 利用@property实现可控的属性操作
利用@property实现可控的属性操作 Python中没有访问控制符, 不像java之类的 public class Person{ private int x public int getAge( ...
- [BUG集] android 安卓项目中ORMLITE框架 Must specify one of id, generatedId, and generatedIdSequence with Id
使用ORM框架ORMLITE有一段时间,今天在操作一个对象的时候,重新运行报错如下: Must specify one of id, generatedId, and generatedIdSeque ...