在CDH5.14.2 中启用kudu的配置

标签(空格分隔): 大数据平台构建


  • 一: 系统平台介绍
  • 二: 安装kudu的集成

一: 系统平台介绍

1.1. 关于kudu的介绍

Kudu是Cloudera开源的新型列式存储系统,是Apache Hadoop生态圈的新成员之一(incubating),专门为了对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺。

  Hadoop生态系统有很多组件,每一个组件有不同的功能。在现实场景中,用户往往需要同时部署很多Hadoop工具来解决同一个问题,这种架构称为混合架构 (hybrid architecture)。比如,用户需要利用Hbase的快速插入、快读random access的特性来导入数据,HBase也允许用户对数据进行修改,HBase对于大量小规模查询也非常迅速。同时,用户使用HDFS/Parquet + Impala/Hive来对超大的数据集进行查询分析,对于这类场景, Parquet这种列式存储文件格式具有极大的优势。

  很多公司都成功地部署了HDFS/Parquet + HBase混合架构,然而这种架构较为复杂,而且在维护上也十分困难。首先,用户用Flume或Kafka等数据Ingest工具将数据导入HBase,用户可能在HBase上对数据做一些修改。然后每隔一段时间(每天或每周)将数据从Hbase中导入到Parquet文件,作为一个新的partition放在HDFS上,最后使用Impala等计算引擎进行查询,生成最终报表。

image_1cfmbuvs1m461iov80q7oed6p9.png-833.4kB

二: 安装kudu的集成

2.1 kudu 准备与下载

CDH从5.10开始,打包集成Kudu1.2,并且Cloudera正式提供支持。这个版本开始Kudu的安装较之前要简单很多,省去了Impala_Kudu,安装完Kudu,Impala即可直接操作Kudu。

CSD 包下载
软件下载: 
   http://archive.cloudera.com/kudu/csd/
   
 KUDU-5.10.2.jar

 parcel 包:

  http://archive.cloudera.com/kudu/parcels/5.12.2.8/
  
   KUDU-1.4.0-1.cdh5.12.2.p0.8-el7.parcel
   KUDU-1.4.0-1.cdh5.12.2.p0.8-el7.parcel.sha1
   manifest.json 
  

image_1cfmcasam12cb13rrrlg7c71e3m16.png-226.5kB

image_1cfmd6urv1dhk1ir1ohs1ldrmee3t.png-312.3kB

2.2 开始安装kudu

mv  KUDU-5.10.2.jar /opt/cloudera/csd/
chown cloudera-scm:cloudera-scm /opt/cloudera/csd/KUDU-5.10.2.jar

cd /opt/cloudera/csd/

chmod 644 KUDU-5.10.2.jar

image_1cfmclk981he71ml8o871lp92lt23.png-175.9kB

image_1cfmcogl0ta0jno9a015pq1o9a2g.png-55.7kB

配置httpd-server 

yum install -y httpd* 

service httpd start 
chkconfig httpd on 

mv KUDU-1.4.0-1.cdh5.12.2.p0.8-el7.parcel* /var/www/html/kudu
mv manifest.json /var/www/html/kudu/

cd /var/www/html/kudu/
mv KUDU-1.4.0-1.cdh5.12.2.p0.8-el7.parcel.sha1 KUDU-1.4.0-1.cdh5.12.2.p0.8-el7.parcel.sha

image_1cfme1q2q6bo1m5ntgg177cn2h4q.png-164.8kB

2.3 通过CM界面配置Kudu的Parcel地址,并下载,分发,激活Kudu

image_1cfmea801126c1utn17lh8ds4jh5n.png-521.4kB

image_1cfmechh82p2irk9n8f3ibtg6k.png-399.7kB

image_1cfmedkpe7upc3qe9fuc7u1a71.png-579.8kB

image_1cfmeernrg47bhofeg1gk51177e.png-580.6kB

image_1cfmegdmif6t15chgbp19sh1vlu7r.png-490.1kB

image_1cfmeha2994fn0shgn109obu688.png-545.1kB

image_1cfmekb86d60tf71oe48lsp3al.png-309.4kB

image_1cfmersq6asc13urgu1j4d1lqep.png-714.6kB

image_1cfmesnbbpc21bt29fn2jkg2916.png-331.7kB

image_1cfmf2caha0u16q7bcb1fjh3c320.png-324.2kB

image_1cfmf2qksfr81jvm1tsi1j2vlas2d.png-282.7kB

image_1cfmf3hvdgvs133018vjkblsef2q.png-466.9kB

image_1cfmit5h015ogmmm1dc21qa61m3g37.png-428.7kB

image_1cfmiueq31jrb1f4f17ng7o0vdp3k.png-475.8kB

image_1cfmj5d6boruejh7fd1efa1pm641.png-377.7kB

image_1cfmjgqn4cof94p17ea4mt1d2v4e.png-560.2kB

2.4 kudu的验证: 使用impala 直接创建读取kudu上面的数据

impala-shell -i 172.17.100.11

create database kudu_test;

image_1cfmkcu601e5envi166agsv1ciq4r.png-143.6kB
image_1cfmkjgmlhdsr6c1oa41hsjtsg6l.png-41.4kB

use kudu_test;

CREATE TABLE  my_first_table
 (
id BIGINT,
name STRING,
PRIMARY KEY(id)
)
PARTITION BY HASH  PARTITIONS 16
STORED AS KUDU;

image_1cfmkl71anrq1k7n1d6k1p4k9u572.png-105.9kB

INSERT INTO  my_first_table VALUES (99, "sarah");
INSERT INTO  my_first_table VALUES (100, "zhangyy");
INSERT INTO  my_first_table VALUES (200, "spark");

image_1cfmkog7dar5107ni5pmt77f.png-278.3kB

image_1cfmkpdpi1osbik91erosgh1n707s.png-278.9kB

update my_first_table  set name='hadoop' where id=99;

image_1cfmkuu15174n1ljq1tfd1uq46ae89.png-251.8kB