Spark实例学习(一)spark3.x集群搭建
目录spark安装包下载虚拟机搭建Hadoop集群搭建spark安装包下载http://archive.apache.org/dist/spark/我使用的是spark-3.0.0-bin-hadoop3.2.tgz虚拟机搭建Hadoop集群搭建Hadoop3.xHA搭建Hadoop3.x集群的搭建
目录
集群规划
集群 | 类型 |
---|---|
spark01 | master |
spark02 | worker |
spark03 | worker |
spark安装包下载
http://archive.apache.org/dist/spark/
我使用的是spark-3.0.0-bin-hadoop3.2.tgz
虚拟机搭建
NAT静态网络配置
Hadoop集群搭建
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
更多推荐
所有评论(0)