大數據:高可用spark分佈式集群搭建

免密登錄配置

1 所有節點生成密鑰

<code>  

-t rsa

ls

-atrl

/<code>

.ssh文件夾目錄說明:

id_rsa:私鑰

id_rsa.pub:公鑰

2 主節點生成認證文件

<code>cat .ssh/id_rsa.pub >> .ssh/authorized_keys
 
 

do

i

in

{

1

..

2

}; ssh

192.168

.

23.22

$i cat .ssh/id_rsa.pub >> .ssh/authorized_keys; done ssh

192.168

.

23.216

cat .ssh/id_rsa.pub >> .ssh/authorized_keys;

do

i

in

{

1

..

2

}; scp .ssh/authorized_keys pjb@192.

168.23

.

22

$i

:/home/pjb/

.ssh/authorized_keys done scp .ssh/authorized_keys pjb@192.

168.23

.

216

:/home/pjb/

.ssh/authorized_keys/<code>

3 所有節點授權

<code> 

chmod

-R

700

.ssh

chmod

-R

600

.ssh/authorized_keys

ssh

192.168

.23

.222

/<code>

zookeeper集群搭建

1 下載

zookeeper官網:https://zookeeper.apache.org/releases.html

zookeeper安裝包:apache-zookeeper-3.5.7-bin.tar.gz

2 上傳服務器

將zookeeper安裝包上傳到各個節點:192.168.23.221-223

3 安裝

1)準備工作

<code>#解壓

tar

-zxvf

apache-zookeeper-3

.5

.7-bin

.tar

.gz

cd

apache-zookeeper-3

.5

.7-bin

#創建數據和日誌目錄

mkdir

data

mkdir

logs

#複製生成

zoo

.cfg

文件

cd

conf

cp

zoo_sample

.cfg

zoo

.cfg

/<code>

2)修改zoo.cfg文件

<code> 

dataDir

=/home/pjb/bigdata/apache-zookeeper-

3.5

.

7

-bin/data

dataLogDir

=/home/pjb/bigdata/apache-zookeeper-

3.5

.

7

-bin/logs

server.1

=KUD01:

2888

:

3888

server.2

=KUD02:

2888

:

3888

server.3

=KUD03:

2888

:

3888

/<code>

3)創建myid文件

根據zoo.cfg中各個節點配置myid信息,即:server.myid編號,在各個節點的data目錄下創建myid文件

<code> 

cd

/home/pjb/bigdata/apache-zookeeper-3.5.7-bin/data

echo

1 >> myid /<code>

4)啟動

在各個節點執行

<code>cd /home/pjb/bigdata/apache-zookeeper-3.5.7-bin/bin
 
./zkServer.sh 

start

./zkServer.sh

status

/<code>

spark集群規格

大數據:高可用spark分佈式集群搭建

spark集群規格

1 下載

spark官網:http://spark.apache.org/

spark安裝包:spark-2.4.5-bin-hadoop2.7.tgz

2 安裝配置

1)修改spark-env.sh文件

<code>

export

JAVA_HOME=/usr/java/jdk1.8.0_172

export

SPARK_DAEMON_JAVA_OPTS=

"   -Dspark.deploy.recoveryMode=ZOOKEEPER   -Dspark.deploy.zookeeper.url=KUD01,KUD02,KUD03    -Dspark.deploy.zookeeper.dir=/spark-info"

/<code>

2)將spark-env.sh複製到其他所有節點

3)啟動主節點(192.168.23.221)

<code>

cd

/home/pjb/bigdata/spark-2.4.5-bin-hadoop2.7/sbin ./start-all.sh/<code>

4)啟動備份主節點(192.168.23.216)

<code>

cd

/home/pjb/bigdata/spark-2.4.5-bin-hadoop2.7/sbin ./start-master.sh/<code>

5)驗證

主節點:http://192.168.23.221:8080/


大數據:高可用spark分佈式集群搭建

spark管理頁面

備份主節點:http://192.168.23.216:8080/


大數據:高可用spark分佈式集群搭建

spark管理頁面

提交一個spark應用到spark集群運行

<code>cd /home/pjb/bigdata/spark

-2.4

.5

-bin-hadoop2

.7

.

/bin/spark-submit --master spark:/

/KUD01:

7077

,HSlave02:

7077

--

class

org

.

apache

.

spark

.

examples

.

SparkPi

--

executor

-

memory

2048

mb

--

total

-

executor

-

cores

12

examples

/

jars

/

spark

-

examples_2

.11-2.4.5.

jar

1000

/<code>

--executor-memory 每個executor使用的內存大小

--total-executor-cores 整個app使用的核數

運行spark shell

spark-shell是一個交互式的命令行,裡面可以寫spark程序,方便學習和測試,它也是一個客戶端,用於提交spark應用程序

1 local模式

<code>/bigdata/spark-2.4.5-bin-hadoop2.7/bin/spark-shell /<code>

上面的方式沒有指定master的地址,即用的是spark的local模式運行的(模擬的spark集群運行的過程)

2 集群模式

<code>

/bigdata/spark-2.4.5-bin-hadoop2.7/bin/spark-shell --master spark:/

/KUD01:

7077

,

192.168

.23

.216

:

7077

/<code>

上面是指定了master的地址,那麼就會將任務提交到集群,開始時sparksubmit(客戶端)要連接Master,並申請計算資源(內存和核數),Master進行資源調度(就是讓那些Worker啟動Executor),在準備工作時,這些進程都已經創建好了


大數據:高可用spark分佈式集群搭建

spark-shell

3 完成WordCount

<code>

sc

.textFile

(

"hdfs://KUD01:9000/spark/test"

)

.flatMap

(_.split(

" "

))

.map

((_,

1

))

.reduceByKey

(_+_)

.sortBy

(_._2,false)

.collect

/<code>


分享到:


相關文章: