gpt4 book ai didi

java - 用于Spark提交的本地或远程jar

转载 作者:行者123 更新时间:2023-12-02 20:41:00 25 4
gpt4 key购买 nike

我有一个运行在yarn-client(客户端驱动程序)中的spark-submit作业,除其他功能外,该作业通过Kafka读取和发送消息。

在我的集群上,只有Kafka代理节点具有Kafka jar,并且我不希望所有节点都成为Kafka客户端。这意味着我的Spark作业必须加载(--jar)并将Kafka jar从客户端服务器复制到群集上的所有执行程序。

我的问题是:总体上最佳做法是什么?将这些jar(〜20MB)复制到每个执行器是否会对性能/延迟产生影响?还是这是一种经典的工作方式?

Environment
RHEL7
Spark 1.6
Kafka 0.10.1
Network 10GB

最佳答案

通常,最好的选择是将您的代码放入一个胖子 jar 中,并将所有必要的依赖项 bundle 在一起。

如果发现提交过程太慢,请随时将必要的Kafka Streaming JAR(包括其依赖项)复制到每个YARN NodeManager的SPARK_HOME中。我相信您也可以引用JAR文件的HDFS路径,如果您增加该文件的复制因子,它将摊销网络流量

无论如何,您的所有节点都必须是Kafka客户端。您无法控制Spark在哪里启动执行程序。注意:“安装Kafka”与使Java客户端在服务器上可用不同。

关于java - 用于Spark提交的本地或远程jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com