1、安裝JDK
-
首先執行如下命令搜索 jdk 安裝包:
-
這里我們選擇 1.8 版本,執行如下命令進行安裝。
注意:默安裝默認的目錄為:/usr/lib/jvm/
yum install java-1.8.0-openjdk -
安裝完畢后執行 java -version 命令即可查看當前的版本
默認安裝完只有運行環境,也就說 java 安裝目錄下只有 jre 文件夾,我們執行 javac 命令會提示“未找到命令”:
-
我們執行如下命令安裝開發環境:
-
安裝完可看到 java 安裝目錄下出現 bin、lib 等文件夾。
再次輸入javac說明安裝成功
2、配置環境變量
通過 yum install 安裝 jdk,是不會自動配置 JAVA_HOME 環境變量的。
-
找JDK安裝路徑、首先我們依次執行如下命令,一步步找到正確的 JAVA_HOME 位置:
-
可以發現最終找到的位置如下:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
-
配置 JAVA_HOME,執行如下命令打開配置環境變量的文件:
-
在里面添加以下配置(JAVA_HOME 參數根據前面找到的目錄路徑設置):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
-
最后執行如下命令讓配置生效:
-
測試執行 echo $JAVA_HOME 如果能正確輸出路徑則說明配置成功了:
3、安裝Zookeeper
-
創建 /usr/local/services/zookeeper 文件夾,並進入該目錄中
-
下載 zookeeper-3.4.9.tar.gz:命令如下
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
解壓縮 zookeeper-3.4.9.tar.gz:
tar -zxvf zookeeper-3.4.9.tar.gz
-
進入到 /usr/local/services/zookeeper/zookeeper-3.4.9/conf 目錄中:
復制 zoo_sample.cfg 文件的並命名為為 zoo.cfg:
-
用 vim 打開 zoo.cfg 文件並修改其內容為如下:
-
進入到 /usr/local/services/zookeeper/zookeeper-3.4.9/bin 目錄中:
-
用 vim 打開 /etc/ 目錄下的配置文件 profile、並在其尾部追加如下內容:
export ZOOKEEPER_HOME=/usr/local/services/zookeeper/zookeeper-3.4.9/
export PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
-
使 /etc/ 目錄下的 profile 文件即可生效:
-
啟動 zookeeper 服務:
-
查詢 zookeeper 狀態:
zkServer.sh status
-
關閉 zookeeper 服務:
zkServer.sh stop
如打印如下信息則表明成功關閉:
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
-
重啟 zookeeper 服務:
zkServer.sh restart
如打印如下信息則表明重啟成功:
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
ZooKeeper JMX enabled by default
Using config: /usr/local/services/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
4、安裝Kafka
-
進入local文件夾中 ,執行如下命令安裝kafka
-
解壓Kafka
-
配置kafka,修改server.properties
移動kafka
mv kafka_2.13-2.7.0 /usr/local/kafka
mkdir /usr/local/kafka/log/kafka #創建kafka日志目錄
cd /usr/local/kafka/config #進入配置目錄
vi server.properties #編輯修改相應的參數
broker.id=0
port=9092 #端口號
host.name=192.168.200.55 #服務器IP地址,修改為自己的服務器IP
log.dirs=/usr/local/kafka/log/kafka #日志存放路徑,上面創建的目錄
zookeeper.connect=localhost:2181 #zookeeper地址和端口,單機配置部署,localhost:2181
-
配置kafka下的zookeeper
mkdir /usr/local/kafka/zookeeper #創建zookeeper目錄
mkdir /usr/local/kafka/log/zookeeper #創建zookeeper日志目錄
cd /usr/local/kafka/config #進入配置目錄
vi zookeeper.properties #編輯修改相應的參數
dataDir=/usr/local/kafka/zookeeper #zookeeper數據目錄
dataLogDir=/usr/local/kafka/log/zookeeper #zookeeper日志目錄
clientPort=2181
maxClientCnxns=100
tickTime=2000
initLimit=10
5、創建啟動、關閉kafka腳本
-
創建啟動kafka腳本
vi kafkastart.sh #編輯,添加以下代碼
-
關閉kafka
-
添加腳本執行權限
-
設置腳本開機自動執行
vi /etc/rc.d/rc.local #編輯,在最后添加一行
sh /usr/local/kafka/kafkastart.sh & #設置開機自動在后台運行腳本
sh /usr/local/kafka/kafkastart.sh #啟動kafka
sh /usr/local/kafka/kafkastop.sh #關閉kafka
6、測試Kafka
-
啟動zookeeper
-
啟動kafka
使用命令 ./kafkastart.sh
-
測試創建名字是quickstart-events的topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
-
生產消息測試,向topic中寫入數據
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
-
消費消息測試
打開另一個終端會話並運行控制台消費者客戶端來閱讀您剛剛創建的事件:
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
- 停止kafka、停止Zookeeper server
Ctrl-C
至此,啟動,測試,停止全過程ok。單機部署完成
7、部署中產生的bug
發現zookeeper端口2181被占用
解決:
此問題的難點在於定位問題,仔細查看錯誤提示,發現未端口被占用,直接查看端口狀態並找到對應的進程id,查看進程程序,直接kill進程,問題解決。
8、啟動Kafka命令
-
注意:您當地的環境必須安裝 Java 8+ ,先啟動zookeeper再啟動kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
-
打開另一個終端會話並運行:
bin/kafka-server-start.sh config/server.properties
-
一旦所有服務都成功推出,您將有一個基本的 Kafka 環境運行和准備使用。
-
如果您還想刪除您本地 Kafka 環境的任何數據,包括您一路上創建的任何事件,請運行命令:
rm -rf /tmp/kafka-logs /tmp/zookeeper