目录
Spark
前言
一、运行模式
1. local模式
2. standalone模式
3. yarn模式
4. Spark On Mesos模式
二、开发环境
1. IDE
2. Spark-shell
3. Spark-submit
总结
Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求。
需要设置的master参数含义:
local:所有计算运行在一个线程中;
local[n]:指定n个线程来运行计算;
local[*]:按cpu最多core来设置线程数;
构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。但只依赖spark框架,不依赖hadoop。需要集群中每个节点都安装spark。
运行官方求PI代码:
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 \ 100Spark客户端直接连接Yarn,不需要额外构建Spark集群,也只需要安装一个节点。有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点。
yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的输出
yarn-cluster:Driver程序运行在由RM(ResourceManager)启动的AP(APPMaster)适用于生产环境。
针对低版本hadoop,升级有风险,又想更换为spark计算引擎,可采用Mesos。
最常用开发模式,一般先在ide中开发调试,再打成jar包提交到集群spark-submit运行,要注意环境配置和导入包依赖;
客户端环境一般是测试用,逐行提交运行命令;
打成的jar包提交运行,也可以写进脚本,调度运行;最全环境,但运行要注意配置依赖。
bin/spark-submit \
--class <main-class>
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
参数说明:--master 指定Master的地址,默认为Local
--class: 你的应用的启动类 (如 org.apache.spark.examples.SparkPi)
--deploy-mode: 是否发布你的驱动到worker节点(cluster) 或者作为一个本地客户端 (client) (default: client)*
--conf: 任意的Spark配置属性, 格式key=value. 如果值包含空格,可以加引号“key=value”
application-jar: 打包好的应用jar,包含依赖. 这个URL在集群中全局可见。 比如hdfs:// 共享存储系统, 如果是 file:// path, 那么所有的节点的path都包含同样的jar
application-arguments: 传给main()方法的参数
--executor-memory 1G 指定每个executor可用内存为1G
--total-executor-cores 2 指定每个executor使用的cup核数为2个
开发环境常用的是ide下开发打包到yarn集群运行,其他较为少用。测试可先local模式,运行成功后yarn模式也可能会报错!
