05【線上日誌分析】之Kafka 0.10.1.0 Cluster的搭建和Topic簡單操作實驗
【kafka cluster機器】:
機器名稱 使用者名稱稱
sht-sgmhadoopdn-01/02/03 root
【安裝目錄】: /root/learnproject/app
1.將scala資料夾同步到叢集其他機器(scala 2.11版本,可單獨下載解壓)
[root@sht-sgmhadoopnn-01 app]# scp -r scala
[root@sht-sgmhadoopnn-01 app]# scp -r scala
[root@sht-sgmhadoopnn-01 app]# scp -r scala
#環境變數
[root@sht-sgmhadoopdn-01 app]# vi /etc/profile
export SCALA_HOME=/root/learnproject/app/scala
export PATH=$SCALA_HOME/bin:$HADOOP_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
[root@sht-sgmhadoopdn-02 app]# vi /etc/profile
export SCALA_HOME=/root/learnproject/app/scala
export PATH=$SCALA_HOME/bin:$HADOOP_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
[root@sht-sgmhadoopdn-02 app]# vi /etc/profile
export SCALA_HOME=/root/learnproject/app/scala
export PATH=$SCALA_HOME/bin:$HADOOP_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
[root@sht-sgmhadoopdn-01 app]# source /etc/profile
[root@sht-sgmhadoopdn-02 app]# source /etc/profile
[root@sht-sgmhadoopdn-03 app]# source /etc/profile
2.下載基於Scala 2.11的kafka版本為0.10.1.0
[root@sht-sgmhadoopdn-01 app]# pwd
/root/learnproject/app
[root@sht-sgmhadoopdn-01 app]# wget
[root@sht-sgmhadoopdn-01 app]# tar xzvf kafka_2.11-0.10.1.0.tgz
[root@sht-sgmhadoopdn-01 app]# mv kafka_2.11-0.10.1.0 kafka
3.建立logs目錄和修改server.properties(前提zookeeper cluster部署好,見“03【線上日誌分析】之hadoop-2.7.3編譯和搭建叢集環境(HDFS HA,Yarn HA)” )
[root@sht-sgmhadoopdn-01 app]# cd kafka
[root@sht-sgmhadoopdn-01 kafka]# mkdir logs
[root@sht-sgmhadoopdn-01 kafka]# cd config/
[root@sht-sgmhadoopdn-01 config]# vi server.properties
broker.id=1
port=9092
host.name=172.16.101.58
log.dirs=/root/learnproject/app/kafka/logs
zookeeper.connect=172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka
4.同步到02/03伺服器,更改broker.id 及host.name
[root@sht-sgmhadoopdn-01 app]# scp -r kafka sht-sgmhadoopdn-03:/root/learnproject/app/
[root@sht-sgmhadoopdn-01 app]# scp -r kafka sht-sgmhadoopdn-03:/root/learnproject/app/
[root@sht-sgmhadoopdn-02 config]# vi server.properties
broker.id=2
port=9092
host.name=172.16.101.59
[root@sht-sgmhadoopdn-03 config]# vi server.properties
broker.id=3
port=9092
host.name=172.16.101.60
5.環境變數
[root@sht-sgmhadoopdn-01 kafka]# vi /etc/profile
export KAFKA_HOME=/root/learnproject/app/kafka
export PATH=$KAFKA_HOME/bin:$SCALA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
[root@sht-sgmhadoopdn-01 kafka]# scp /etc/profile sht-sgmhadoopdn-02:/etc/profile
[root@sht-sgmhadoopdn-01 kafka]# scp /etc/profile sht-sgmhadoopdn-03:/etc/profile
[root@sht-sgmhadoopdn-01 kafka]#
[root@sht-sgmhadoopdn-01 kafka]# source /etc/profile
[root@sht-sgmhadoopdn-02 kafka]# source /etc/profile
[root@sht-sgmhadoopdn-03 kafka]# source /etc/profile
6.啟動/停止
[root@sht-sgmhadoopdn-01 kafka]# nohup kafka-server-start.sh config/server.properties &
[root@sht-sgmhadoopdn-02 kafka]# nohup kafka-server-start.sh config/server.properties &
[root@sht-sgmhadoopdn-03 kafka]# nohup kafka-server-start.sh config/server.properties &
###停止
bin/kafka-server-stop.sh
---------------------------------------------------------------------------------------------------------------------------------------------
7.topic相關的操作
a.建立topic,如能成功建立topic則表示叢集安裝完成,也可以用jps命令檢視kafka程式是否存在。
[root@sht-sgmhadoopdn-01 kafka]# bin/kafka-topics.sh --create --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka --replication-factor 3 --partitions 1 --topic test
b.透過list命令檢視建立的topic:
[root@sht-sgmhadoopdn-01 kafka]# bin/kafka-topics.sh --list --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka
c.檢視建立的Topic
[root@sht-sgmhadoopdn-01 kafka]# bin/kafka-topics.sh --describe --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka --topic test
Topic:test PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test Partition: 0 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
[root@sht-sgmhadoopdn-01 kafka]#
第一行列出了這個topic的總體情況,如topic名稱,分割槽數量,副本數量等。
第二行開始,每一行列出了一個分割槽的資訊,如它是第幾個分割槽,這個分割槽的leader是哪個broker,副本位於哪些broker,有哪些副本處理同步狀態。
Partition: 分割槽
Leader : 負責讀寫指定分割槽的節點
Replicas : 複製該分割槽log的節點列表
Isr : “in-sync” replicas,當前活躍的副本列表(是一個子集),並且可能成為Leader
我們可以透過Kafka自帶的bin/kafka-console-producer.sh和bin/kafka-console-consumer.sh指令碼,來驗證演示如果釋出訊息、消費訊息。
d.刪除topic
[root@sht-sgmhadoopdn-01 kafka]# bin/kafka-topics.sh --delete --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka --topic test
e.修改topic
使用—-alert原則上可以修改任何配置,以下列出了一些常用的修改選項:
(1)改變分割槽數量
[root@sht-sgmhadoopdn-02 kafka]#bin/kafka-topics.sh --alter --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka --topic test --partitions 3
[root@sht-sgmhadoopdn-02 kafka]# bin/kafka-topics.sh --describe --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka --topic test
Topic:test PartitionCount:3 ReplicationFactor:3 Configs:
Topic: test Partition: 0 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
Topic: test Partition: 1 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3
Topic: test Partition: 2 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
[root@sht-sgmhadoopdn-02 kafka]#
(2)增加、修改或者刪除一個配置引數
bin/kafka-topics.sh —alter --zookeeper 192.168.172.98:2181/kafka --topic my_topic_name --config key=value
bin/kafka-topics.sh —alter --zookeeper 192.168.172.98:2181/kafka --topic my_topic_name --deleteConfig key
8.模擬實驗1
在一個終端,啟動Producer,並向我們上面建立的名稱為my-replicated-topic5的Topic中生產訊息,執行如下指令碼:
[root@sht-sgmhadoopdn-01 kafka]# bin/kafka-console-producer.sh --broker-list 172.16.101.58:9092,172.16.101.59:9092,172.16.101.60:9092 --topic test
在另一個終端,啟動Consumer,並訂閱我們上面建立的名稱為my-replicated-topic5的Topic中生產的訊息,執行如下指令碼:
[root@sht-sgmhadoopdn-02 kafka]# bin/kafka-console-consumer.sh --zookeeper 172.16.101.58:2181,172.16.101.59:2181,172.16.101.60:2181/kafka --from-beginning --topic test
可以在Producer終端上輸入字串訊息行,就可以在Consumer終端上看到消費者消費的訊息內容。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30089851/viewspace-2132049/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 08【線上日誌分析】之Flume Agent(聚合節點) sink to kafka clusterKafka
- Logminer簡單分析日誌的實驗
- Kafka 簡單實驗一(安裝Kafka)Kafka
- MySQL InnoDB Cluster環境搭建和簡單測試MySql
- 11【線上日誌分析】之redis-3.2.5 install(單節點)Redis
- Kafka原理剖析之「Topic建立」Kafka
- 07【線上日誌分析】之kafka-manager監控工具的搭建(sbt安裝與編譯)Kafka編譯
- Kafka實戰-Kafka ClusterKafka
- 06【線上日誌分析】之KafkaOffsetMonitor監控工具的搭建Kafka
- 收集、分析線上日誌資料實戰——ELK
- 16【線上日誌分析】之grafana-4.1.1 Install和新建日誌分析的DashBoardGrafana
- kafka工具kafka-topic.shKafka
- Kafka 簡單實驗二(Python實現簡單生產者消費者)KafkaPython
- kafka檢視topicKafka
- Kafka實戰-Storm ClusterKafkaORM
- 18【線上日誌分析】之Spark on Yarn配置日誌Web UI(HistoryServer服務)SparkYarnWebUIServer
- 操作簡單的BI資料分析軟體有哪些?實際體驗如何?
- Kafka實戰-簡單示例Kafka
- 刪除Kafka中topicKafka
- 22【線上日誌分析】之專案第二階段概述
- 00【線上日誌分析】之專案概述和GitHub專案地址Github
- 12【線上日誌分析】之RedisLive監控工具的詳細安裝Redis
- 17【線上日誌分析】之使用IDEA將工程Build成jar包IdeaUIJAR
- 簡單的RIP實驗
- 23【線上日誌分析】之改造CDH的HDFS的NN,DN程式,日誌輸出為json格式JSON
- RAC 線上日誌的管理
- mysql cluster 簡單配置MySql
- oracle cluster(簇)的簡單使用Oracle
- 19【線上日誌分析】之sparkdemo.jar執行在yarn上過程SparkJARYarn
- 24【線上日誌分析】之Tomcat的支援log4j,日誌輸出為json格式TomcatJSON
- 04【線上日誌分析】之Flume Agent的3臺收集+1臺聚合到hdfs的搭建
- 【REDO】Oracle 日誌挖掘,分析歸檔日誌線上日誌主要步驟Oracle
- Kafka應用實戰——Kafka安裝及簡單使用Kafka
- Oracle 線上日誌管理Oracle
- 線上日誌損壞
- 數理統計實(試)驗——單因素方差分析——excel操作分析Excel
- nginx檢視實時日誌並設簡單的訪問驗證Nginx
- Kafka學習之(四)PHP操作KafkaKafkaPHP