Apache spark Spark任务是否在计算前读取整个HDFS块?
我最初认为Spark任务在计算之前读取整个HDFS块,但我发现执行器读取每个应用程序的HDFS速度不同。根据原则,HDFS下载速度应为全网速度的上限,但实际情况并非如此。这取决于这项任务有多容易处理 例如,我的网络上限是100MB/S,但在LogisticRegression中,一个执行器(单核,意味着一次只能处理一个任务),HDFS下载速度只有30MB/S。当我在执行器中添加核数时,HDFS下载速度将相应提高Apache spark Spark任务是否在计算前读取整个HDFS块?,apache-spark,hadoop,hdfs,Apache Spark,Hadoop,Hdfs,我最初认为Spark任务在计算之前读取整个HDFS块,但我发现执行器读取每个应用程序的HDFS速度不同。根据原则,HDFS下载速度应为全网速度的上限,但实际情况并非如此。这取决于这项任务有多容易处理 例如,我的网络上限是100MB/S,但在LogisticRegression中,一个执行器(单核,意味着一次只能处理一个任务),HDFS下载速度只有30MB/S。当我在执行器中添加核数时,HDFS下载速度将相应提高 因此,我认为Spark读取HDFS文件是否类似于流模型,在读取时进行计算。Namen
因此,我认为Spark读取HDFS文件是否类似于流模型,在读取时进行计算。Namenode将从Datanodes获取块位置并将它们返回给客户端,是的。然后客户机(在本例中是Spark)将开始将它们作为流进行处理,并同时获取下一个块,假设文件是可拆分的。当任务进入完成阶段时,将根据您的应用程序逻辑对其结果进行操作。Namenode将从Datanodes获取块位置并将它们返回给客户端,是的。然后客户机(在本例中是Spark)将开始将它们作为流进行处理,并同时获取下一个块,假设文件是可拆分的。当任务进入完成阶段时,将根据应用程序逻辑对其结果进行操作