Spark代码总结(1)
来源:互联网 发布:怎么求逆矩阵 编辑:程序博客网 时间:2024/06/08 10:02
Sparkconf
Spark配置项类,SparkContext类接收配置项内容,控制驱动程序。
一旦Sparkconf对象被创建提交,它的内容不能被修改。Spark不支持动态配置SparkConf。
SparkConf定义了属性,setMaster是对spark.master的设置;setAppName是对属性spark.app.name的设置。
setMaster(String master)
定义Spark连接的master URL。如果设置"local"则单线程本地运行;设置"local[number]"则number个线程本地运行;设置"spark://master:7077"则运行在Spark standalone cluster。
setJars(String[] jars)
日志配置
conf目录下log4j.properties文件。
如果配置和整个Application相关的项,使用SparkConf类。
如果配置本机相关的项或者环境变量,使用spark-env.sh。
spark-submit总结
1.Spark-defaults.conf
编辑driver所在机器上的spark-defaults.conf,该文件会影响到driver所提交运行的application,及专门为该application提供计算资源的executor的启动参数。只需要在driver所在机器上编辑该文件,不需要在worker或者master上编辑。
2.spark-env.sh
如果运行的是master,需要指定SPARK_MASTER_IP;如果运行driver或worker需要指定SPARK_LOCAL_IP,要和本机的IP地址一致,否则启动不了。
3.启动
第一步启动master
$SPARK_HOME/sbin/start-master.sh
第二步 启动worker
(1) $SPARK_HOME/bin/spark-class org.apache.spark.deploy.worker.Worker spark://master:7077
(2) SPARK_HOME/sbin/start-slaves.sh
如果需要在一台机器上运行多个worker,那么在启动第二个和后面的worker时需要指定 --webui-port number ,否则会报端口已经被占用的错误。这种启动方式只是为了测试。
4.spark-submit
参数:
--driver-class-path driver所依赖的包,多个包之间用冒号分割
--jars driver和executor都需要的包,多个包之间用逗号分割。一般只用--jars来指定依赖。这些上传到worker的文件,需要定时手工清理,否则会占用很多磁盘空间。
spark on yarn
Spark支持可插拔的集群管理模式(Standalone、Mesos、Yarn)。
(1)spark on yarn
使用spark客户端来向Yarn提交任务,需要将spark的部署包放置到yarn集群的某个节点上。Spark本身的worker、master不需要启动。
on Yarn的两种运行方式,其运行结束后的日志不能在yarn的application管理界面看到,只能在客户端看到:
yarn logs -applicationId <applicationId>
部署这种模式,需要修改conf目录下的spark-env.sh,
export HADOOP_HOME=
export HADOOP_CONF_DIR=
yarn-cluster和yarn-client方式的区别
yarn-cluster:Spark Driver作为一个ApplicationMater在yarn中先启动,然后再由ApplicationMaster向RM申请资源启动executor来运行task。因为driver在yarn中运行,所以程序的运行结果不能在客户端显示。
yarn-client:Spark Driver在客户端运行,然后向yarn申请executor运行task。客户端的Drive将应用提交给yarn后,yarn先后启动ApplicationMaster和executor,两者都是在container中运行,container默认内存为1G。
ApplicationMaster分配的内存为driver-memory,executor分配的内存为executor-memory。因为Driver在客户端,所以程序的运行结果可以在客户端显示。
Driver以SparkSubmit的形式存在。
spark-submit --master yarn 默认是按照yarn-client的方式运行,用户可以指定--master yarn/yarn-client/yarn-cluster。
命令的文件路径是相当于HDFS的/user/hadoop而言。hadoop是当前用户。
--deploy-mode client/cluster Driver程序运行的地方
--name appname application名称
spark-defaults.conf配置文件
spark.history.retainedApplications 250 保存Application历史记录的个数
spark.history.ui.port 18080 HistoryServer的端口
spark.eventLog.enabled False 是否记录Spark事件
spark.eventLog.dir 保存日志的路径,可以是hdfs://或者file://
spark.yarn.historyServer.address
启动historyServer:
./start-history-server.sh hdfs://xxx
0 0
- Spark代码总结(1)
- Spark 阶段总结 1
- Spark代码1之RDDparallelizeSaveAsFile
- Spark总结
- spark 总结
- Spark总结
- spark 代码重构
- spark简单代码示例
- Spark运行Python代码
- 代码调试总结(1)
- 代码总结1
- uity代码总结1
- SQLAlchemy代码总结(1)
- spark:总结篇--43
- Spark-问题总结
- Spark 模型总结
- spark on hive 总结
- spark源码总结
- 通过Sql实现根据分组合并指定列内容的查询
- [Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能
- js异步获取数据的问题
- Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析 《五》-Toast
- nginx + lua 白名单机制
- Spark代码总结(1)
- Android高手进阶教程(四)之----Android 中自定义属性(attr.xml,TypedArray)的使用!
- Java中判断字符串是否为数字的五种方法
- 《Windows核心编程》---Windows服务
- 迭代器.NET实现—IEnumerable和IEnumerator (foreach实现)
- 明明导入button 包 还是报错 的解决方法~
- 用CXF编写基于spring的web service
- I2C总线-I2C总线线路电气属性
- order by两个字段双重排序