1. 程式人生 > 其它 >大資料 基礎配置 (jdk,hadoop,zookeeper,kafka)

大資料 基礎配置 (jdk,hadoop,zookeeper,kafka)

版本如下:
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 為主機名稱
server.1=hdp1:2888:3888
server.2=hdp2:2888:3888
server.3=hdp3:2888:3888

 

  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