集群環(huán)境(3臺(tái)設(shè)備):
192.168.60.112
192.168.60.113
192.168.72.224
1.首先安裝JDK菠剩,需要JDK7以上的版本(若已安裝請(qǐng)?zhí)^(guò)此步)
cd /usr/local/
mv ~sdnmuser/jdk1.7.0_79.tar /usr/local/
tar zxvf jdk1.7.0_79.tar
chmod -R 777 jdk1.7.0_79
rm -f jdk1.7.0_79.tar
設(shè)置環(huán)境變量(注意,如果設(shè)備已經(jīng)有別的版本jdk設(shè)置了環(huán)境變量耻煤,這里就不要覆蓋其他版本的jdk具壮,否則會(huì)影響其他java程序)
vi /etc/profile
添加 JAVA_HOME=/usr/local/jdk1.7.0_79
在PATH前面加上
$JAVA_HOME/bin:$PATH
使配置馬上生效 source /etc/profile
在命令行輸入java -version 顯示如下即安裝成功
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) Server VM (build 24.79-b02, mixed mode)
2.解壓zookeeper安裝包
tar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /home/sdnmuser/
chmod -R 777 /home/sdnmuser/zookeeper-3.4.6/ 修改文件命令
3.創(chuàng)建zookeeper數(shù)據(jù)目錄和myid文件
mkdir /home/sdnmuser/zookeeper-3.4.6/data
vi /home/sdnmuser/zookeeper-3.4.6/data/myid
內(nèi)容為1 (myid的值需要與zoo.cfg中server.x的x值對(duì)應(yīng),它是zookeeper集群中每個(gè)sever的唯一標(biāo)識(shí))
4.配置zoo.cfg
cp /home/sdnmuser/zookeeper-3.4.6/conf/zoo_sample.cfg /home/sdnmuser/zookeeper-3.4.6/conf/zoo.cfg
vi /home/sdnmuser/zookeeper-3.4.6/conf/zoo.cfg
修改為如下內(nèi)容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/sdnmuser/zookeeper-3.4.6/data
clientPort=2181
server.1=192.168.60.112:2888:3888
server.2=192.168.60.113:2888:3888
server.3=192.168.72.224:2888:3888
注意 :
檢查bin/zkEnv.sh文件中的java路徑是否與本機(jī)路徑相同
5.把zookeeper-3.4.6目錄拷貝到其他2臺(tái)設(shè)備
cd /home/sdnmuser/
scp -r zookeeper-3.4.6 192.168.60.113:
scp -r zookeeper-3.4.6 192.168.72.224:
修改其他2臺(tái)設(shè)備上的myid
6.啟動(dòng)zookeeper集群
分別在3臺(tái)設(shè)備上執(zhí)行zookeeper啟動(dòng)命令
cd /home/sdnmuser/zookeeper-3.4.6/bin
./zkServer.sh start
查看啟動(dòng)是否成功
./zkServer.sh status
若執(zhí)行成功會(huì)提示:
[sdnmuser@ELK2 bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /home/sdnmuser/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader
如果啟動(dòng)失敗哈蝇,請(qǐng)關(guān)閉防火墻再試試
7.安裝kafka棺妓,解壓kafka安裝包
tar zxvf kafka_2.10-0.10.1.1.tgz
mv kafka_2.10-0.10.1.1 /home/sdnmuser/
8.創(chuàng)建kafka消息日志目錄
cd /home/sdnmuser/kafka_2.10-0.10.1.1
mkdir logs
9.修改server.properties
vi /home/sdnmuser/kafka_2.10-0.10.1.1/config/server.properties
修改以下屬性項(xiàng)
broker.id=1 #集群中每個(gè)broker的唯一標(biāo)識(shí)
listeners=PLAINTEXT://192.168.60.112:9092 #kafka broker對(duì)外提供服務(wù)的IP和端口
log.dirs=/home/sdnmuser/kafka_2.10-0.10.1.1/logs #消息存放的目錄,多個(gè)地址的話(huà)用逗號(hào)分割,多個(gè)目錄分布在不同磁盤(pán)上可以提高讀寫(xiě)性能
num.partitions=1 #默認(rèn)的分區(qū)數(shù)炮赦,一個(gè)topic默認(rèn)1個(gè)分區(qū)數(shù)
auto.create.topics.enable=false #默認(rèn)false怜跑,當(dāng)為true時(shí)則寫(xiě)數(shù)據(jù)時(shí)如果沒(méi)有此topic就自動(dòng)創(chuàng)建
zookeeper.connect=192.168.60.112:2181,192.168.60.113:2181,192.168.72.224:2181 #設(shè)置zookeeper的連接IP端口(端口默認(rèn)2181) 以hostname:port的形式,可有多個(gè)以逗號(hào)分隔
10.復(fù)制kafka 到另外兩臺(tái)設(shè)備
cd /home/sdnmuser/
scp -r kafka_2.10-0.10.1.1 192.168.60.113:
scp -r kafka_2.10-0.10.1.1 192.168.72.224:
需要在另外2個(gè)broker的server.properties中 修改其對(duì)應(yīng)的broker.id 和listeners
11.啟動(dòng)kafka集群
分別在3臺(tái)設(shè)備上執(zhí)行
cd /home/sdnmuser/kafka_2.10-0.10.1.1/bin
./kafka-server-start.sh ../config/server.properties &
12.驗(yàn)證kafka集群是否正常運(yùn)行
i.創(chuàng)建一個(gè)topic,帶一個(gè)分區(qū)吠勘,2個(gè)副本性芬,name為test
./kafka-topics.sh --create --zookeeper 192.168.60.112:2181 --replication-factor 2 --partitions 1 --topic test
ii.在設(shè)備1創(chuàng)建一個(gè)producer,向test topic寫(xiě)入數(shù)據(jù)(步驟ii與步驟iii是是一起的,ii 是生產(chǎn)者 iii是消費(fèi)者剧防,需要不同的窗口同時(shí)進(jìn)行)
./kafka-console-producer.sh --broker-list 192.168.60.112:9092 --topic test
iii.在設(shè)備2創(chuàng)建一個(gè)consumer植锉,讀取設(shè)備1的生產(chǎn)者寫(xiě)入topic中的數(shù)據(jù)
./kafka-console-consumer.sh --zookeeper 192.168.60.112:2181 --topic test --from-beginning