分布式文件存储(hdfs/cassandra/s3等)是spark在集群模式下运行所必需的吗?如果是,为什么?
spark是一种用于计算海量数据的分布式数据处理引擎。假设我在mysql中存储了大量的数据,我想对这些数据进行处理。spark从mysql读取数据,并在集群节点本身上执行内存(或磁盘)计算。我仍然不明白为什么分布式文件存储需要在集群模式下运行spark?
分布式文件存储(hdfs/cassandra/s3等)是spark在集群模式下运行所必需的吗?如果是,为什么?
spark是一种用于计算海量数据的分布式数据处理引擎。假设我在mysql中存储了大量的数据,我想对这些数据进行处理。spark从mysql读取数据,并在集群节点本身上执行内存(或磁盘)计算。我仍然不明白为什么分布式文件存储需要在集群模式下运行spark?
1条答案
按热度按时间lndjwyie1#
分布式文件存储(hdfs/cassandra/s3等)是spark在集群模式下运行所必需的吗?
差不多
如果是,为什么?
因为spark工作者从一个共享表中获取输入,在他们之间分配计算,然后由spark驱动程序编排,将他们的数据写回另一个共享表。
如果您试图以独占方式使用mysql,那么您可以使用本地文件系统(“file://”)作为集群fs。但是,如果spark查询中的任何rdd或stage确实尝试使用共享文件系统作为提交工作的方式,那么输出不会从worker(已写入其本地文件系统)和spark驱动程序(只能读取其本地文件系统)传播