1. 配置spark

4.1 解压压缩包

[root@centosmv ~]# tar xf spark-2.4.4-bin-without-hadoop.tgz

[root@centosmv ~]# mv spark-2.4.4-bin-without-hadoop /usr/local/spark

说 明:

spark解压并移动到/usr/local

4.2 配置spark环境

# cd /usr/local/spark/conf/

# cp -rp spark-env.sh.template spark-env.sh

说 明:

创建spark-env.sh配置文件,并指定scala目录、java目录、hadoop目录及hadoop配置文件目录。

spark-env.sh文件:

export JAVA_HOME=/usr/local/jdk

export HADOOP_HOME=/usr/local/Hadoop

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export HADOOP_CLASSPATH=/usr/local/hadoop/*

export SPARK_MASTER_IP=master

export SPARK_LOCAL_DIRS=/usr/local/spark

export SPARK_WORKER_MEMORY=4G

export SPARK_DRIVER_MEMORY=4G

export SPARK_EXECUTOR_CORES=8

export SPARK_CLASSPATH=/usr/local/spark/extlib/*

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://master:9820/sparkhistorylogs"

export SPARK_MASTER_WEBUI_PORT=28080

export SPARK_DIST_CLASSPATH=/usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/*:/usr/local/hadoop/share/hadoop/common/lib/*:/usr/local/hadoop/share/hadoop/hdfs/*:/usr/local/hadoop/share/hadoop/hdfs/lib/*:/usr/local/hadoop/share/hadoop/mapreduce/*:/usr/local/hadoop/share/hadoop/mapreduce/lib/*:/usr/local/hadoop/share/hadoop/yarn/*:/usr/local/hadoop/share/hadoop/yarn/lib/*

export SCALA_HOME=/usr/local/scala 

 

 

 

编辑环境变量:

[root@WW-JYT-SPA1 bin]# vim /etc/profile

#spark  

export SPARK_HOME=/usr/local/spark

export PATH=${SPARK_HOME}/bin:$PATH

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native

4.3 修改spark配置文件

4.3.1修改slaves配置文件

# cp -rp /usr/local/spark/conf/slaves.template /usr/local/spark/conf/slaves

说 明:

拷贝该配置文件,放入同层目录下slaves中,修改该文件,将指定worker节点,一行一个节点。

 

 

4.3.2修改spark-default.conf配置文件

# cd /usr/local/spark/conf/

# cp -rp spark-defaults.conf.template spark-defaults.conf

# vim spark-defaults.conf

说 明:

创建spark-defaults.conf文件,并配置对应信息,详细配置介绍如下:

  1. spark.master

spark master主节点

  1. spark.serializer

指定序列化机制为kryo,比java默认的序列化机制更加节约空间和CPU性能。

  1. spark.eventLog.enabled/spark.eventLog.dir

记录Spark事件的基本目录,如果spark.eventLog.enabledtrue。 在此基本目录中,Spark为每个应用程序创建一个子目录,并在此目录中记录特定于应用程序的事件。 用户可能希望将其设置为统一位置,如HDFS目录,以便历史记录服务器可以读取历史记录文件。可以是hdfs://开头的HDFS路径,也可以是file://开头的本地路径,都需要提前创建。

  1. spark.driver.host

使用属性spark.driver.host来指定yarn-client模式运行中和Yarn通信的DriverHost,此时yarn-client模式可以正常运行

  1. spark.executor.memory

该参数用于设置每个Executor进程的内存。Executor内存的大小,很多时候直接决定了Spark作业的性能

  1. spark.driver.memory

driver进程运行的内存大小。可以在程序代码中通过SparkConf进行设置,也可以在spark-submit中使用--driver-memory进行设置

  1. spark.executor.logs.rolling.maxRetainedFiles

系统保留日志的最大数量,当超限时,旧的日志被删除,默认不启动

  1. spark.executor.logs.rolling.maxSize

日志文件保存策略之-系统保留日志文件的最大大小

  1. spark.yarn.historyServer.address

Spark history server的地址(不要加http://)。这个地址会在Spark应用程序完成后提交给YARN RM,然后RM将信息从RM UI写到history server UI上。

  1. spark.history.fs.logDirectory

用于为历史记录程序提供文件系统,包含要加载的应用程序事件日志的目录URL。 这可以是本地文件路径file://路径,HDFS路径hdfs://namenode:port /shared/spark-logsHadoop API支持的备用文件系统的路径。spark.eventLog.dir用于生成日志,spark.history.fs.logDirectorySpark History Server发现日志事件的位置。

spark-defaults.conf文件内容:

spark.master spark://master:7077

spark.serializer  org.apache.spark.serializer.KryoSerializer

spark.eventLog.enabled           true

#spark.eventLog.dir               /tmp/spark-events

spark.eventLog.dir hdfs://master:9820/sparkhistorylogs

spark.eventLog.compress true

##spark.driver.host                master

spark.executor.memory            4g

spark.driver.memory              4g

spark.port.maxRetries 128

spark.executor.logs.rolling.maxRetainedFiles    100

spark.executor.logs.rolling.maxSize             1g

 

spark.yarn.historyServer.address        master:18080

spark.history.fs.logDirectory           hdfs://master:9820/sparkhistorylogs

 

#spark.buffer.pageSize 16m

spark.sql.tungsten.enabled false

4.4 拷贝配置并修改master配置

scp -rp /usr/local/spark/ slave1:/usr/local/

scp -rp /usr/local/spark/ slave2:/usr/local/

scp -rp /etc/profile slave1:/etc/

scp -rp /etc/profile slave2:/etc/

[root@slave1 ~]# source /etc/profile

[root@slave2 ~]# source /etc/profile

[root@slave3 ~]# source /etc/profile

4.5创建历史日志事件目录及启动集群

 hdfs dfs -mkdir /sparkhistorylogs

 hdfs dfs -ls /

说 明:

创建历史日志事件目录,并查看目录是否创建成功。

 

/usr/local/spark/sbin/start-all.sh

/usr/local/spark/sbin/start-history-server.sh

jps

 

 

说 明:

master节点处调spark/sbin下的start-all.sh脚本,并在每台机器执行jps命令查看是否调起对应的master/worker进程

 

注意4040端口占用问题