EMR上搭建kylin

1. 启动EMR集群

根据官网说明:

http://kylin.apache.org/docs21/install/kylin_aws_emr.html

启动EMR时,若是 hbase 数据存储在 s3 ,则需指定以下配置:

[  {

"Classification": "hbase-site",

"Properties": {

"hbase.rpc.timeout": "3600000",

"hbase.rootdir": "s3://yourbucket/EMRROOT"

}

},

{

"Classification": "hbase",

"Properties": {

"hbase.emr.storageMode": "s3"

}

}

]

如果使用 s3 作为 HBase 的存储,则需要增加 hbase.rpc.timeout 的时间。因为bulk load 到s3 是一个copy 操作,如果数据量很大的话,HBase region server 需要更多的时间完成(相较于HDFS)。

2. 安装kylin

sudo mkdir /usr/local/kylin

sudo chown hadoop /usr/local/kylin

cd /usr/local/kylin/

wget https://mirror.bit.edu.cn/apache/kylin/apache-kylin-2.6.5/apache-kylin-2.6.5-bin-hbase1x.tar.gz

tar -zxvf apache-kylin-2.6.5-bin-hbase1x.tar.gz

3. 配置 Kylin

从 /etc/hbase/conf/hbase-site.xml 中复制以下配置:

<property>

<name>hbase.zookeeper.quorum</name>

<value>ip-10-0-3-107.cn-north-1.compute.internal</value>

</property>

并填充到kylin_job_conf.xml 中。

EMR 推荐使用 HDFS 作为临时/中间文件存储,S3仅用作初始输入数据以及最终输出结果的存储。Kylin中有个配置 hdfs-working-dir,用于存放中间数据如Cube building、cuboid files,以及一些元数据文件(例如字典、以及表的snapshots,这些都不适合放在 HBase中);所以最好是为HDFS配置HDFS。

如果使用 HDFS 作为 Kylin 的工作目录,我们直接使用Kylin的默认配置即可。在 kylin.properties 中,有以下配置:

kylin.env.hdfs-working-dir=/kylin

在我们关闭集群前,务必要备份 /kylin 目录下的数据(在HDFS上)到 S3,使用 s3-dist-cp即可。否则可能会丢失数据并且在之后无法恢复集群。

而如果要使用 S3 作为 “kylin.env.hdfs-working-dir”,则需要修改kylin.properties 中的以下配置:

kylin.env.hdfs-working-dir=s3://your_bucket/kylin

kylin.storage.hbase.cluster-fs=s3://your_bucket

kylin.source.hive.redistribute-flat-table=false

这样中间临时文件以及HFile会都写入到S3,build 的性能也会慢于 HDFS。

4. Hadoop 配置

为了在 S3 上有更好的性能以及避免一些数据一致性的问题,有些Hadoop 配置需要修改:

<property>

<name>io.file.buffer.size</name>

<value>65536</value>

</property>

<property>

<name>mapred.map.tasks.speculative.execution</name>

<value>false</value>

</property>

<property>

<name>mapred.reduce.tasks.speculative.execution</name>

<value>false</value>

</property>

<property>

<name>mapreduce.map.speculative</name>

<value>false</value>

</property>

<property>

<name>mapreduce.reduce.speculative</name>

<value>false</value>

</property>

主要是加大 io buffer,以及关闭 speculative 执行。

如果kylin 的 hdfs 工作目录不存在的话,首先创建这个工作目录:

hadoop fs -mkdir /kylin

若是工作目录在 s3 的话,则:

hadoop fs -mkdir s3://your_bucket/kylin

5. 启动 Kylin

启动方式与 Hadoop 方式基本一样:

export KYLIN_HOME=/usr/local/kylin/apache-kylin-3.0.1-bin-hbase1x

$KYLIN_HOME/bin/sample.sh

$KYLIN_HOME/bin/kylin.sh start

如果期间出现了类似 spark home 不存在的报错,则执行以下命令:

export SPARK_HOME=${SPARK_HOME:-/usr/lib/spark}

Kylin 的 web 服务端口启动在 7070,所以需要将主节点安全组的 7070 端口对访问客户端 ip 开放。

登录后的界面为:

Apache Kylin(二)在EMR上搭建Kylin的更多相关文章

  1. AWS EMR上搭建HBase环境

    0. 概述 AWS的EMR服务为客户提供的托管 Hadoop 框架可以让您轻松.快 速.经济高效地在多个动态可扩展的 Amazon EC2 实例之间分发和处理 大量数据.您还可以运行其他常用的分发框架 ...

  2. 在centos 7云服务器上搭建Apache服务器并访问到你的网站

    网站是指在互联网上根据一定的规则,用HTML等语言制作的网页的集合.网站的目的是用来展示一些信息,如果是个人网站则是为了展示自己的一些想被人知道的东西,例如自己的一些作品,又或者是通过网站来达到盈利的 ...

  3. 在一台服务器上搭建多个网站的方法(Apache版)

    Apache的配置文件一般放置在/etc/httpd/conf文件夹下,httpd.conf是它的主配置文件,在进行配置时可以将虚拟主机的配置文件单独配置,如取名为vhost.conf,然后再http ...

  4. Mac OS X上搭建Apache、PHP、MySQL的Web服务器

    mac OS 系统太帅了,安装php的环境如此简单,大赞一个! 转载自http://jingyan.baidu.com/article/39810a23e1939fb636fda6a9.html 在M ...

  5. 以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约

    以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约 在上一篇文章中,我们使用Truffle自带的客户端Truffle Develop,在私有链上搭建并运行了官方提供的WebPack智能合 ...

  6. 在Mac上搭建带ssl协议和域名指向的Apache服务器

    顾名思义,就是要在苹果电脑上搭建 Apache 服务器,并且支持 https 协议,能用指定域名访问(有些开发调试需要注册域名,比如调试微信JS-SDK),当然最好能在手机端进行调试.首先,Mac 系 ...

  7. Apache+MySQL+PHP开发环境的搭建(二)

    通过自主选择相应的apache,mysql,php等软件,根据自己的应用开发需求进行安装.此方法搭建的环境自主性较强,搭建过程较为复杂,繁琐. 1.所需软件: Apache: http-2.2.22- ...

  8. 从Python爬虫到SAE云和微信公众号:二、新浪SAE上搭建微信服务

    目的:用PHP在SAE上搭建一个微信公众号的服务器. 1.申请一个SAE云账号 SAE申请地址:http://sae.sina.com.cn/  可以使用微博账号登陆,SAE是新浪的云服务,时间也比较 ...

  9. mac上搭建appium+IOS自动化测试环境(二)

    上一篇: mac上搭建appium+IOS自动化测试环境(一) 9.安装appium-xcuitest-driver依赖 进入WebDriverAgent安装目录,运行bootstrap 首先进入目录 ...

  10. JMeter--二、在Windows环境上搭建wordpress

    为了学习使用JMeter,在Windows环境上搭建了wordpress. 使用JMeter录制或是编写登录worepress.编辑文章.删除文章的脚本. 首先了解一下wordpress是什么? Wo ...

随机推荐

  1. Pod进阶篇:污点-容忍度-亲和性-Affinity-调度(5)

    一.Pod资源清单详细解读 apiVersion: v1 #版本号,例如 v1 kind: Pod #资源类型,如 Pod metadata: #元数据 name: string # Pod 名字 n ...

  2. 后端每日一题 2:DNS 解析过程

    本文首发于公众号:腐烂的橘子 本文梗概: DNS 是什么,有什么作用 一条 DNS 记录是什么样的 DNS 域名解析原理 DNS 服务器如何抵御攻击 DNS 是什么,有什么作用 DNS(Domain ...

  3. 通过虚拟机镜像部署zabbix

    前言 由于基础镜像的缘故,zabbix部署过程中很可能出现各种缺少依赖包的情况,如果环境中又无法连接互联网,系统部署会非常麻烦.为此zabbix官方提供了虚拟机镜像,导入后可以直接在平台上拉起虚拟机, ...

  4. vue3早已具备抛弃虚拟DOM的能力了

    前言 jquery时代更新视图是直接对DOM进行操作,缺点是频繁操作真实 DOM,性能差.react和vue时代引入了虚拟DOM,更新视图是对新旧虚拟DOM树进行一层层的遍历比较,然后找出需要更新的D ...

  5. Linux基础-02:Linux目录操作命令

    Linux中目前可以识别的命令有上万条,如果没有分类,那么学习起来一定痛苦不堪. 所以我们把命令分门别类,主要是为了方便学习和记忆. 下面我们先来学习最为常用的和目录相关的操作命令 最近无意间获得一份 ...

  6. Failed to download metadata for repo ‘PowerTools‘: Cannot prepare internal mirrorlist: No URLs in mi

    Failed to download metadata for repo 'AppStream' [CentOS] - Techglimpsehttps://techglimpse.com/faile ...

  7. python 操作 xlsx

    目录 读取/写入:openpyxl demo1 读取/写入:openpyxl demo1 import openpyxl import os # 创建excel def write_excel_xls ...

  8. 02 go-zero入门--微服务demo

    参考文档: https://go-zero.dev/cn/docs/advance/rpc-call 视频地址: https://space.bilibili.com/387126464/channe ...

  9. NASM中的ALIGN ALIGNB SECTALIGN

    ALIGN与ALIGNB NASM中的ALIGN与ALIGNB是用来字节对齐的,它们接收2个参数,第一个参数是必须的,表示对齐的字节数(必须是2的幂),第二个参数是可选的,表示为了对齐而进行填充的内容 ...

  10. ansible系列(27)--ansible的include任务复用

    目录 1. include任务复用 1.1 多个项目调用相同task 1.2 Inlcude结合tags应用 1. include任务复用 有时,我们发现大量的 Playbook 内容需要重复编写,各 ...