Standalone client模式下怎么提交spark程序
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章主要讲解了"Standalone client模式下怎么提交spark程序",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Standalone
千家信息网最后更新 2025年12月04日Standalone client模式下怎么提交spark程序
这篇文章主要讲解了"Standalone client模式下怎么提交spark程序",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Standalone client模式下怎么提交spark程序"吧!
standalone client模式下,使用ClientApp提交spark程序。
此类在deploy/Client.scala文件中。
private[spark] class ClientApp extends SparkApplication { override def start(args: Array[String], conf: SparkConf): Unit = { val driverArgs = new ClientArguments(args) val rpcEnv = RpcEnv.create("driverClient", Utils.localHostName(), 0, conf, new SecurityManager(conf)) val masterEndpoints = driverArgs.masters.map(RpcAddress.fromSparkURL). map(rpcEnv.setupEndpointRef(_, Master.ENDPOINT_NAME)) rpcEnv.setupEndpoint("client", new ClientEndpoint(rpcEnv, driverArgs, masterEndpoints, conf)) rpcEnv.awaitTermination() }}代码很简单。start方法就是创建一个ClientEndpoint,然后与Master交互。
ClientEndpoint的主要功能和方法:
override def onStart(): Unit = { driverArgs.cmd match { case "launch" => // TODO: We could add an env variable here and intercept it in `sc.addJar` that would // truncate filesystem paths similar to what YARN does. For now, we just require // people call `addJar` assuming the jar is in the same directory. val mainClass = "org.apache.spark.deploy.worker.DriverWrapper" val classPathConf = config.DRIVER_CLASS_PATH.key val classPathEntries = getProperty(classPathConf, conf).toSeq.flatMap { cp => cp.split(java.io.File.pathSeparator) } val libraryPathConf = config.DRIVER_LIBRARY_PATH.key val libraryPathEntries = getProperty(libraryPathConf, conf).toSeq.flatMap { cp => cp.split(java.io.File.pathSeparator) } val extraJavaOptsConf = config.DRIVER_JAVA_OPTIONS.key val extraJavaOpts = getProperty(extraJavaOptsConf, conf) .map(Utils.splitCommandString).getOrElse(Seq.empty) val sparkJavaOpts = Utils.sparkJavaOpts(conf) val javaOpts = sparkJavaOpts ++ extraJavaOpts val command = new Command(mainClass, Seq("{{WORKER_URL}}", "{{USER_JAR}}", driverArgs.mainClass) ++ driverArgs.driverOptions, sys.env, classPathEntries, libraryPathEntries, javaOpts) val driverResourceReqs = ResourceUtils.parseResourceRequirements(conf, config.SPARK_DRIVER_PREFIX) val driverDescription = new DriverDescription( driverArgs.jarUrl, driverArgs.memory, driverArgs.cores, driverArgs.supervise, command, driverResourceReqs) asyncSendToMasterAndForwardReply[SubmitDriverResponse]( RequestSubmitDriver(driverDescription)) case "kill" => val driverId = driverArgs.driverId asyncSendToMasterAndForwardReply[KillDriverResponse](RequestKillDriver(driverId)) }封装一个org.apache.spark.deploy.worker.DriverWrapper类,然后将DriverDescription消息发送给Master,在Master上启动这个DriverWrapper。DriverWrapper很简单了,这里就不细说了,作用就是起一个线程,执行我们的spark程序的main方法。
感谢各位的阅读,以上就是"Standalone client模式下怎么提交spark程序"的内容了,经过本文的学习后,相信大家对Standalone client模式下怎么提交spark程序这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
程序
模式
就是
方法
学习
内容
代码
作用
功能
思路
情况
文件
文章
更多
消息
知识
知识点
篇文章
线程
跟着
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
和利时m6服务器离线是怎么回事
单片机软件开发软件
大连鸿科软件开发
medoo 连接数据库
修改服务器的安全认证模式
配置mysql数据库
邮件收发服务器设置
数据库中前景色为红色是多少
个人的发展离不开网络安全作文
街道奥运会期间网络安全保障工作总结
王者一直转圈服务器未响应
网络安全技术与实践第三版
问道手游最老的服务器
思科网络技术学院资料
网络安全管理思想
国外服务器优惠码
阿里巴巴软件开发工作时间
2017互联网大会科技
新疆首届网络安全知识竞赛
软件开发需求和管理表格
天津网络技术分类服务标准
网络安全专业是什么时候上的
软件开发与网络有关吗
徐汇区企业数据库研发诚信服务
地理信息系统软件开发
邢台企业软件开发费用
管理服务器和网络工作
软件开发转行做数据分析师
浙江软件开发者攻略
打开一个文件用于只读数据库