前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源的分布式分析引擎 Kylin 2.0.0 的环境部署

开源的分布式分析引擎 Kylin 2.0.0 的环境部署

原创
作者头像
蔡鹏
修改2017-09-14 10:17:36
1.4K0
修改2017-09-14 10:17:36
举报
文章被收录于专栏:蔡鹏的专栏

前序:

经过将近一周深夜调试到3、4点终于把环境配置好了(无数次的重新安装)囧。配置过程中也明白了很多关联的知识点,本文记录我成功搭建的过程。

主角介绍:

代码语言:javascript
复制
 Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

 介绍:
 - 可扩展超快OLAP引擎: 
 Kylin是为减少在Hadoop上百亿规模数据查询延迟而设计
 - Hadoop ANSI SQL 接口: 
 Kylin为Hadoop提供标准SQL支持大部分查询功能
 - 交互式查询能力: 
 通过Kylin,用户可以与Hadoop数据进行亚秒级交互,在同样的数据集上提供比Hive更好的性能
 - 多维立方体(MOLAP Cube):
 用户能够在Kylin里为百亿以上数据集定义数据模型并构建立方体
 - 与BI工具无缝整合:
 Kylin提供与BI工具,如Tableau,的整合能力,即将提供对其他工具的整合
 - 其他特性: 
 - Job管理与监控 
 - 压缩与编码 
 - 增量更新 
 - 利用HBase Coprocessor
 - 基于HyperLogLog的Dinstinc Count近似算法 
 - 友好的web界面以管理,监控和使用立方体 
 - 项目及立方体级别的访问控制安全
 - 支持LDAP

环境:

代码语言:javascript
复制
 系统:
 Centos 7.2 64位  

 软件:
 apache-hive-1.2.1-bin.tar.gz
 apache-kylin-2.0.0-bin-hbase1x.tar.gz
 hadoop-2.7.2.tar.gz
 hbase-1.1.9-bin.tar.gz
 jdk-8u144-linux-x64.tar.gz
 zookeeper-3.4.8.tar.gz

 mysql:mysql-community-release-el7-5.noarch.rpm

(当然也有虚拟机HDP可以配置好的这一系列,如果遇到问题也可以下方留言我们共同探讨)

注意:环境搭配是必须的,你前期不要试图再重新尝试其他版本,这样会给你带来困扰的,而且会出现一系列奇怪的问题。

安装过程:

三个大步骤就可以完成环境的部署了,酒足饭饱,泡好茶客官准备开始咯:

1.更改服务器名称:

192.168.6.220 hadoop 这一行就是我们添加192.168.6.220 就是本地IP,这里不要写成127.0.0.1,否则你会遇到大坑。 改完要重启服务器。

1.1 更改hostname

设定:hadoop。

代码语言:javascript
复制
命令:
[root@hadoop workspace]# hostnamectl set-hostname hadoop

1.2 更改hadoop对应IP

代码语言:javascript
复制
命令:   vi /etc/hosts
192.168.6.220   hadoop   
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

2.上传这些文件到服务器上。

apache-hive-1.2.1-bin.tar.gz apache-kylin-2.0.0-bin-hbase1x.tar.gz hadoop-2.7.2.tar.gz hbase-1.1.9-bin.tar.gz jdk-8u144-linux-x64.tar.gz zookeeper-3.4.8.tar.gz 为了整洁方便使用, 我统一解压放在根目录workspace ,jdk放在/user/java/目录下。

代码语言:javascript
复制
[root@hadoop workspace]# ls
hadoop  hbase  hive  kylin zookeeper

2.1 配置环境变量:

命令:vi /etc/profile

添加如下环境配置

代码语言:javascript
复制
JAVA_HOME=/usr/java/jdk
JRE_HOME=/usr/java/jdk/jre
HADOOP_HOME=/workspace/hadoop
HIVE_HOME=/workspace/hive
HBASE_HOME=/workspace/hbase
KYLIN_HOME=/workspace/kylin 



HBASE_CLASSPATH=/workspace/hbase

export ZOOKEEPER_HOME=/workspace/zookeeper
export CLASSPATH=$CLASSPATH:$KYLIN_HOME/lib:$HIVE_HOME/lib:$HBASE_CLASSPATH/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin
export JAVA_HOME JRE_HOME PATH

2.2 配置hadoop

目录位置: hadoop\etc\hadoop core-site.xml

代码语言:javascript
复制
<configuration>
 <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop:9000</value>
    </property>

<property>
        <name>hadoop.tmp.dir</name>
        <value>/workspace/hadoop/tmp</value>
    </property>
</configuration>

httpfs-site.xml

代码语言:javascript
复制
 <configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  <property>
        <name>dfs.namenode.name.dir</name>
        <value>/workspace/hadoop/dfs/name</value>
    </property>

 <property>
        <name>dfs.datanode.data.dir</name>
        <value>/workspace/hadoop/dfs/data</value>
    </property>

</configuration>

hadoop-env.sh

代码语言:javascript
复制
这里主要是指定jdk位置:
export JAVA_HOME=/usr/java/jdk

yarn-site.xml yarn.resourcemanager.hostname 主要是这个节点记住改名成hadoop

代码语言:javascript
复制
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop</value>
    </property>
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
     <property>
    <name>yarn.log-aggregation-enable</name>          
    <value>true</value>
  </property>

  <property>
    <name>yarn.log-aggregation.retain-seconds</name>          
    <value>864000</value>
  </property>

  <property>
    <name>yarn.log-aggregation.retain-check-interval-seconds</name>          
    <value>86400</value>
  </property>  

  <property>
    <name>yarn.nodemanager.remote-app-log-dir</name>          
    <value>/YarnApp/Logs</value>
  </property>
</configuration>

slaves 由于是单机部署,那么这里设置成hadoop.

mapred-env.sh 和 yarn-env.sh export JAVA_HOME=/usr/java/jdk

mapred-site.xml

代码语言:javascript
复制
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
<property>
    <name>mapreduce.jobhistory.address</name>

       <!-- 配置实际的Master主机名和端口-->
    <value>hadoop:10020</value>
</property>


<property>
    <name>mapreduce.jobhistory.webapp.address</name>

       <!-- 配置实际的Master主机名和端口-->
    <value>hadoop:19888</value>
</property>
</configuration>

2.2 配置 hbase

目录:hbase\conf hbase-site.xml

代码语言:javascript
复制
<configuration>
<property>
        <name>hbase.rootdir</name>  --hbase持久保存的目录
        <value>hdfs://hadoop:9000/hbase</value>   
    </property>
    <property>
        <name>hbase.cluster.distributed</name>  --是否是分布式
        <value>true</value>
    </property>
     <property>     
              <name>hbase.zookeeper.property.clientPort</name>    --指定要连接zk的端口
              <value>2181</value>    
    </property>    
    <property>    
              <name>hbase.zookeeper.quorum</name>    --指定要连接zk的节点
              <value>hadoop</value>    
    </property>  
    <property>        
              <name>hbase.zookeeper.property.dataDir</name>   
               <value>/workspace/zookeeper/conf</value>    
    </property>
</configuration>

hbase-env.sh

代码语言:javascript
复制
export JAVA_HOME=/usr/java/jdk/
export HBASE_CLASSPATH=/workspace/hadoop/etc/hadoop
export HBASE_LOG_DIR=/workspace/hbase/logs
export HBASE_MANAGES_ZK=true

regionservers 里面内容改成hadoop

2.3 配置hive

目录:hive\conf hive-site.xml 此文件内容较多,我把需要更改的写出来

修改目录名:

代码语言:javascript
复制
 <property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>
  </property>
  <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/workspace/hive/iotmp/${system:user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/workspace/hive/iotmp/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

修改成mysql 连接,以及帐号和密码(我的mysql环境,root,123456)

代码语言:javascript
复制
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </description>
  </property>
     <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</description>
  </property>

hive-env.sh

代码语言:javascript
复制
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/workspace/hadoop

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/workspace/hive/conf

# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/workspace/hive/lib

在hive目录下创建iotmp,给777权限。

顺便说下这里因为要连接mysql所以需要把mysql包复制到lib目录下(mysql-connector-java-5.1.37.jar)。

2.4配置zookeeper

目录zookeeper\conf

zoo.cfg dataDir=/tmp/zookeeper

2.5 配置Kylin

提示找不到类需要简单修改一下 kylin.sh

增加指定目录::/home/apache-hive-2.3.0-bin/lib/*:

代码语言:javascript
复制
export HBASE_CLASSPATH_PREFIX=${KYLIN_HOME}/conf:${KYLIN_HOME}/lib/*:${KYLIN_HOME}/ext/*:/home/apache-hive-2.3.0-bin/lib/*:${HBASE_CLASSPATH_PREFIX}
export HBASE_CLASSPATH=${HBASE_CLASSPATH}:${hive_dependency}:${kafka_dependency}:${spark_dependency}

3 初始化各项数据:

3.1 初始化HDFS,并启动hadoop

hdfs namenode -format 执行完毕就会有success字样说明成功了。(注意这个操作只执行一次)

启动hadoop: workspace/hadoop/sbin/start-all.sh 创建如下目录:

代码语言:javascript
复制
执行命令
hadoop fs -mkdir -p /user/hive/warehouse  
hadoop fs -mkdir -p /tmp/hive/  
hadoop fs -chmod 777 /user/hive/warehouse   
hadoop fs -chmod 777 /tmp/hive/

3.2 初始化hive库。

hive目录下

bin/schematool -initSchema -dbType mysql

3.3 启动historyserver

/workspace/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver

3.4 启动hbase(和zookeeper)

/workspace/hbase/bin/start-hbase.sh

3.5 初始化Kylin样例数据且启动主角 Kylin

代码语言:javascript
复制
A.导入实例数据:/workspace/kylin/bin/sample.sh
B.启动Kylin :/workspace/kylin/bin/kylin.sh start

OK,到此为止如果都没问题的话,我们就可以访问: http://192.168.6.220:7070/kylin/ 帐号:ADMIN 密码:KYLIN

4.小体验:

1.用已经成功导入的样例Cube,进行build。

2.选择一个时间范围2012-01-01 ~2012-04-01

3.观察进度

4.选择learn_kylin项目进行查询

代码语言:javascript
复制
select part_dt, sum(price) as total_selled,count(distinct seller_id) as sellers from kylin_sales group by part_dt

表格形式:

其他形式: Line Chart

Bar Chart

Pie Chart

好了,到此为止分享完毕。你可以自己自由折腾了。哈哈

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前序:
  • 主角介绍:
  • 环境:
  • 安装过程:
    • 三个大步骤就可以完成环境的部署了,酒足饭饱,泡好茶客官准备开始咯:
      • 1.更改服务器名称:
        • 1.1 更改hostname
        • 1.2 更改hadoop对应IP
      • 2.上传这些文件到服务器上。
        • 2.1 配置环境变量:
        • 2.2 配置hadoop
        • 2.2 配置 hbase
        • 2.3 配置hive
        • 2.4配置zookeeper
        • 2.5 配置Kylin
    • 3 初始化各项数据:
      • 3.1 初始化HDFS,并启动hadoop
        • 3.2 初始化hive库。
          • 3.3 启动historyserver
            • 3.4 启动hbase(和zookeeper)
              • 3.5 初始化Kylin样例数据且启动主角 Kylin
              • 4.小体验:
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档