Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何应用';的工作被分发到ApacheSpark中的工作节点上_Apache Spark_Distributed Computing_Worker - Fatal编程技术网

Apache spark 如何应用';的工作被分发到ApacheSpark中的工作节点上

Apache spark 如何应用';的工作被分发到ApacheSpark中的工作节点上,apache-spark,distributed-computing,worker,Apache Spark,Distributed Computing,Worker,我有一个应用程序,它读取一个文件,进行一些计算,并在驱动程序机器中生成输出文件。现在,当我在机器a上用一个从机运行它时,需要6分钟。若我在机器B上再添加一个从机到同一个集群并运行驱动程序,则需要13分钟(几乎并没有找到到主机B的路由)。我相信这是由于网络延迟造成的。最少有2名员工的时间始终高于1名员工。我认为,应用程序的工作不是以分布式方式执行的。两个奴隶都在独立完成全部工作。两个从机作为一个整体读取输入文件,创建RDD并发送到驱动程序进行输出。我想知道ApacheSpark的分布式计算在哪里?

我有一个应用程序,它读取一个文件,进行一些计算,并在驱动程序机器中生成输出文件。现在,当我在机器a上用一个从机运行它时,需要6分钟。若我在机器B上再添加一个从机到同一个集群并运行驱动程序,则需要13分钟(几乎并没有找到到主机B的路由)。我相信这是由于网络延迟造成的。最少有2名员工的时间始终高于1名员工。我认为,应用程序的工作不是以分布式方式执行的。两个奴隶都在独立完成全部工作。两个从机作为一个整体读取输入文件,创建RDD并发送到驱动程序进行输出。我想知道ApacheSpark的分布式计算在哪里? 我有一个很小的字数计算程序,它只进行计算,不涉及文件I/O。如果我用一个包含多个工作节点的大文件运行这个程序,我会看到执行时间随着工作节点的增加而减少。 我想知道的是,每个工作人员都读取完整文件并创建RDD,而程序中没有分布式工作

多谢


--使用各种辅助节点编辑PFA屏幕截图。相应的彩色矩形显示执行输出。我想知道为什么增加更多的工人会延迟执行时间。我在日志中没有看到到主机的路由异常,但为什么在我删除任何一个工作进程时它都没有出现呢。有什么建议吗?--提前谢谢

您获取了一个小数据集,将其放在一个非分布式的文件系统上,并通过一个设计用于运行数百个节点的引擎运行该数据集-会出现什么问题


在许多计算机上协调过程需要大量的协调,来回发送数据,序列化和反序列化等。如果您无法以任何其他方式运行解决方案,则开销是可以接受的,但如果您在较小的设备上运行,则开销比解决问题所需的时间对您的影响更大

我没有像HDFS这样的共享文件系统。所以我将输入文件复制到给定位置的每个工作节点。或者,如果我给出file:/tmp/loan.txt,那么master会将文件复制到工人的两个工作目录。对于文本文件,执行者将只读取由驱动程序分配给它的部分文件。他们不会阅读整个文件。嗨,阿农,谢谢你的回复。这不是一个小数据集。事实上,输入文件有1.5米记录。但我不清楚的是,两个工人是否都在充分阅读输入文件?我的印象是master在工作人员之间分发数据,然后计算并返回这些数据。如果两个工作人员都在完全读取文件,如何强制工作人员以分布式方式读取文件?sc.textFile(“file”,4)会有帮助吗?我使用的是sc.textFile(“文件”),这就是为什么两个工作节点都在读取完整文件的原因吗?我尝试对4 sc.textFile(“文件”,4)进行分区,但这无助于提高添加工作节点时的性能。