大資料 基礎配置 (jdk,hadoop,zookeeper,kafka)
阿新 • • 發佈:2022-04-19
版本如下:
安裝hadoop:linux配置hadoop偽叢集 - 御本美琴初號機 - 部落格園 (cnblogs.com)
jdk: jdk1.8.0_131 mysql: 5.5.54 hadoop: 2.8.1 zookeeper:3.4.10 kafka: 2.11-2.4.1
網盤連結 連結: https://pan.baidu.com/s/1XUhqSbKnzREBOTo5W_gl1Q 提取碼: rfp8
安裝jdk :linux安裝jdk-8u65-linux-x64.tar.gz - 御本美琴初號機 - 部落格園 (cnblogs.com)
安裝hadoop:linux配置hadoop偽叢集 - 御本美琴初號機 - 部落格園 (cnblogs.com)
安裝zookeeper:
zookeeper-3.4.10.tar.gz
1.上傳至opt目錄下解壓
tar -zxvf zookeeper-3.4.10.tar.gz
2.進入zookeeper ,建立儲存資料的資料夾
3.進入conf目錄
[root@hdp1 conf]# mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/opt/zookeeper-3.4.10/data (儲存資料地址)
在檔案下面新增 hdp1 2 3 為主機名稱
4.vim data 預先建立好的資料夾
vim myid (儲存zookeeper的編號) 寫入 1
5.分發到虛擬機器2和3
為了方便,我是用指令碼進行分發,由於使用的是最小安裝的linux,所以無法使用第一種,在這裡兩種方法都列出,大家自己選擇
##第一種 #!/bin/sh # 獲取輸入引數個數,如果沒有引數,直接退出 pcount=$# if((pcount==0)); then echo no args...; exit; fi # 獲取檔名稱 p1=$1 fname=`basename $p1` echo fname=$fname # 獲取上級目錄到絕對路徑 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir # 獲取當前使用者名稱稱 user=`whoami` # 迴圈 for((host=2; host<=3; host++)); do echo $pdir/$fname $user@slave$host:$pdir echo ==================slave$host================== rsync -rvl $pdir/$fname $user@hdp$host:$pdir done #Note:這裡的slave對應自己主機名,需要做相應修改。另外,for迴圈中的host的邊界值
使用方法為 : 先給檔案執行許可權,然後在後面加上引數
第二種:也是最小安裝使用的方法,使用scp
scp -r zookeeper-3.4.10/ root@hdp2:$PWD hdp2 為要分發到的虛擬機器
6.修改分發好的虛擬機器myid
進入到我們之前建立的檔案data下的myid中 依次修改標號為2、3 根據你的虛擬機器數量而定
7.啟動zookeeper
/opt/zookeeper-3.4.10/bin/zkServer.sh start (開啟) /opt/zookeeper-3.4.10/bin/zkServer.sh stop (關閉) 為了方便也可以使用指令碼 /opt/zookeeper-3.4.10/bin/zkServer.sh $1 ssh hdp2 "source /etc/profile;/opt/zookeeper-3.4.10/bin/zkServer.sh $1" ssh hdp3 "source /etc/profile;/opt/zookeeper-3.4.10/bin/zkServer.sh $1"
8.檢視是否啟動成功
使用jps即可檢視
也可以使用指令碼檢視所有虛擬機器正在執行的狀態
echo "=====================hdp1===================" jps echo "=====================hdp2===================" ssh hdp2 "source /etc/profile; jps" echo "=====================hdp3===================" ssh hdp3 "source /etc/profile; jps"
安裝kafka:
kafka_2.11-2.4.1
1.解壓到opt
2.修改配置檔案
vim kafka_2.12-1.0.0/config --> server.properties broler.id=0 標誌當前機器在叢集中的唯一標識 別的虛擬機器依次配置 listeners=PLAINTEXT://hdp1:9092 提供的地址 依次修改 log.dirs=/opt/kafka_2.11-2.4.1/kafka_logs 設定日誌地址 zookeeper.connect=hdp1:2181,hdp2:2181,hdp3:2181 \#刪除topic功能使能 沒有就新增 delete.topic.enable=true
3.分發並修改
還有兩臺機器 scp -r /opt/kafka_2.11-2.4.1/ root@hdp2:$PWD scp -r /opt/kafka_2.11-2.4.1/ root@hdp2:$PWD
更改hdp2和hdp3中broler.id,listeners,使id唯一,listener對應各節點ip
4.簡單使用 ,cd 到kafka的bin目錄下
啟動關閉服務
./kafka-server-start.sh -daemon ../config/server.properties
./kafka-server-stop.sh -daemon ../config/server.properties
建立主題 test
./kafka-topics.sh --bootstrap-server hdp1:9092,hdp2:9092,hdp3:9092 --create --topic test
建立一個分割槽,一個副本
./kafka-topics.sh --create --zookeeper 192.168.224.111:2181 --partitions 1 -- replication-factor 1 --topic test
檢視主題
./kafka-topics.sh --bootstrap-server hdp1:9092,hdp2:9092,hdp3:9092 --list
啟動生產者
./kafka-console-producer.sh --broker-list hdp1:9092,hdp2:9092,hdp3:9092 --topic test
啟動消費者
./kafka-console-consumer.sh --bootstrap-server hdp1:9092,hdp2:9092,hdp3:9092 --topic test
需要注意,應該先啟動zookeeper在啟動kafka,關閉時也應該先關閉kafka再關閉zookeeper