0x01 Kylin安装环境

Kylin依赖于hadoop大数据平台,安装部署之前确认,大数据平台已经安装Hadoop, HBase, Hive

1.1 了解kylin的两种二进制包

说明:特别二进制包是一个在HBase 1.1+环境上编译的Kylin快照二进制包;安装它需要HBase 1.1.3或更高版本,否则之前版本中有一个已知的关于fuzzy key过滤器的缺陷,会导致Kylin查询结果缺少记录:HBASE-14269。此外还需注意的是,这不是一个正式的发布版(每隔几周rebase KYLIN 1.3.x 分支上最新的改动),没有经过完整的测试。

0x02 安装部署

2.1 下载

可以选择自己需要的版本进行下载,这里下载的是pache-kylin-1.6.0-bin.tar.gz

2.2 安装

$ tar -zxvf apache-kylin-1.6.0-bin.tar.gz
$ mv apache-kylin-1.6.0 /home/hadoop/cloud/
$ ln -s /home/hadoop/cloud/apache-kylin-1.6.0 /home/hadoop/cloud/kylin

2.3 配置环境变量

在/etc/profile里配置KYLIN环境变量和一个名为hive_dependency的变量

vim /etc/profile

//追加
export KYLIN_HOME=/home/hadoop/kylin
export PATH=$PATH:$ KYLIN_HOME/bin
export hive_dependency=/home/hadoop/hive/conf:/home/hadoop/hive/lib/*:/home/hadoop/hive/hcatalog/share/hcatalog/hive-hcatalog-core-2.0.0.jar

使配置文件生效

# source /etc/profile
# su hadoop
$ source /etc/profile

这个配置需要在从节点master2,slave1,slave2上同时配置,因为kylin提交的任务交给mr后,hadoop集群将任务分发给从节点时,需要hive的依赖信息,如果不配置,则mr任务将报错为: hcatalogXXX找不到。

2.4 配置kylin.sh

$ vim ~/cloud/kylin/bin/kylin.sh

//显式声明 KYLIN_HOME
export KYLIN_HOME=/home/Hadoop/kylin
//在HBASE_CLASSPATH_PREFIX中显示增加$hive_dependency依赖
export HBASE_CLASSPATH_PREFIX=${tomcat_root}/bin/bootstrap.jar:${tomcat_root}/bin/tomcat-juli.jar:${tomcat_root}/lib/*:$hive_dependency:$HBASE_CLASSPATH_PREFIX

2.5 检查环境是否设置成功

$ check-env.sh
KYLIN_HOME is set to /home/hadoop/kylin

2.6 配置kylin.properties

进入conf文件夹,修改kylin各配置文件kylin.properties如下

$ vim ~/cloud/kylin/conf/kylin.properties

kylin.rest.servers=master:7070
#定义kylin用于MR jobs的job.jar包和hbase的协处理jar包,用于提升性能。
kylin.job.jar=/home/hadoop/kylin/lib/kylin-job-1.6.0-SNAPSHOT.jar
kylin.coprocessor.local.jar=/home/hadoop/kylin/lib/kylin-coprocessor-1.6.0-SNAPSHOT.jar

2.7 配置kylin_hive_conf.xml和kylin_job_conf.xml

kylin_hive_conf.xmlkylin_job_conf.xml的副本数设置为2

<property>
<name>dfs.replication</name>
<value>2</value>
<description>Block replication</description>
</property>

2.8 启动服务

注意:在启动Kylin之前,先确认以下服务已经启动

  • hadoop的hdfs/yarn/jobhistory服务
start-all.sh
mr-jobhistory-daemon.sh start historyserver
  • hive 元数据库

hive --service metastore &

  • zookeeper

zkService.sh start

需要在每个节点上执行,分别启动所有节点的zookeeper服务

  • hbase

start-hbase.sh

  • 检查hive和hbase的依赖
$ find-hive-dependency.sh
$ find-hbase-dependency.sh
  • 启动和停止kylin的命令
$ kylin.sh start
$ kylin.sh stop

Web访问地址:http://192.168.1.10:7070/kylin/login

默认的登录username/password 是 ADMIN/KYLIN

0x03 测试

3.1 测试Kylin自带的sample

Kylin提供一个自动化脚本来创建测试CUBE,这个脚本也会自动创建出相应的hive数据表。运行sample例子的步骤:

S1: 运行${KYLIN_HOME}/bin/sample.sh脚本

$ sample.sh

关键提示信息:

KYLIN_HOME is set to /home/hadoop/kylin
Going to create sample tables in hive...
Sample hive tables are created successfully; Going to create sample cube...
Sample cube is created successfully in project 'learn_kylin'; Restart Kylin server or reload the metadata from web UI to see the change.

S2:在MYSQL中查看此sample创建了哪几张表

select DB_ID,OWNER,SD_ID,TBL_NAME from TBLS;

S3: 在hive客户端查看创建的表和数据量(1w条)

hive> show tables;
OK
kylin_cal_dt
kylin_category_groupings
kylin_sales
Time taken: 1.835 seconds, Fetched: 3 row(s)
hive> select count(*) from kylin_sales;
OK
Time taken: 65.351 seconds, Fetched: 1 row(s)

S4: 重启kylin server 刷新缓存

$ kylin.sh stop
$ kylin.sh start

S5:用默认的用户名密码ADMIN/KYLIN访问192.168.200.165:7070/kylin

进入控制台后选择project为learn_kylin的那个项目。

S6: 选择测试cube “kylin_sales_cube”,点击“Action”-“Build”,选择一个2014-01-01以后的日期,这是为了选择全部的10000条测试记录。

选择一个生成日期

点击提交会出现重建任务成功提交的提示

S7: 监控台查看这个任务的执行进度,直到这个任务100%完成。

任务完成

切换到model控制台会发现cube的状态成为了ready,表示可以执行sql查询了

执行过程中,在hive里会生成临时表,待任务100%完成后,这张表会自动删除

0x04 常见错误

4.1 运行check-env.sh提示

please make sure user has the privilege to run hbase shell

检查hbase环境变量是否配置正确。重新配置后问题解决。

参考:http://www.jianshu.com/p/632b61f73fe8

4.2 hadoop-env.sh脚本问题

Kylin安装问题--/home/hadoop-2.5.1/contrib/capacity-scheduler/.jar (No such file or directory)

WARNING: Failed to process JAR
[jar:file:/home/hadoop-2.5.1/contrib/capacity-scheduler/.jar!/] for
TLD files
java.io.FileNotFoundException:
/home/hadoop-2.5.1/contrib/capacity-scheduler/.jar (No such file or
directory)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:215)
at java.util.zip.ZipFile.(ZipFile.java:145)
at java.util.jar.JarFile.(JarFile.java:153)
at java.util.jar.JarFile.(JarFile.java:90)
at sun.net.www.protocol.jar.URLJarFile.(URLJarFile.java:93)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:99)
at
sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
at
sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
at org.apache.tomcat.util.scan.FileUrlJar.(FileUrlJar.java:41)
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
at org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:485)
at org.apache.catalina.startup.TldConfig.access$100(TldConfig.java:61)
at
org.apache.catalina.startup.TldConfig$TldJarScannerCallback.scan(TldConfig.java:296)
at
org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:258)
at
org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:220)
at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:269)
at
org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:565)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081)
at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

其实这个问题只是一些小bug问题把这个脚本的内容改动一下就好了${HADOOP_HOME}/etc/hadoop/hadoop-env.sh把下面的这一段循环语句给注释掉

#for f in $HADOOP_HOME/contrib/capacity-scheduler/*.jar; do
# if [ "$HADOOP_CLASSPATH" ]; then
# export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f
# else
# export HADOOP_CLASSPATH=$f
# fi
#done

4.3 清理kylin空间

kylin.sh org.apache.kylin.storage.hbase.util.StorageCleanupJob --delete true

4.4 Permission denied

kylin cube测试时,报错:org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

解决办法:

1 配置hdfs-site.xml

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

2 在hdfs上给目录/user 777的权限

$ hadoop fs -chmod -R 777 /user

0x05 参考链接

2017-02-17 19:51:39 星期五

update1: 2017-05-04 20:10:05 星期四

Apache Kylin安装部署的更多相关文章

  1. 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例【转】

    Kylin 麒麟官网:http://kylin.apache.org/cn/download/ 关键字:olap.Kylin Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的 ...

  2. Kylin安装部署

    一.安装准备 1.操作系统 Centos 7.x 2.时间问题 集群内所有节点时间一定要同步. NTP.Chrony 3.用户 创建hadoop组和hadoop用户,并做ssh免密码登录 4.Hado ...

  3. 关于apache kylin 安装32位linux办法

    最近公司在使用apache kylin做实时开发访问,但是自己集群是linux32 只能安装JDK32位的受限只能3G多内存,而apachekylin 默认是4G内存,需要JDK64位支持. 解决办法 ...

  4. Apache Ranger安装部署

    1.概述 Apache Ranger提供了一个集中式的安全管理框架,用户可以通过操作Ranger Admin页面来配置各种策略,从而实现对Hadoop生成组件,比如HDFS.YARN.Hive.HBa ...

  5. Apache Hama安装部署

    安装Hama之前,应该首先确保系统中已经安装了hadoop,本集群使用的版本为hadoop-2.3.0 一.下载及解压Hama文件 下载地址:http://www.apache.org/dyn/clo ...

  6. Apache的安装部署 2(加密认证 ,网页重写 ,搭建论坛)

    一.http和https的基本理论知识1. 关于https: HTTPS(全称:Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道 ...

  7. Apache Kylin 部署之不完全指南

    1. 引言 Apache Kylin(麒麟)是由eBay开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据.底层存储用的是HBase,数据输入与cu ...

  8. kylin 系列(一)安装部署

    kylin 系列(一)安装部署 一.环境说明 1.1 版本选择 cdh 版本下载地址:http://archive.cloudera.com/cdh5/cdh/5/ 软件名称 版本 JDK 1.8 H ...

  9. Kylin的简介与安装部署

    一.Kylin的概述 官方网址:http://kylin.apache.org/cn/ Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析 ...

随机推荐

  1. python---基础知识回顾(九)图形用户界面-------Tkinter

    前戏:老牌python GUI程序(Tkinter) import tkinter.messagebox as messagebox class Application(Frame): def __i ...

  2. Shell记录-Shell命令(find)

    Linux中的find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花 ...

  3. java多线程获取返回结果--Callable和Future示例

    package test.guyezhai.thread; import java.util.ArrayList; import java.util.Date; import java.util.Li ...

  4. 用原生JS实现getElementsByClass

    直接用jQuery里Sizzle选择器那一段源码也行,自己写了一个 function getByClass(oParent,sClass){ var aEle = oParent.getElement ...

  5. Java实现基于桶式排序思想和计数排序思想实现的基数排序

    计数排序 前提:待排序表中的所有待排序关键字必须互不相同: 思想:计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某一个记录,统计出的计数值 ...

  6. bzoj 5085: 最大——结论题qwq

    Description 给你一个n×m的矩形,要你找一个子矩形,价值为左上角左下角右上角右下角这四个数的最小值,要你最大化矩形 的价值. Input 第一行两个数n,m,接下来n行每行m个数,用来描述 ...

  7. JavaScript辅助响应式

    js响应式 rem辅助响应式布局:其实就是指在HTML页面的大小不断变化的时候,里面的宽.高.字体等等也随之变化,主要是通过获取window.innerwidth的值来进行判断,7.5rem===10 ...

  8. E - Sudoku HDU - 5547 (搜索+暴力)

    题目链接:https://cn.vjudge.net/problem/HDU-5547 具体思路:对于每一位上,我们可以从1到4挨着去试, 具体判断这一位可不可以的时候,看当前这一位上的行和列有没有冲 ...

  9. 2016.5.24——Intersection of Two Linked Lists

    Intersection of Two Linked Lists 本题收获: 1.链表的输入输出 2.交叉链表:这个链表可以有交叉点,只要前一个节点的的->next相同即可. 题目:Inters ...

  10. Java NIO之拥抱Path和Files

    Java面试通关手册(Java学习指南)github地址(欢迎star和pull):https://github.com/Snailclimb/Java_Guide 历史回顾: Java NIO 概览 ...