Spark服务启动的一些总结

1、我理解常用的Spark部署方式有三种

1)、本地服务,就是所谓的local,在IDE上本地跑程序,用于调试
2)、Standalone,使用自己的master/worker进行服务的调度。 脱离yarn的资源管理
3)、Spark on yarn。 使用yarn来进行资源的调度

2、在spark-env.sh中配置export HADOOP_CONF_DIR= ,这样就可以使用hdfs了。

3、提交应用使用bin/spark-submit,通过指定master来确定是使用什么模式,即spark:// yarn-cluster yarn-client。如果使用的spark://,那么代表就是standalone模式,那么就需要sbin/start-all.sh启动一下spark集群进行资源调度。

4、使用bin/spark-shell来进行本地交互式查询。 但使用spark-shell貌似最好在standalone模式下进行

5、最终执行进程是Executor,它的资源使用在submit时指定–executor-cores,–executor-memory,–num-executors,如果没有指定,那么就会读取spark-env.sh配置文件中的SPARK_EXECUTOR_CORES,SPARK_EXECUTOR_MEMORY

6、在yarn模式下Executor进程名叫做CoarseGrainedExecutorBackend,在standalone模式下,Executor进程名叫做CoarseGrainedExecutorBackend。 (。。。我一直以为进程名称不一样呢,原来是一样的。 好吧,我是出来搞笑的)

7、yarn-client,yarn-cluster区别在于driver的位置。 所谓driver是指定你的运行代码。 client模式下,你的client就是在你在客户端中。 cluster模式下,似乎应该是在ApplicationMaster中,它出现的位置是随机的。

形象的举个例子就清楚了,如果你在你的执行代码中输出了日志,那么在client模式下是可以看到日志的,但在cluster模式下是不太容易看到日志输出的,如果想要看到, 那么需要去yarn的webui看。或者执行命令yarn application -logs xxxxxxxxxxxxx(如果我没有记错的话) 。

个人使用经历来看,如果是使用spark streaming ,那么用client感觉个人会好一些。

后续会读源代码,在源代码中了解一下client 和 cluster使用的区别,才能确定哪个应用场景会更好些。

sparkshell启动后自动退出的情况可能是由于以下几个原因造成的: 1. 内存不足:在启动sparkshell前需确保系统具有足够的内存空间来支持它的运行。如果系统内存不足,sparkshell在运行过程中可能会因为OOM(Out of Memory)错误而自动退出。 解决方法:可以通过增加系统的内存,或者在启动sparkshell时指定更小的内存使用量,来避免这个问题。 2. 硬件问题:sparkshell需要一个稳定的硬件环境来运行,如果硬件设备出现故障或者断电,则可能导致sparkshell自动退出。 解决方法:确保硬件设备正常工作,提供稳定的电源供应。 3. 配置错误:sparkshell的配置文件可能存在错误配置,导致启动后无法正常运行。 解决方法:检查sparkshell的配置文件,确保配置正确。可以尝试使用默认配置文件,并逐渐修改配置,以排除错误。 4. 其他异常:sparkshell在运行过程中可能会遇到其他异常情况,如网络故障、磁盘空间不足等,这些异常可能导致自动退出。 解决方法:检查系统的网络连接状态、磁盘空间等,确保没有异常。如果遇到特定的错误提示,在网上搜索该错误信息,可能有其他用户遇到过类似问题并给出了解决方案。 总结:为了解决sparkshell启动后自动退出的问题,需要对系统硬件、内存、配置文件等进行排查和修复。如果问题无法解决,可以尝试重装sparkshell或者联系相关技术支持团队获取帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值