1、spark是在yarn发布之前开发完成的,因此有自己的独立调度器。
2、spark有local、standalone和yarn模式,另外还有mesos模式。然后deploy模式有client和cluster两种,主要区别是client模式时driver在本地节点工作,cluster是在集群中其他节点。
3、spark和mr区别:spark中间结果不落盘,mr每个计算任务结果都落盘(spark的shuffle阶段也落盘)
4、配置历史服务器:以便通过yarn界面查看历史日志。
5、配置spark的高可用(通过zookeeper实现)。
6、sparksubmit命令参数:
bin/spark-submit \
--class <main-class>
--master <master-url> \
... # other options
<application-jar> \
[application-arguments]
参数说明
参数 | 解释 | 可选值举例 |
--class | Spark程序中包含主函数的类 | |
--master | Spark程序运行的模式 | 本地模式:local[*]、spark://hadoop102:7077、 Yarn |
--executor-memory 1G | 指定每个executor可用内存为1G | 符合集群内存配置即可,具体情况具体分析。 |
--total-executor-cores 2 | 指定所有executor使用的cpu核数为2个 | |
application-jar | 打包好的应用jar,包含依赖。这个URL在集群中全局可见。 比如hdfs:// 共享存储系统,如果是file:// path,那么所有的节点的path都包含同样的jar | |
application-arguments | 传给main()方法的参数 |
7、端口号总结:
1)Spark查看当前Spark-shell运行任务情况端口号:4040
Spark Shell是一个交互式的命令行,提供了一种学习API的简单方式,以及一个能够进行交互式分析数据的强大工具,他也是一个客户端,可以使用scala编写(scala运行与Java虚拟机可以使用现有的Java库)或使用Python编写。方便学习和测试,用于提交spark应用程序
如果有多个spark任务,依次查看端口号:4041 4042 。。。
2)Spark Master内部通信服务端口号:7077 (类比于Yarn的8032端口(RM和NM的内部通信))
3)Spark Standalone模式Master Web端口号:8080(类比于Hadoop Yarn任务运行情况查看端口号:8088)standalone模式下配置HA时与zk的端口号冲突需要修改
4)Spark历史服务器端口号:18080 (类比于Hadoop历史服务器端口号:19888)