大数据:高可用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>


分享到:


相關文章: