单机模式
- 先安装配置好java环境,scala,下载spark解压至
/usr/local/spark
- 启动spark的master
./sbin/start-master.sh
Master-WebUI: http://10.0.30.70:8080/ - 启动spark的worker
./sbin/start-slave.sh spark://master:7077
根据conf/slaves
的配置启动worker,如果找不到slaves中配置的主机则默认为
master地址可通过Master-WebUI: http://10.0.30.70:8080/查看
- 运行示例
bin/spark-submit --class "SimpleApp" ./sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar
其中SimpleApp是通过sbt打包的一个程序 参考 独立应用程序
集群部署
- 准备工作:配置Java环境,安装scala,各主机下载spark解压至
/usr/local/spark
,设置hostname,/etc/hosts
,各主机之间免密登录。
hostnamectl set-hostname test
master, slave1, slave2
- 配置
conf/
下的配置文件
spark-env.sh
SPARK_LOCAL_IP=master #本机ip或hostname
SPARK_MASTER_IP=master #master节点ip或hostname
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop #hadoop的配置路径
export YARN_CONF_DIR=/usr/local/hadoop/etc/hadoop #yarn路径配置
slaves
slave1
slave2
将上述配置文件分别复制到各主机下的配置文件中,同时将其中的
SPARK_LOCAL_IP
改为本机的ip,然后在master下执行./sbin/start-all.sh
,会在master主机中启动Master进程,在slave1和slave2主机中启动Worker进程-
提交运行示例,程序提交到master:
bin/spark-submit --class "SimpleApp" --master spark://master:7077 ./sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar
通过Master-WebUI: http://10.0.30.70:8080/查看执行的任务
-
Spark on yarn 提交Spark应用程序到yarn,前提是hadoop的yarn即ResourceManger已启动,可参考Hadoop集群安装部署,执行
bin/spark-submit --class "SimpleApp" --master yarn ./sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar
,可通过WebUI:ResourceManager - http://localhost:8088/查看提交的任务
配置,启动 History Server
spark-defaults.conf
spark.eventLog.enabled true #eventLog是否生效
spark.eventLog.dir hdfs://master:9000/history/spark #eventLog的文件存放位置,需要在hdfs上创建相应的目录
spark.eventLog.compress true #eventLog是否启用压缩
注意,eventLog是存储在hdfs上的需要根据配置的spark.eventLog.dir的路径在hdfs上创建相应的目录
spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://master:9000/history/spark"
启动执行./sbin/start-history-server.sh
,在 HistoryServer-WebUI: http://10.0.30.70:18080/查看