上篇:用戶行爲數據採集 第5節 日誌採集分析、ETL攔截器、分類型攔截器及腳本編寫
1、Kafka安裝
架構圖
Kafka集羣安裝
詳見:參照自己上次寫的博客:
Kafka集羣部署
集羣規劃:
服務器hadoop1.x | 服務器hadoop2.x | 服務器hadoop2.x | |
---|---|---|---|
Kafka | Kafka | Kafka | Kafka |
Kafka集羣啓動停止腳本
- 在/home/MrZhou/bin目錄下創建腳本kf.sh
[root@hadoop1 bin]# vim kf.sh
//在腳本中填寫如下內容
#! /bin/bash
case $1 in
"start"){
for i in hadoop1.x hadoop2.x hadoop3.x
do
echo " --------啓動 $i Kafka-------"
# 用於KafkaManager監控
ssh $i "export JMX_PORT=9988 && /usr/local/etc/hadoop/module/kafka/bin/kafka-server-start.sh -daemon /usr/local/etc/hadoop/module/kafka/config/server.properties "
done
};;
"stop"){
for i in hadoop1.x hadoop2.x hadoop3.x
do
echo " --------停止 $i Kafka-------"
ssh $i "/usr/local/etc/hadoop/module/kafka/bin/kafka-server-stop.sh "
done
};;
esac
說明:啓動Kafka時要先開啓JMX端口,是用於後續KafkaManager監控。
- 增加腳本執行權限
[root@hadoop1 bin]# chmod 777 kf.sh
- kf集羣啓動腳本
//先啓動zookeeper
```java
[root@hadoop1 bin]# ./zk.sh
[root@hadoop1 bin]# ./zk.sh start
JMX enabled by default
Using config: /usr/local/etc/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
JMX enabled by default
Using config: /usr/local/etc/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
JMX enabled by default
Using config: /usr/local/etc/hadoop/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
//查看集羣進程
[root@hadoop1 bin]# ./xcall.sh jps
--------- hadoop1.x ----------
11152 Application
11508 Jps
11321 Application
11484 QuorumPeerMain
--------- hadoop2.x ----------
8611 QuorumPeerMain
8631 Jps
--------- hadoop3.x ----------
8035 Jps
8015 QuorumPeerMain
[root@hadoop1 bin]#
//kf集羣啓動腳本
[root@hadoop1 bin]# ./kf.sh start
--------啓動 hadoop1.x Kafka-------
--------啓動 hadoop2.x Kafka-------
--------啓動 hadoop3.x Kafka-------
//再次查看集羣所有進程
[root@hadoop1 bin]# ./xcall.sh jps
--------- hadoop1.x ----------
11152 Application
11778 Kafka
11848 Jps
11321 Application
11484 QuorumPeerMain
--------- hadoop2.x ----------
8896 Kafka
8962 Jps
8611 QuorumPeerMain
--------- hadoop3.x ----------
8301 Kafka
8015 QuorumPeerMain
8367 Jps
- 查看Kafka Topic列表
[root@hadoop1 kafka]# bin/kafka-topics.sh --zookeeper hadoop1.x:2181 --list
//沒有創建過這兩個topic,默認卻出現了
topic_event
topic_start
原因:
在啓動fluem服務的情況下就開始生成這兩個topic,除非把flume刪除掉,不然就默認存在了
2、創建Kafka Topic
- Kafka消費消息
[root@hadoop1 kafka]# bin/kafka-console-consumer.sh \
--zookeeper hadoop1.x:2181 --from-beginning --topic topic_start
–from-beginning:會把主題中以往所有的數據都讀取出來。根據業務場景選擇是否增加該配置。
數據就會在生產了,如圖所示:
3、Kafka Manager安裝
Kafka Manager是yahoo的一個Kafka監控管理項目
- 下載地址
https://github.com/yahoo/kafka-manager/releases
下載工具包: kafka-manager-1.3.3.18.zip,點擊即可下載
kafka-manager.zip
- 當下載好後,拷貝kafka-manager-1.3.3.22.zip包上傳到到虛擬機環境上
//查看
[root@hadoop1 hadoop]# ll
total 132104
-rw-r--r--. 1 root root 55711670 Apr 3 06:25 apache-flume-1.7.0-bin.tar.gz
-rw-r--r--. 1 root root 79552840 Apr 8 08:56 kafka-manager-1.3.3.18.zip
drwxr-xr-x. 8 root root 4096 Apr 8 16:54 module
//解壓編譯包到指定文件目錄
[root@hadoop1 hadoop]# unzip kafka-manager-1.3.3.18.zip -d module/
//發現無法解壓,查看一下,發現自己的環境沒有安裝unzip,需要安裝,執行命令:yum install -y unzip zip
-bash: unzip: command not found
[root@hadoop1 hadoop]# yum install -y unzip zip
- 進入kafka-manager的配置文件
[root@hadoop1 module]# cd kafka-manager-1.3.3.18/conf/
[root@hadoop1 conf]#
[root@hadoop1 conf]# vim application.conf
//配置參數
kafka-manager.zkhosts="hadoop1.x:2181,hadoop2.x:2181,hadoop3.x:2181"
如圖表示:
3) 啓動KafkaManager
[root@hadoop1 kafka-manager-1.3.3.18]# nohup bin/kafka-manager -Dhttp.port=7456 > /usr/local/etc/hadoop/module/kafka-manager-1.3.3.18/start.log 2>&1 &
[1] 12537
起初,由於權限不夠,導致kafka-manager無法啓動起來,所以在啓動的時候需要賦予權限chmod -R 744
[root@hadoop1 module]# chmod -R 744 kafka-manager-1.3.3.18/
再次啓動KafkaManager
[root@hadoop1 kafka-manager-1.3.3.18]# nohup bin/kafka-manager -Dhttp.port=7456 > /usr/local/etc/hadoop/module/kafka-manager-1.3.3.18/start.log 2>&1 &
[1] 10653
//進程查看
[root@hadoop1 kafka-manager-1.3.3.18]# jps
10150 QuorumPeerMain
10746 Jps
10443 Kafka
10653 ProdServerStart //kafka-manager已經成功啓動了
接下來,就是訪問Web頁面
http://hadoop1.x:7456
4、kafka-manager基本操作
至此,就可以查看整個Kafka集羣的狀態,包括:Topic的狀態、Brokers的狀態、Cosumer的狀態。
在Kafka的module/kafka-manager-1.3.3.22/application.home_IS_UNDEFINED
目錄下面,可以看到Kafka-Manager的日誌。
5、Kafka Manager啓動停止腳本
- 在/home/MrZhou/bin目錄下創建腳本km.sh
[root@hadoop1 bin]# vim km.sh
//在腳本中填寫如下內容
#! /bin/bash
case $1 in
"start"){
echo " -------- 啓動 KafkaManager -------"
nohup /usr/local/etc/hadoop/module/kafka-manager-1.3.3.18/bin/kafka-manager -Dhttp.port=7456 >start.log 2>&1 &
};;
"stop"){
echo " -------- 停止 KafkaManager -------"
ps -ef | grep ProdServerStart | grep -v grep |awk '{print $2}' | xargs kill
};;
esac
- 增加腳本執行權限
[root@hadoop1 bin]# chmod 777 km.sh
- km集羣啓動腳本
[root@hadoop1 bin]# ./km.sh start
-------- 啓動 KafkaManager -------
[root@hadoop1 bin]# ./xcall.sh jps
--------- hadoop1.x ----------
11093 Jps
10150 QuorumPeerMain
10443 Kafka
10653 ProdServerStart
--------- hadoop2.x ----------
7728 QuorumPeerMain
8013 Kafka
8189 Jps
--------- hadoop3.x ----------
7987 Kafka
7702 QuorumPeerMain
8167 Jps
- km集羣停止腳本
[root@hadoop1 bin]# ./km.sh stop
-------- 停止 KafkaManager -------
//查看集羣進程,發現ProdServerStart進程成功停了
[root@hadoop1 bin]# ./xcall.sh jps
--------- hadoop1.x ----------
11156 Jps
10150 QuorumPeerMain
10443 Kafka
--------- hadoop2.x ----------
7728 QuorumPeerMain
8013 Kafka
8221 Jps
--------- hadoop3.x ----------
7987 Kafka
7702 QuorumPeerMain
8200 Jps