解压改名
tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/
mv spark-2.1.1-bin-hadoop2.7 spark-standalone
修改slave
进入Spark的配置目录/opt/module/spark-standalone/conf 修改slave文件,添加work节点
cd /opt/module/spark-standalone/conf
mv slaves.template slaves
vim slaves
修改spark-env.sh,添加master
mv spark-env.sh.template spark-env.sh
vim spark-env.sh
SPARK_MASTER_HOST=hadoop102
SPARK_MASTER_PORT=7077
脚本分发
xsync spark-standalone/
启动spark集群
sbin/start-all.sh
错误解析
如果遇到 “JAVA_HOME not set” 异常,可以在sbin目录下的spark-config.sh 文件中加入如下配置:
export JAVA_HOME=XXXX
网页查看hadoop102:8080(master web的端口,相当于hadoop的50070端口)
官方PI案例
参数:–master spark://hadoop102:7077指定要连接的集群的master
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10
网页查看
本次任务,默认采用三台服务器节点的总核数24核,每个节点内存1024M。
8080:master的webUI
4040:application的webUI的端口号
配置Executor可用内存为2G,使用CPU核数为2个
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
--executor-memory 2G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10
网页查看
参数说明
- class Spark程序中包含主函数的类
- master Spark程序运行的模式
- executor-memory 1G 指定每个executor可用内存为1G
- total-executor-cores 2 指定所有executor使用的cpu核数为2个
- application-jar 打包好的应用jar,包含依赖。这个URL在集群中全局可见。 比如hdfs:// 共享存储系统,如果是file:// path,那么所有的节点的path都包含同样的jar
- application-arguments 传给main()方法的参数
配置历史服务器
由于spark-shell停止掉后,hadoop102:4040页面就看不到历史任务的运行情况,所以开发时都配置历史服务器记录任务运行情况。
- 修改spark-default.conf.template名称
mv spark-defaults.conf.template spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop102:9000/directory
- 分发
- 启动hadoop集群
102 -> start-dfs.sh
103 -> start-yarn.sh
- 创建HDFS目录
hadoop fs -mkdir /directory
- 修改spark-env.sh文件,添加如下配置
参数1含义:WEBUI访问的端口号为18080
参数2含义:指定历史服务器日志存储路径
参数3含义:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://hadoop102:9000/directory
-Dspark.history.retainedApplications=30"
- 脚本分发
- 启动历史服务
sbin/start-history-server.sh
- 执行任务
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10
- 查看Spark历史服务地址:hadoop102:18080