1.概述html
在CDH的默認安裝包中,是不包含Kafka,Kudu和Spark2的,須要單獨下載特定的Parcel包才能安裝相應服務。本文檔主要描述在離線環境下,在CentOS6.5操做系統上基於CDH5.12.1集羣,使用Cloudera Manager經過Parcel包方式安裝Kudu、Spark2和Kafka的過程。shell
2.Kudu安裝express
CDH5.12.1打包集成Kudu1.4,而且Cloudera提供官方支持。再也不須要安裝Kudu的csd文件,安裝完Kudu,Impala便可直接操做Kudu。apache
如下安裝步驟描述如何使用Cloudera Manager來安裝和部署Kudu1.4json
2.1Kudu的Parcel部署服務器
1.從Cloudera官網下載Kudu的Parcel包,下載地址以下session
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]#
3.驗證http是否可以正常訪問app
2.2安裝Kudu服務高併發
1.經過CM界面配置Kudu的Parcel地址,並下載,分發,激活Kudu。
已分配激活
2.回到CM主頁,添加Kudu服務
選擇Kudu服務,點擊「繼續」
選擇Master和Tablet Server,點擊「繼續」
配置相應的目錄,注:不管是Master仍是Tablet根據實際狀況,數據目錄(fs_data_dir)應該均可能有多個,以提升併發讀寫,從而提升Kudu性能。
啓動Kudu服務
安裝完畢
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
多個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版本後再也不支持Java七、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]#
若是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 ~]#
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]#
3.驗證是否部署成功
3.3安裝Spark2
1.經過CM管理界面配置Spark2的Parcel地址並保存
2.點擊下載、分配並激活
3.回到CM主頁,添加Spark2
4.選擇Spark2,點擊「繼續」
5.爲新的Spark2選擇一組依賴,點擊「繼續」
6.選擇History Server和Gateway節點,點擊「繼續」
7.啓動Spark2服務,服務啓動完成後,點擊「繼續」
8.Spark2安裝完成
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 | 否 |
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]#
3.驗證是否部署成功
4.3安裝Kafka服務
1.經過CM配置Kafka的Parcel包地址並保存
2.點擊下載、分配並激活
3.回到CM主頁,添加Kafka服務
4.選擇Kafka服務,點擊「繼續」
5.爲Kafka選擇一組依賴關係,點擊「繼續」
6.選擇Kafka Broker和Gateway,點擊「繼續」
7.根據集羣環境修改Kafka配置,點擊「繼續」
8.Kafka安裝完成
9.修改Kafka Broker的heap大小,默認爲50M,可能會致使Kafka啓動失敗
保存配置,從新部署客戶端並重啓相應服務。
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] >
插入數據並查詢
[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] >
經過Kudu Master Web UI查看
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>
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
2.向topic發送消息
[root@ip-172-31-6-148hive]# kafka-console-producer--broker-list ip-172-31-10-118.fayson.com:9092 --topic test
3.消費topic的消息
[root@ip-172-31-6-148hive]# kafka-console-consumer --zookeeperip-172-31-6-148.fayson.com:2181 --topic test --from-beginning
4.查看topic描述信息
[root@ip-172-31-6-148hive]# kafka-topics --describe--zookeeper ip-172-31-6-148.fayson.com:2181 --topic test
醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不願放,數據玩的花!
推薦關注Hadoop實操,第一時間,分享更多Hadoop乾貨,歡迎轉發和分享。