spark3.0.2搭建教程
需要提前按照好hadoop集群
资源下载:
补充:
主机名 | hadoop1 | hadoop2 | hadoop3 |
---|---|---|---|
Master worker | worker | worker |
分别有三台主机,主机名为hadoop1、hadoop2、hadoop3
在CRT中可以输入命令rz
将spark-3.0.2-bin-hadoop3.2.tgz
上传到/opt/software
中
cd /opt/software
rz
/opt/software
我用来存放安装包相关文件的
将文件解压到/opt/module/
tar -zxvf spark-3.0.2-bin-hadoop3.2.gz -C /opt/module/
并将文件名字改为spark
mv /opt/module/spark-3.0.2-bin-hadoop3.2 spark
standalone模式是spark的master-salve的模型,安装规划如下:
主机名 | hadoop1 | hadoop2 | hadoop3 |
---|---|---|---|
Master worker | worker | worker |
进入到解压文件路径下conf
中
slaves.template
为slaves
spark-env.sh.template
为spark-env.sh
spark-defaults.conf.template
为spark-defaults.conf
mv slaves.template slaves
mv spark-env.sh.template spark-env.sh
mv spark-defaults.conf.template spark-defaults.conf
上面都是模板文件,因此需要修改
在slaves
中,中添加worker节点
hadoop1
hadoop2
hadoop3
在spark-env.sh
中,添加JAVA_HOME的路径,Master节点
export JAVA_HOME=/opt/module/jdk1.8.0_212
SPARK_MASTER_HOST=hadoop1
SPARK_MASTER_PORT=7077
注意:JAVA_HOME是自己安装jdk的路径;7077端口相当于hadoop3版本内部通信的8020、9000、9820端口
配置历史服务器来记录任务运行情况
在spark-defaults.conf
中添加或者修改
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop1:8020/directory
spark.yarn.historyServer.address=hadoop1:18080
spark.history.ui.port=18080
spark.eventLog.dir
是指存储日志数据的位置 ,将数据存到hadoop2上
注意:需要在hdfs上创建一个directory
文件夹来存储,可以使用下面命令
hadoop fs -mkdir /directory
还需要在spark-env.sh添加历史服务器相关的配置信息
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://hadoop1:8020/directory
-Dspark.history.retainedApplications=30"
yarn模型是利用yarn来进行资源调度
和standalone模型的配置有相似的地方
在slaves中添加worker的文件,和上面内容一样
在spark-env.sh
中,添加JAVA_HOME
的路径和hadoop集群的配置文件路径
export JAVA_HOME=/opt/module/jdk1.8.0_212
YARN_CONF_DIR=/opt/hadoop-3.1.3/etc/hadoop
注意:JAVA_HOME是自己安装jdk的路径,YARN_CONF_DIR
是hadoop配置文件的路径
配置历史服务器来记录任务运行情况,和standalone模型的配置一样
需要去在hadoop的yarn-site.xml
中添加
Whether physical memory limits will be enforced for
containers.
yarn.nodemanager.pmem-check-enabled
false
yarn.nodemanager.vmem-check-enabled
false
注意:修改后,将修改的文件分发到其他的hadoop中,并重启启动hadoop集群
因此可以得知,yarn模型基于standalone模型下,只需要在spark-env.sh 只需要添加YARN_CONF_DIR
即可
rsync -av /opt/module/spark 用户名@ip地址:/opt/module/
进入的spark安装目录中,执行下面命令开spark集群
和hadoop集群
sbin/start-all.sh
需要自己另外开启hadoop集群
可以通过jps命令查看spark是否启动,分别会在hadoop1、hadoop2、hadoop3
中显示以下进程
hadoop1 | hadoop2 | hadoop3 |
---|---|---|
Master worker | worker | worker |
需要进入到spark的安装目录中,使用spark的官方案例:计算π的值
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop1:7077 \
./examples/jars/spark-examples_2.12-3.0.2.jar \
10
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn
./examples/jars/spark-examples_2.12-3.0.2.jar \
10
补充知识: