hostname | hadoopSvr1 | hadoopSvr3 | hadoopSvr4 |
---|---|---|---|
IP | 10.62.124.41 | 10.62.124.43 | 10.62.124.44 |
spark | master/worker | worker | worker |
spark | HistoryServer |
/data
|__ spark
|__ pids
|__ logs
|__ tmp
其中,Spark中暂存空间的使用目录SPARK_LOCAL_DIRS
/data/spark/tmp
Hadoop集群安装参考:https://blog.csdn.net/wangkai_123456/article/details/87185339
scala安装参考:https://blog.csdn.net/u011563666/article/details/79298314
tar zxvf spark-2.4.0-bin-hadoop2.7.tgz
mv spark-2.4.0-bin-hadoop2.7 spark //重命名目录
cd spark/conf #进入spark配置目录
cp spark-defaults.conf.template spark-defaults.conf #从配置模板复制
vi spark-defaults.conf #添加配置内容
在spark-defaults.conf末尾添加以下内容(这是我的配置,你可以自行修改):
# Configuring the Dynamic Resource Allocation
spark.dynamicAllocation.enabled true
# Configuring the External Shuffle Service
spark.shuffle.service.enabled true
spark.driver.extraClassPath /usr/local/parquet-hadoop-jars/*
spark.executor.extraClassPath /usr/local/parquet-hadoop-jars/*
spark.yarn.jars hdfs://hadoopSvr1:8020/spark-jars/*
spark.yarn.maxAppAttempts 2
# Configuring spark history server
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoopSvr1:8020/tmp/spark-logs
spark.yarn.historyServer.address hadoopSvr1:18080
cd spark/conf #进入spark配置目录
cp spark-env.sh.template spark-env.sh #从配置模板复制
vi spark-env.sh #添加配置内容
在spark-env.sh末尾添加以下内容(这是我的配置,你可以自行修改):
#如果下载的包类型是“Pre-build with user-provided Hadoop[can use with most Hadoop distributions]”,则需要在配置文件spark-env.sh中第一行添加如下配置信息:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop-3.2.0/bin/hadoop classpath)
export JAVA_HOME=/usr/java/jdk1.8.0_111
export SCALA_HOME=/usr/local/scala
export HADOOP_HOME=/usr/local/hadoop-3.2.0
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
#设置hadoopSvr1主机为master节点
export SPARK_MASTER_HOST=hadoopSvr1
#作业可使用的内存容量
export SPARK_WORKER_MEMORY=8G
#Spark中暂存空间的使用目录
export SPARK_LOCAL_DIRS=/data/spark/tmp
#driver进程使用的内存容量
export SPARK_DRIVER_MEMORY=1G
# Generic options
export SPARK_PID_DIR=/data/spark/pids
export SPARK_LOG_DIR=/data/spark/logs
# Configuring spark history server
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://hadoopSvr1:8020/tmp/spark-logs -Dspark.history.fs.cleaner.enabled=true"
注:在设置Worker进程的CPU个数和内存大小,要注意机器的实际硬件条件,如果配置的超过当前Worker节点的硬件条件,Worker进程会启动失败。
cp slaves.template slaves
vi slaves
修改其内容如下:
hadoopSvr1
hadoopSvr3
hadoopSvr4
vi /etc/profile
打开后,在文档最下方添加如下配置:
export SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/bin:$PATH
:wq!保存退出,执行如下命令,使更改生效
source /etc/profile
[root@hadoopSvr3 local]# scp -r root@10.62.124.41:/usr/local/spark .
[root@hadoopSvr4 local]# scp -r root@10.62.124.41:/usr/local/spark .
在hadoopSvr1主机上执行命令:start-all.sh
启动HistoryServer:start-history-server.sh
[root@hadoopSvr1 sbin]# jps
14273 NodeManager
12930 Jps
17465 Daemon
4905 DataNode
10011 Master
10251 Worker
4716 NameNode
在 slave 上应该有以下几个进程:
[root@hadoopSvr3 conf]# jps
14291 Elasticsearch
4500 Worker
1605 DataNode
4920 Jps
31530 ResourceManager
31183 NodeManager
http://hadoopSvr1:8001/ #默认配置是8080端口,由于hadoopSvr1主机上8080端口被占用,所以我配置SPARK_MASTER_WEBUI_PORT=8001,具体配置方法如下:
#打开master文件
vi sbin/start-master.sh
在vi命令模式下输入 :/8080
if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then
SPARK_MASTER_WEBUI_PORT=8080
fi
找到后修改该端口为8001
命令模式下保存退出
重启一遍
sbin/start-all.sh
http://hadoopSvr1:8001页面就可以访问了