Kafka系列一之架構介紹和安裝
Kafka架構介紹和安裝
寫在前面
還是那句話,當你學習一個新的東西之前,你總得知道這個東西是什麽?這個東西可以用來做什麽?然後你才會去學習它,使用它。簡單來說,kafka既是一個消息隊列,如今,它也演變為一個分布式的流處理平臺,這一點就是很厲害的了。所以,學習kafka對於大數據的小夥伴們來說,是非常有益的。
(一)Kafka概述
1.Kafka是一個分布式的流處理平臺,有消息的訂閱系統(訂閱之後,一旦有新的消息產生,你就會收到消息),可以以多副本的方式進行存儲,可以構建實時數據管道,以及實時的流處理,能夠橫向水平擴展,容錯等特點。大數據的實時流處理場景很多時候都會使用到kafka
上面是官網中的圖片
Kafka和消息系統類似,消息中間件的一種:有生產者和消費者的概念。
(二)Kafka架構
從上面官網給出的圖片中,我們知道,kafka是有以下幾個主要的該麗娜
1)producer:生產者,
2)consumer:消費者,
3)broker:一個broker就是一個kafka,
4)topic:主題,給生產的消息打上一個標簽,代表是誰生產的.
First a few concepts:[幾個概念]
Kafka is run as a cluster on one or more servers.
The Kafka cluster stores streams of records in categories called topics.
Each record consists of a key, a value, and a timestamp.
(三)Kafka的安裝部署
我們首先來到官網上去,http://kafka.apache.org/quickstart
從這個快速開始中,知道我們的kafka是依賴於zookeeper的,所以我們第一步來安裝zookpeer,然後安裝Kafka
zookeeper的安裝
- 下載zookeeper,地址在cdh5的頁面http://archive.cloudera.com/cdh5/cdh/5/
- 解壓到自己指定的目錄中去,我一般喜歡~/app,這個看自己的習慣就好,這裏我把解壓後的文件修改名稱為zk,
- 把解壓的目錄導出,
[hadoop@hadoop000 zk]$ vim ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144 export PATH=$JAVA_HOME/bin:$PATH export FLUME_HOME=/home/hadoop/app/flume export PATH=$FLUME_HOME/bin:$PATH export ZK_HOME=/home/hadoop/app/zk export PATH=$ZK_HOME/bin:$PATH #:wq 保存退出
4.再source一個系統環境
[hadoop@hadoop000 zk]$ source ~/.bash_profile
[hadoop@hadoop000 zk]$
5.配置zookeeper,來到解壓目錄下的conf文件
拷貝一份
[hadoop@hadoop000 conf]$ cp zoo_sample.cfg zoo.cfg
[hadoop@hadoop000 conf]$ vim zoo.cfg
#修改數據的臨時存放目錄,默認是在tmp目錄下的
dataDir=/home/hadoop/app/tmp/zk
#:wq 保存退出
6.啟動zookeeper
[hadoop@hadoop000 conf]$ cd ../bin/
[hadoop@hadoop000 bin]$ zkServer.sh start
JMX enabled by default
Using config: /home/hadoop/app/zk/bin/../conf/zoo.cfg
Starting zookeeper ... already running as process 10943.
[hadoop@hadoop000 bin]$
7.查看進程
[hadoop@hadoop000 bin]$ jps
27179 Jps
10943 QuorumPeerMain
[hadoop@hadoop000 bin]$
#看見QuorumPeerMain,說明就啟動成功了
Kafka的安裝部署
按照官網上的指南,我們先下載Kafka,點擊官網上面的downloadhttp://kafka.apache.org/downloads 在選擇版本的時候,我們推薦使用0.9.0.0版本的,目前這個版本在上產上比較常用,
- 下載https://archive.apache.org/dist/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz 因為kafka是scala語言寫的,後面我們也可能會使用到scala,因為我安裝的scala是2.11版本。這個下載的版本主要看自己的情況,在官網上選擇合適的就好
- 解壓到指定目錄,再導出到系統環境中‘’
[hadoop@hadoop000 ~]$ vim ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export FLUME_HOME=/home/hadoop/app/flume
export PATH=$FLUME_HOME/bin:$PATH
export ZK_HOME=/home/hadoop/app/zk
export PATH=$ZK_HOME/bin:$PATH
export KAFKA_HOME=/home/hadoop/app/kafka
export PATH=$KAFKA_HOME/bin:$PATH
#:wq保存退出
3.再source一下
4.配置,修改解壓目錄下config配置文件
配置server.properties[需要註意的地方]
broker.id=0 解釋:是kafka,一個broker
listeners 解釋:監聽的端口
host.name 解釋:當前機器
log.dirs 解釋:kafka的日誌存放目錄
zookeeper.connect zk的地址
修改好之後,保存退出
5.現在,就可以來啟動了
如何啟動呢??看官網是如何說的,http://kafka.apache.org/quickstart
bin/zookeeper-server-start.sh config/zookeeper.properties
2).再啟動我們的kafka
bin/kafka-server-start.sh config/server.properties
#啟動kafka的命令
kafka-server-start.sh $KAFKA_HOME/config/server.properties
6.啟動之後
[hadoop@hadoop000 ~]$ jps
27251 Kafka
27334 Jps
10943 QuorumPeerMain
[hadoop@hadoop000 ~]$
#可以看見Kafka的進程,就對啦
好的,到這裏我們的kafka就安裝完成了,接下來,我們就開始做broker的部署...
推薦一下:Kafka系列二之部署與使用
http://blog.csdn.net/liuge36/article/details/78593404
Kafka系列一之架構介紹和安裝