集群规划

集群类型
spark01master
spark02worker
spark03worker

spark安装包下载

http://archive.apache.org/dist/spark/
我使用的是spark-3.0.0-bin-hadoop3.2.tgz
在这里插入图片描述

虚拟机搭建

NAT静态网络配置

网络配置

Hadoop集群搭建


Hadoop3.xHA搭建

Hadoop3.x集群的搭建

scala安装

下载scala2.12.x版本
https://downloads.lightbend.com/scala/2.12.11/scala-2.12.11.tgz
上传至linux并解压
在这里插入图片描述
在这里插入图片描述
添加环境变量

#set scala
export SCALA_HOME=/usr/spark/scala-2.12.11
export PATH=$PATH:$SCALA_HOME/bin

在这里插入图片描述
在这里插入图片描述

配置spark

修改conf下文件

将conf下spark-env.sh.template 文件改名为 spark-env.sh
在这里插入图片描述
在末尾加上JDK、Hadoop所在的目录

export JAVA_HOME=/usr/local/java/jdk1.8.0_141
export HADOOP_HOME=/usr/hadoop/hadoop-3.2.1
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-3.2.1/etc/hadoop

在这里插入图片描述
配置主节点的主机号和端口号

export SPARK_MASTER_HOST=spark01
export SPARK_MASTER_PORT=7077

在这里插入图片描述

配置主机内存和核

export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=1
export SPARK_MASTER_WEBUI_PORT=8089

在这里插入图片描述
将conf下的slaves.template文件改名为 slaves
在这里插入图片描述
编辑slaves,删除localhost,加入两个子节点

spark02
spark03

在这里插入图片描述
配置spark环境变量

#set spark
export SPARK_HOME=/usr/spark/spark-3.0.0-bin-hadoop3.2
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

在这里插入图片描述

分发虚拟机

将之前的scala和spark文件分发给其他虚拟机

[root@spark01 spark]# scp -r scala-2.12.11 root@spark02:/usr/spark/
[root@spark01 spark]# scp -r scala-2.12.11 root@spark03:/usr/spark/
[root@spark01 spark]# scp -r spark-3.0.0-bin-hadoop3.2 root@spark02:/usr/spark/
[root@spark01 spark]# scp -r spark-3.0.0-bin-hadoop3.2 root@spark03:/usr/spark/

再将环境变量分发给其他虚拟机

[root@spark01 spark]# scp -r /etc/profile root@spark02:/etc/profile
[root@spark01 spark]# scp -r /etc/profile root@spark03:/etc/profile

修改启动文件名

由于spark的启动文件名会与Hadoop集群的启动文件名发生冲突,所以修改spark的启动文件名

[root@spark01 sbin]# mv start-all-spark.sh start-all-spark.sh
[root@spark01 sbin]# mv stop-all.sh stop-all-spark.sh

在这里插入图片描述
在这里插入图片描述

配置历史日志

将conf下的spark-defaults.conf.template 文件改名为 spark-defaults.conf

[root@spark01 conf]# mv spark-defaults.conf.template spark-defaults.conf

编辑spark-defaults.conf

[root@spark01 conf]# vi spark-defaults.conf

将下列两行代码加入该文件中

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://spark02:9000/spark-log

在这里插入图片描述
其中spark-log文件夹得提前创建
在这里插入图片描述
再次编辑spark-env.sh

#配置log
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://spark02:9000/spark-log"

在这里插入图片描述
将修改好的文件分发给另外两个虚拟机

[root@spark01 ~]# scp -r conf root@spark02:/usr/spark/spark-3.0.0-bin-hadoop3.2/
[root@spark01 ~]# scp -r conf root@spark03:/usr/spark/spark-3.0.0-bin-hadoop3.2/

启动spark

启动hadoop集群
[root@spark01 sbin]# start-all.sh
启动spark集群
[root@spark01 sbin]# start-all-spark.sh 
启动spark历史服务
[root@spark01 sbin]# start-history-server.sh 

在这里插入图片描述
输入jps查看
在这里插入图片描述

UI界面查看

在网址上输入主机名:8089
在这里插入图片描述
在网址上输入主机名:18080
在这里插入图片描述

测试spark与hadoop集群是否配置成功

创建test.json文件

[root@spark01 test]# vi test.json

在test.json文件中写入

{"DEST_COUNTRY_NAME":"United States","ORIGIN_COUNTRY_NAME":"Romania","count":1}

进入spark终端

[root@spark01 test]# spark-shell 

终端的页面如下
在这里插入图片描述
在终端下编写代码
val testDF = spark.read.json(“file:///root/test/test.json”)
在这里插入图片描述
testDF.write.format(“parquet”).save("/spark-dir/parquet/test")
在这里插入图片描述
访问hadoopUI
在这里插入图片描述
产生以下文件说明spark搭建成功
在这里插入图片描述
访问sparkUI查看历史日志
主机名:18080
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐