我的Spark 2.3.3集群运行良好。我在“http://master-address:8080”上看到了GUI,其中有2个空闲的工作人员。
我有一个Scala应用程序,它创建上下文并启动作业。我不使用spark-submit,我以编程方式开始工作,这是许多答案与我的问题不同的地方。
在“my-app”中,我创建了一个新的SparkConf,代码如下(略有缩写):
conf.setAppName(“my-job")
conf.setMaster(“spark://master-address:7077”)
conf.set(“deployMode”, “cluster”)
// other settings like driver and executor memory requests
// the driver and executor memory requests are for all mem on the slaves, more than
// mem available on the launching machine with “my-app"
val jars = listJars(“/path/to/lib")
conf.setJars(jars)
…
司机跑到哪里去了?我如何找到它给定的日志和监视?我无法将我所看到的与文件相一致,它们相互矛盾。
官方文件对此作出了回答:
然而,在集群模式下,驱动程序是从集群内的一个工作进程启动的,客户机进程在完成提交应用程序的职责后立即退出,而无需等待应用程序完成。
换句话说,驱动程序使用任意的工作节点,因此它很可能与执行器上的一个工作节点共同定位,在这样的小集群上。为了预测后续问题--这种行为是不可配置的--您只需确保集群有能力启动所需的执行程序和具有所请求内存和核心的驱动程序。
工人出现在图片上。为了运行我的代码,我使用了以下命令:
我正在运行一个小型spark集群,其中有两个EC2实例(M4.xLarge)。 --驱动程序-内存8G --驱动器-核心2 --部署模式客户端
应用程序不是那么占用内存,有两个连接和写数据集到目录。同样的代码在spark-shell上运行没有任何失败。 寻找群集调优或任何配置设置,这将减少执行器被杀死。
如何确定spark独立群集模式上的工作线程数?在独立群集模式下添加工作线程时,持续时间将缩短。 例如,对于我的输入数据3.5 G,WordCount需要3.8分钟。但是,在我添加了一个内存为4 G的工作器后,需要2.6分钟。 增加调谐火花的工人可以吗?我正在考虑这方面的风险。 我的环境设置如下:, 内存128克,16个CPU,用于9个虚拟机 输入数据信息 HDFS中的3.5 G数据文件
null sbin/start-slave.sh spark://c96___37fb:7077--用于并置从机的端口7078 sbin/start-slave.sh spark://masternodeip:7077--其他两个从机的端口7078 前面引用的所有端口都从nodeMaster重定向到相应的Docker。 因此,webUI向我显示,我的集群有3个连接的节点,不幸的是,当运行时,只有并
我已经在Kubernetes上建立了Spark独立集群,并试图连接到Kubernetes上没有的Kerberized Hadoop集群。我已经将core-site.xml和hdfs-site.xml放在Spark集群的容器中,并相应地设置了HADOOP_CONF_DIR。我能够成功地在Spark容器中为访问Hadoop集群的principal生成kerberos凭据缓存。但是当我运行spark-s