zoukankan      html  css  js  c++  java
  • Apache Kylin(二)在EMR上搭建Kylin

    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 开放。

    登录后的界面为:

     

  • 相关阅读:
    nvalid bound statement (not found)
    小程序
    maven启动项目时报错
    创建Maven项目出错
    小程序的tab标签实现效果
    C# 异步
    C#中计算时间差
    linq筛选唯一
    GMap.net控件学习记录
    nodepad++ 正则 替换
  • 原文地址:https://www.cnblogs.com/zackstang/p/12748061.html
Copyright © 2011-2022 走看看