首页 文章

当Spark Read从文件系统进入驱动程序时?

提问于
浏览
0

我想知道当Spark摄取数据时,数据是在驱动程序中被摄取并发送给工作者,Spark是否指示节点从文件系统中读取数据?

我知道在火花流中,使用kafka源,显然,工作节点从kafka读取 . 但是,当从文件系统中读取时,我不确定它是如何工作的 .

情况1

A - 从文件系统读取时假设文件系统是HDFS A.1 - 驱动程序是否读取文件并将数据传输给工作人员或者是否让工作人员读取文件A.2 - 是原始分区根据HDFS的分区方式确定?

案例2

B - 当文件系统是本地文件系统或S3 B.1时 - 分区发生了什么,算法是否会改变我们从HDFS读取或从本地文件系统读取? (在后一种情况下,将依赖于HDFS分区使用特殊算法?B.2 - 工作人员是否参与读取数据,即使数据尚未分区?

如果有人可以帮助澄清一点,那将会有所帮助 . 谢谢

1 回答

  • 1

    对于文件源, driver program 仅读取文件的元数据 .

    驱动程序查看文件元数据 - 检查它是否存在,检查目录中的文件(如果它是目录),并检查它们的大小 . 然后它将任务发送给工作人员,他们实际读取文件内容 . 通信本质上是“你读取这个文件,从这个偏移开始,这个长度 . ”

相关问题