Zookeeper3.4.14(單叢集)、Kafka_2.12-2.2.2(叢集)安裝
最近消失了一段時間,去辦理北航的非全研究生入學,迴歸校園生活感覺還不錯,好了不說廢話,記錄下Zookeeper3.4.14(單叢集)、Kafka_2.12-2.2.2(叢集)安裝。
一、單機環境搭建
1.1 下載
下載對應版本 Zookeeper,這裡我下載的版本 3.4.14 。官方下載地址:https://archive.apache.org/dist/zookeeper/
wget方式直接
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper3.4.14.tar.gz
windows下載 上傳到伺服器
直接瀏覽器輸入連結
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper3.4.14.tar.gz
1.2 解壓
tar -zxvf zookeeper-3.4.14.tar.gz
1.3 配置環境變數
vim /etc/profile
新增環境變數
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.14
export PATH=$ZOOKEEPER_HOME/bin:$PATH
使得配置的環境變數生效
source /etc/profile
1.4 修改配置
進入安裝目錄的 conf/ 目錄下,拷貝配置樣本並進行修改:
cp zoo_sample.cfg zoo.cfg
指定資料儲存目錄和日誌檔案目錄(目錄不用預先建立,程式會自動建立),修改後完整配置如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/module/zookeeper-3.4.14/data
dataLogDir=/opt/module/zookeeper-3.4.14/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
配置引數說明:
- tickTime:用於計算的基礎時間單元。比如 session 超時:N*tickTime;
- initLimit:用於叢集,允許從節點連線並同步到 master 節點的初始化連線時間,以 tickTime 的倍數來表示;
- syncLimit:用於叢集, master 主節點與從節點之間傳送訊息,請求和應答時間長度(心跳機制);
- dataDir:資料儲存位置;
- dataLogDir:日誌目錄;
- clientPort:用於客戶端連線的埠,預設 2181
1.5 啟動
由於已經配置過環境變數,直接使用下面命令啟動即可:
zkServer.sh start
1.6 驗證
使用 JPS
驗證程式是否已經啟動,出現 QuorumPeerMain 則代表啟動成功。
二、叢集環境搭建
為保證叢集高可用,Zookeeper 叢集的節點數最好是奇數,最少有三個節點,所以這裡演示搭建一個三
個節點的叢集。這裡我使用三臺主機進行搭建,主機名分別為 hadoop101,hadoop102,
hadoop103。
2.1 修改配置
解壓一份 zookeeper 安裝包命名zookeeper-cluster,修改其配置檔案 zoo.cfg ,內容如下。之後使用 xsync
命令(這個命令最後邊介紹)將安裝包分發
到三臺伺服器上:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/module/zookeeper-cluster/data/
dataLogDir=/opt/module/zookeeper-cluster/log/
clientPort=2181
# server.1 這個1是伺服器的標識,可以是任意有效數字,標識這是第幾個伺服器節點,這個標識要寫到dataDir目錄下面myid檔案裡
# 指名叢集間通訊埠和選舉埠
server.1=hadoop101:2287:3387
server.2=hadoop102:2287:3387
server.3=hadoop103:2287:3387
修改/etc/profile
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper-cluster
export PATH=$ZOOKEEPER_HOME/bin:$PATH
2.2 標識節點
分別在三臺主機的 dataDir 目錄下新建 myid 檔案,並寫入對應的節點標識。Zookeeper 叢集通過
myid 檔案識別叢集節點,並通過上文配置的節點通訊埠和選舉埠來進行節點通訊,選舉出
Leader 節點。
建立儲存目錄:
mkdir -vp /opt/module/zookeeper-cluster/data/
建立並分別去三個節點寫入節點標識到 myid 檔案:
# hadoop101主機
echo "1" > /opt/module/zookeeper-cluster/data/myid
# hadoop102主機
echo "2" > /opt/module/zookeeper-cluster/data/myid
# hadoop103主機
echo "3" > /opt/module/zookeeper-cluster/data/myid
2.3 啟動叢集
分別在三臺主機上,執行如下命令啟動服務:
xcall zkServer.sh start
2.4 叢集驗證
啟動後使用 xcall zkServer.sh status
檢視叢集各個節點狀態。三個節點程式均啟動成功,並
且 三個節點分別由一個 leader 節點和兩個follower 節點。
二、Kafka叢集搭建
2.1 下載解壓
Kafka 安裝包官方下載地址:http://kafka.apache.org/downloads ,本用例下載的版本為 2.2.2
,下載命令:
# 下載
wget https://www-eu.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.2.tgz
# 解壓
tar -xzvf kafka_2.12-2.2.2.tgz -C /opt/module/
這裡 j 解釋一下 kafka 安裝包的命名規則:以
kafka_2.12-2.2.2.tgz
為例,前面的 2.12 代表 Scala 的版本號(Kafka 採用 Scala 語言進行開發),後面的 2.2.2 則代表 Kafka 的版本號。
2.2 配置檔案
vim /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka_2.12-2.2.2
export PATH=$KAFKA_HOME/bin:$PATH
source /etc/profile
進入解壓目錄的 config
目錄下 編輯配置檔案:
vim server.properties
2.3 修改配置
分別修改配置檔案中的部分配置,如下:
# 三臺伺服器都要配置,且每個節點id必須唯一
broker.id=2
# 各伺服器寫各自的ip,這裡以hadoop102
listeners=PLAINTEXT://hadoop102:9092
advertised.listeners=PLAINTEXT://hadoop102:9092
# log.dirs 路徑自己配,單資料夾一定要存在,不會自己生成,如果路徑不存在啟動會報錯。
log.dirs=/opt/module/kafka_2.12-2.2.2/logs
# topic 允許刪除配置
delete.topic.enable=true
# 以下配置三臺伺服器都一樣
zookeeper.connect=hadoop101:2181,hadoop102:2181,hadoop103:2181
zookeeper.connection.timeout.ms=60000
這裡需要說明的是 log.dirs
指的是資料日誌的儲存位置,確切的說,就是分割槽資料的儲存位置,而不是程式執行日誌的位置。程式執行日誌的位置是通過同一目錄下的 log4j.properties
進行配置的。
2.4 啟動叢集
使用xcall 啟動三個 Kafka 節點。啟動後可以使用 xcall jps
檢視程式,此時三個節點分別應該有三個 zookeeper 程式和三個 kafka 程式。
xcall kafka-server-start.sh /opt/module/kafka_2.12-2.2.2/config/server.properties
2.5 建立測試主題
建立測試主題:
bin/kafka-topics.sh --create --bootstrap-server hadoop101:9092 \
--replication-factor 3 \
--partitions 1 --topic my-replicated-topic
建立後可以使用以下命令檢視建立的主題資訊:
bin/kafka-topics.sh --describe --bootstrap-server hadoop101:9092 --topic my-replicated-topic
可以看到分割槽 0 的有 0,1,2 三個副本,且三個副本都是可用副本,都在 ISR(in-sync Replica 同步副本) 列表中,其中 1 為首領副本,此時代表叢集已經搭建成功。
在hadoop101節點建立一個生產者,並指定一個topic
bin/kafka-console-producer.sh --broker-list hadoop101:9092 --topic my-replicated-topic
在hadoop102節點建立一個消費者,並訂閱一個topic
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic my-replicated-topic --from-beginning
展示其中一個節點的topic列表
bin/kafka-topics.sh --zookeeper hadoop101:2181 --list
其他建立 flume-kafka主題
bin/kafka-topics.sh --create --bootstrap-server hadoop101:9092 \
--replication-factor 3 \
--partitions 1 --topic flume-kafka
檢視建立的主題
bin/kafka-topics.sh --zookeeper hadoop001:2181 --list
消費者消費
bin/kafka-console-consumer.sh --bootstrap-server hadoop101:9092 --topic flume-kafka
注意解釋一下xcall和xsync
使用前提:3個節點主機之間配置了hosts,ssh免密登入,防火牆關閉等操作
xcall:
#!/bin/bash
#在叢集的所有機器上批量執行同一條命令
if(($#==0))
then
echo 請輸入您要操作的命令!
exit
fi
echo 要執行的命令是$*
#迴圈執行此命令
for((i=101;i<=103;i++))
do
echo ---------------------hadoop$i-----------------
ssh hadoop$i $*
done
xsync:
#!/bin/bash
#校驗引數是否合法
if(($#==0))
then
echo 請輸入要分發的檔案!
exit;
fi
#獲取分發檔案的絕對路徑
dirpath=$(cd `dirname $1`; pwd -P)
filename=`basename $1`
echo 要分發的檔案的路徑是:$dirpath/$filename
#迴圈執行rsync分發檔案到叢集的每條機器
for((i=101;i<=103;i++))
do
echo ---------------------hadoop$i---------------------
rsync -rvlt $dirpath/$filename atguigu@hadoop$i:$dirpath
done
root 使用者可以將這兩個指令碼放置在/usr/local/bin 目錄下,並授予執行許可權
chmod 777 xcall
chmod 777 xsync
相關文章
- 安裝Kafka叢集Kafka
- 安裝Consul叢集
- 完整安裝always on叢集
- 快速安裝 kafka 叢集Kafka
- 安裝配置 zookeeper (單機非叢集模式)模式
- redis-3.0.6 安裝叢集Redis
- redis 5.0 叢集的安裝Redis
- 安裝Zookeeper和Kafka叢集Kafka
- linux安裝redis-6.0.1單機和叢集LinuxRedis
- 安裝 Hadoop:設定單節點 Hadoop 叢集Hadoop
- Ubuntu上kubeadm安裝Kubernetes叢集Ubuntu
- Redis安裝+叢集+效能監控Redis
- CDH安裝大資料叢集大資料
- CentOS7 安裝PG叢集CentOS
- Cloudera Manager安裝 & 搭建CDH叢集Cloud
- 安裝Greenplum 5.2 叢集實戰
- ARM架構安裝Kubernetes叢集架構
- Zookeeper叢集 + Kafka叢集Kafka
- Centos7安裝Nacos單機模式以及叢集模式(包含nignx安裝以及實現叢集)的相關配置CentOS模式
- 搭建zookeeper叢集(偽叢集)
- 在Ubuntu 18.04.1上安裝Hadoop叢集UbuntuHadoop
- Zookeeper-3.4.10 叢集的安裝配置
- Cassandra安裝及分散式叢集搭建分散式
- centos安裝k8s叢集CentOSK8S
- Ubuntu 安裝k8s叢集UbuntuK8S
- hadoop偽分散式叢集的安裝(不是單機版)Hadoop分散式
- zookeeper叢集及kafka叢集搭建Kafka
- Pulsar本地單機(偽)叢集 (裸機安裝與docker方式安裝) 2.2.0Docker
- Kubernetes安裝之三:etcd叢集的配置
- kubernetes叢集的安裝異常彙總
- Redis安裝之叢集-哨兵模式(sentinel)模式Redis模式
- Linux原始碼安裝RabbitMQ高可用叢集Linux原始碼MQ
- 分散式 PostgreSQL 叢集(Citus)官方安裝指南分散式SQL
- docker-compose安裝rocketmq雙主叢集DockerMQ
- linux下搭建ZooKeeper叢集(偽叢集)Linux
- redis偽叢集配置Cluster叢集模式Redis模式
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- centos7 安裝k8s1.30.1高可用叢集(非獨立etcd叢集)CentOSK8S