如果我理解正确的话,在静态分配中,当Spark上下文在集群中的所有节点上创建时(在集群模式下),Spark应用程序将获取执行器。我有几个问题
>
如果在所有节点上都获得了执行器,并且在整个应用程序的持续时间内一直分配给这个应用程序,那么是否有很多节点都处于空闲状态?
在创建Spark上下文而不是在DagScheduler中时获取资源的优势是什么?我的意思是应用程序可以任意长,它只是保存资源。
我检查了一个相关的问题,纱线上的Spark在启动执行程序时是否处理数据局部性
但我不确定有什么结论性的答案
是的。有机会。如果您有数据倾斜,这将发生。挑战是优化executors和executor核心,以便获得最大的利用率。Spark还提供了动态资源分配,以确保空闲的执行器被删除。
Spark试图在执行转换时将数据保留在内存中。与map-reduce模型相反,在map-reduce模型中,在每次Map操作之后,它都Spark只有在确保代码在同一台机器上执行的情况下才能将数据保存在内存中。这就是事前配置资源的原因。
我们可以在定义ThreadPoolExecutors的同时提供BlockingQueue实现。但是,如果我使用工厂(Executors)创建一个单线程池,如下所示,我想知道使用的是哪一个阻塞队列。我猜这是一个LinkedBlockingQueue。文档谈到了无界队列,但没有揭示实现。
本文向大家介绍SVM和全部数据有关还是和局部数据有关?相关面试题,主要包含被问及SVM和全部数据有关还是和局部数据有关?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: SVM只和分类界限上的支持向量点有关,换而言之只和局部数据有关。
我正在用Kafka设计一个spark流媒体应用程序。我有以下几个问题:我正在将数据从RDBMS表流式传输到kafka,并使用Spark consumer来使用消息,并使用Spark-SQL进行处理 问题:1。我将数据从表中流式传输到kafka as(键作为表名,值作为JSON记录形式的表数据)——这是正确的体系结构吗? 这种数据库流的架构和设计是否正常,我如何解决转换问题中的转换? 你好Piyus
我试图在K8上运行Spark,并在数据局部性方面有点挣扎。我正在使用原生的spark支持,但只是看了https://databricks.com/session/hdfs-on-kubernetes-lections-learned。我已经按照那里的步骤设置了我的HDFS集群(第一个k8节点上的namenode,使用主机网络)。我想知道是否有人知道对spark驱动程序的修正已经合并到主线spark
我有一个工作,需要访问在HDFS上的拼花地板文件,我想最大限度地减少网络活动。到目前为止,我已经在相同的节点上启动了HDFS Datanodes和Spark Worker,但是当我启动作业时,数据位置总是在任何应该是NODE_LOCAL的地方,因为数据分布在所有节点中。 我是否应该配置任何选项来告诉Spark在数据所在的地方启动任务?