1.概述

在CDH的默认安装包中,是不包含Kafka,Kudu和Spark2的,需要单独下载特定的Parcel包才能安装相应服务。本文档主要描述在离线环境下,在CentOS6.5操作系统上基于CDH5.12.1集群,使用Cloudera Manager通过Parcel包方式安装Kudu、Spark2和Kafka的过程。

  • 内容概括
  • Kudu安装
  • Spark2安装
  • Kafka安装
  • 服务验证
  • 测试环境
  • 操作系统版本:CentOS6.5
  • CM和CDH版本5.12.1
  • 使用CM管理员admin用户
  • 操作系统采用root用户操作
  • 前置条件
  • CDH集群运行正常

2.Kudu安装

CDH5.12.1打包集成Kudu1.4,并且Cloudera提供官方支持。不再需要安装Kudu的csd文件,安装完Kudu,Impala即可直接操作Kudu。

以下安装步骤描述如何使用Cloudera Manager来安装和部署Kudu1.4

2.1Kudu的Parcel部署

1.从Cloudera官网下载Kudu的Parcel包,下载地址如下

http://archive.cloudera.com/kudu/parcels/5.12.1/KUDU-1.4.0-1.cdh5.12.1.p0.10-el6.parcel
http://archive.cloudera.com/kudu/parcels/5.12.1/KUDU-1.4.0-1.cdh5.12.1.p0.10-el6.parcel.sha1
http://archive.cloudera.com/kudu/parcels/5.12.1/manifest.json



2.将以上3个文件下载到http服务所在服务器的/var/www/html/kudu1.4目录

[root@ip-172-31-6-148~]# cd /var/www/html/
[root@ip-172-31-6-148 html]# mkdir kudu1.4
[root@ip-172-31-6-148 html]# cd kudu1.4/
[root@ip-172-31-6-148 kudu1.4]# ll
total 474140
-rw-r--r-- 1 rootroot 485506175 Aug 30 14:55 KUDU-1.4.0-1.cdh5.12.1.p0.10-el6.parcel
-rw-r--r-- 1 rootroot        41 Aug 30 14:55KUDU-1.4.0-1.cdh5.12.1.p0.10-el6.parcel.sha1
-rw-r--r-- 1 rootroot      2646 Aug 30 14:55 manifest.json
[root@ip-172-31-6-148 kudu1.4]#



cdh 安装 hdfs 50070 cdh安装kudu_操作系统

3.验证http是否能够正常访问

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_02

2.2安装Kudu服务

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

cdh 安装 hdfs 50070 cdh安装kudu_java_03

cdh 安装 hdfs 50070 cdh安装kudu_cloudera_04

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_05

已分配激活

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_06

2.回到CM主页,添加Kudu服务

cdh 安装 hdfs 50070 cdh安装kudu_cloudera_07

选择Kudu服务,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_08

选择Master和Tablet Server,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_09

配置相应的目录,注:无论是Master还是Tablet根据实际情况,数据目录(fs_data_dir)应该都可能有多个,以提高并发读写,从而提高Kudu性能。

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_10

启动Kudu服务

cdh 安装 hdfs 50070 cdh安装kudu_大数据_11

安装完毕

cdh 安装 hdfs 50070 cdh安装kudu_java_12

2.3配置Impala

从CDH5.10开始,安装完Kudu后,默认Impala即可直接操作Kudu进行SQL操作,但为了省去每次建表都需要在TBLPROPERTIES中添加kudu_master_addresses属性,建议在Impala的高级配置项中设置KuduMaster的地址和端口:--kudu_master_hosts=ip-172-31-6-148.fayson.com:7051

cdh 安装 hdfs 50070 cdh安装kudu_cloudera_13

多个master可以以“,”分割如:

--kudu_master_hosts=ip-172-31-6-148.fayson.com:7051,ip-172-31-6-148.fayson.com:7051

3.Spark2安装

集群的jdk版本为jdk1.7.0_67,从Spark2.2.0版本后不再支持Java7、Python2.6和Hadoop2.6.5之前的版本,所以此处选择Spark 2.1.0版本部署。

3.1安装csd文件

1.下载csd文件,下载地址如下:

http://archive.cloudera.com/spark2/csd/SPARK2_ON_YARN-2.1.0.cloudera1.jar


2.将csd文件移动至/opt/cloudera/csd目录下

[root@ip-172-31-6-148csd]# pwd
/opt/cloudera/csd
[root@ip-172-31-6-148 csd]#ll
total 16
-rw-r--r-- 1 rootroot 16109 Mar 29 06:58 SPARK2_ON_YARN-2.1.0.cloudera1.jar
[root@ip-172-31-6-148 csd]#



cdh 安装 hdfs 50070 cdh安装kudu_操作系统_14

如果csd目录不存在,则创建

[root@ip-172-31-6-148cloudera]# mkdir csd
[root@ip-172-31-6-148 cloudera]# chown cloudera-scm:cloudera-scm csd/



3.重启Cloudera Manager服务

[root@ip-172-31-6-148~]# service cloudera-scm-serverrestart
Stopping cloudera-scm-server:                              [  OK  ]
Starting cloudera-scm-server:                              [  OK  ]
[root@ip-172-31-6-148 ~]#



cdh 安装 hdfs 50070 cdh安装kudu_cloudera_15

3.2Spark2的Parcel部署

1.下载Spark2的Parcel包,下载地址如下

http://archive.cloudera.com/spark2/parcels/2.1.0/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel
http://archive.cloudera.com/spark2/parcels/2.1.0/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel.sha1
http://archive.cloudera.com/spark2/parcels/2.1.0/manifest.json



2.将上述3个文件下载至/var/www/html/spark2.1.0目录下

[root@ip-172-31-6-148html]# cd /var/www/html/
[root@ip-172-31-6-148 html]# mkdir spark2.1.0
[root@ip-172-31-6-148 html]# cd spark2.1.0/
[root@ip-172-31-6-148 spark2.1.0]# ll
total 173052
-rw-r--r-- 1 rootroot      4677 Mar 29 06:58 manifest.json
-rw-r--r-- 1 rootroot 177185276 Mar 29 06:58 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel
-rw-r--r-- 1 rootroot        41 Mar 29 06:58SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel.sha1
[root@ip-172-31-6-148 spark2.1.0]#



cdh 安装 hdfs 50070 cdh安装kudu_大数据_16

3.验证是否部署成功

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_17

3.3安装Spark2

1.通过CM管理界面配置Spark2的Parcel地址并保存

cdh 安装 hdfs 50070 cdh安装kudu_cloudera_18

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_19

2.点击下载、分配并激活

cdh 安装 hdfs 50070 cdh安装kudu_大数据_20

3.回到CM主页,添加Spark2

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_21

4.选择Spark2,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_22

5.为新的Spark2选择一组依赖,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_cloudera_23

6.选择History Server和Gateway节点,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_24

7.启动Spark2服务,服务启动完成后,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_25

8.Spark2安装完成

cdh 安装 hdfs 50070 cdh安装kudu_cloudera_26

4.Kafka安装

4.1Kafka版本选择

Kafka版本

版本特性

最低支持CM版本

支持CDH版本

是否集成到CDH

2.2.x

 

Cloudera Manager 5.9.x

CDH 5.9.x and higher

2.1.x

Sentry authorization

Cloudera Manager 5.9.x

CDH 5.9.x and higher

2.0.x

Enhanced security

Cloudera Manager 5.5.3

CDH 5.4.x and higher

1.4.x

Distributed both as package and parcel

Cloudera Manager 5.2.x

CDH 5.4.x, 5.5.x, 5.6.x

1.3.x

Includes Kafka Monitoring

Cloudera Manager 5.2.x

CDH 5.4.x, 5.5.x, 5.6.x

1.2.x

 

Cloudera Manager 5.2.x

CDH 5.4.x, 5.5.x, 5.6.x

参考官网:https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_kafka

4.2Kafka的Parcel部署

1.从Cloudera官网下载Kafka的Parcel包,下载地址如下

http://archive.cloudera.com/kafka/parcels/2.1.1.18/KAFKA-2.1.1-1.2.1.1.p0.18-el6.parcel
http://archive.cloudera.com/kafka/parcels/2.1.1.18/KAFKA-2.1.1-1.2.1.1.p0.18-el6.parcel.sha1
http://archive.cloudera.com/kafka/parcels/2.1.1.18/manifest.json



2.将上述3个文件下载至/var/www/html/kafka2.1.1.18目录下

[root@ip-172-31-6-148html]# cd /var/www/html/
[root@ip-172-31-6-148 html]# mkdir kafka2.1.1.18
[root@ip-172-31-6-148 html]# cd kafka2.1.1.18/
[root@ip-172-31-6-148 kafka2.1.1.18]# ll
total 66536
-rw-r--r-- 1 rootroot 68116503 Mar 27 17:39 KAFKA-2.1.1-1.2.1.1.p0.18-el6.parcel
-rw-r--r-- 1 rootroot       41 Mar 27 17:39KAFKA-2.1.1-1.2.1.1.p0.18-el6.parcel.sha1
-rw-r--r-- 1 rootroot     5252 Mar 27 17:40 manifest.json
[root@ip-172-31-6-148 kafka2.1.1.18]#



cdh 安装 hdfs 50070 cdh安装kudu_大数据_27

3.验证是否部署成功

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_28

4.3安装Kafka服务

1.通过CM配置Kafka的Parcel包地址并保存

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_29

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_30

2.点击下载、分配并激活

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_31

3.回到CM主页,添加Kafka服务

cdh 安装 hdfs 50070 cdh安装kudu_大数据_32

4.选择Kafka服务,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_java_33

5.为Kafka选择一组依赖关系,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_cloudera_34

6.选择Kafka Broker和Gateway,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_大数据_35

7.根据集群环境修改Kafka配置,点击“继续”

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_36

8.Kafka安装完成

cdh 安装 hdfs 50070 cdh安装kudu_大数据_37

9.修改Kafka Broker的heap大小,默认为50M,可能会导致Kafka启动失败

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_38

保存配置,重新部署客户端并重启相应服务。

5.服务验证

5.1Kudu验证

建表语句如下:

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



通过Impala-shell创建Kudu表

[impala@ip-172-31-6-148root]$ impala-shell -iip-172-31-10-118.fayson.com
...
[ip-172-31-10-118.fayson.com:21000] > show tables;
Query: show tables
+------------+
| name       |
+------------+
| test       |
| test_table |
+------------+
Fetched 2 row(s) in 0.06s
[ip-172-31-10-118.fayson.com:21000] > CREATE TABLEmy_first_table(
 >     id BIGINT,
 >     name STRING,
 >    PRIMARY KEY(id)
 > )
 >PARTITION BY HASH PARTITIONS 16
 > STORED AS KUDU;
Query: create TABLE my_first_table(
    id BIGINT,
    name STRING,
 PRIMARY KEY(id)
)
PARTITION BY HASH PARTITIONS 16
STORED AS KUDU

Fetched 0 row(s) in 2.43s
[ip-172-31-10-118.fayson.com:21000] >



cdh 安装 hdfs 50070 cdh安装kudu_java_39

插入数据并查询

[ip-172-31-10-118.fayson.com:21000]> insert into my_first_table values(1,'fayson');
Query: insert into my_first_table values(1,'fayson')
...
Modified 1 row(s), 0 row error(s) in 3.92s
[ip-172-31-10-118.fayson.com:21000] >select * from my_first_table;
...
+----+--------+
| id | name   |
+----+--------+
| 1  | fayson |
+----+--------+
Fetched 1 row(s) in 1.02s
[ip-172-31-10-118.fayson.com:21000] >



cdh 安装 hdfs 50070 cdh安装kudu_java_40

通过Kudu Master Web UI查看

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_41

5.2Spark2验证

[root@ip-172-31-6-148~]# spark2-shell 
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). ForSparkR, use setLogLevel(newLevel).
17/09/11 09:46:22 WARN spark.SparkContext: Support for Java 7 is deprecated as of Spark 2.0.0
Spark context Web UI available at http://172.31.6.148:4040
Spark context available as 'sc' (master = yarn, app id =application_1505121236974_0001).
Spark session available as 'spark'.
Welcome to
 ____              __
 / __/__ ___ _____/ /__
    _\ \/ _ \/ _ `/__/  '_/
 /___/ .__/\_,_/_//_/\_\   version 2.1.0.cloudera1
 /_/
 
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_67)
Type in expressions tohave them evaluated.
Type :help for more information.

scala> var textFile=sc.textFile("/fayson/test/a.txt")
textFile: org.apache.spark.rdd.RDD[String] =/fayson/test/a.txt MapPartitionsRDD[1] at textFile at <console>:24

scala> textFile.count()
res0: Long = 3

scala>



cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_42

5.3Kafka验证

1.创建一个test的topic

[root@ip-172-31-6-148hive]# kafka-topics --create--zookeeper ip-172-31-6-148.fayson.com:2181 --replication-factor 3 --partitions1 --topic test


cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_43

2.向topic发送消息

[root@ip-172-31-6-148hive]# kafka-console-producer--broker-list ip-172-31-10-118.fayson.com:9092 --topic test

cdh 安装 hdfs 50070 cdh安装kudu_操作系统_44

3.消费topic的消息

[root@ip-172-31-6-148hive]# kafka-console-consumer --zookeeperip-172-31-6-148.fayson.com:2181 --topic test --from-beginning

cdh 安装 hdfs 50070 cdh安装kudu_cdh 安装 hdfs 50070_45

4.查看topic描述信息

[root@ip-172-31-6-148hive]# kafka-topics --describe--zookeeper ip-172-31-6-148.fayson.com:2181 --topic test


cdh 安装 hdfs 50070 cdh安装kudu_cloudera_46