Apache spark 从分布式文件系统进行Spark读取?
假设我将数据(用户事件)存储在像S3或HDFS这样的分布式文件系统中。用户事件按日期存储在目录中 案例1 考虑到火花作业需要一天读取数据。 我的理解是single spark job将从当天的目录中读取数据,并逐块读取数据,将数据提供给 用于计算的火花簇。逐块读取过程是连续的吗 案例2 考虑到火花工作需要一天以上的数据(比如说2天)。Apache spark 从分布式文件系统进行Spark读取?,apache-spark,amazon-s3,distributed-filesystem,Apache Spark,Amazon S3,Distributed Filesystem,假设我将数据(用户事件)存储在像S3或HDFS这样的分布式文件系统中。用户事件按日期存储在目录中 案例1 考虑到火花作业需要一天读取数据。 我的理解是single spark job将从当天的目录中读取数据,并逐块读取数据,将数据提供给 用于计算的火花簇。逐块读取过程是连续的吗 案例2 考虑到火花工作需要一天以上的数据(比如说2天)。 问题:这里作业必须从两个单独的目录读取数据。我是否需要启动两个单独的spark进程(或线程),以便可以并行执行从单独目录读取的数据?您可以通过在保存数据的同时对数
问题:这里作业必须从两个单独的目录读取数据。我是否需要启动两个单独的spark进程(或线程),以便可以并行执行从单独目录读取的数据?您可以通过在保存数据的同时对数据进行bucketing和分区来实现这一点。也可以使用柱状的拼花文件格式。Spark将应用分区修剪和谓词下推,以减少为查询读取的数据量。将多个执行器与多个分区一起使用将有助于并行处理数据。它的读取方式是否重要?你不能假设是连续的read@Salim我认为这很重要。在并行读取的情况下,数据读取将快得多。请参阅我更新的帖子。您可以通过在保存数据的同时对数据进行bucketing和分区来实现这一点。也可以使用拼花文件格式。Spark将应用分区修剪和谓词下推以减少查询读取的数据量。当您说有多个执行器时,是指同一作业中有两个单独的线程还是总共有两个单独的实例?同时考虑内核和节点。集群将定义有多少执行器可用,以及每个执行器需要多少内核。提交作业时需要n个执行器,根据分配的n个资源量,这n个资源量将以同样快的速度运行代码。使用
--执行器核心总数
。如果你喜欢这个答案,你可以投票并接受它。谢谢你的投票!写回答需要时间当你说提交作业时需要n个执行者时
我相信当用户提交作业时,他必须明确告诉执行者(工人)的数量?是的,在提交作业时提及执行者。在spark standalone cluster上,默认情况下需要所有执行器,所以您无需提及它。但在故事中你需要提到。