Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/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 从分布式文件系统进行Spark读取?_Apache Spark_Amazon S3_Distributed Filesystem - Fatal编程技术网

Apache spark 从分布式文件系统进行Spark读取?

Apache spark 从分布式文件系统进行Spark读取?,apache-spark,amazon-s3,distributed-filesystem,Apache Spark,Amazon S3,Distributed Filesystem,假设我将数据(用户事件)存储在像S3或HDFS这样的分布式文件系统中。用户事件按日期存储在目录中 案例1 考虑到火花作业需要一天读取数据。 我的理解是single spark job将从当天的目录中读取数据,并逐块读取数据,将数据提供给 用于计算的火花簇。逐块读取过程是连续的吗 案例2 考虑到火花工作需要一天以上的数据(比如说2天)。 问题:这里作业必须从两个单独的目录读取数据。我是否需要启动两个单独的spark进程(或线程),以便可以并行执行从单独目录读取的数据?您可以通过在保存数据的同时对数

假设我将数据(用户事件)存储在像S3或HDFS这样的分布式文件系统中。用户事件按日期存储在目录中

案例1 考虑到火花作业需要一天读取数据。 我的理解是single spark job将从当天的目录中读取数据,并逐块读取数据,将数据提供给 用于计算的火花簇。逐块读取过程是连续的吗

案例2 考虑到火花工作需要一天以上的数据(比如说2天)。
问题:这里作业必须从两个单独的目录读取数据。我是否需要启动两个单独的spark进程(或线程),以便可以并行执行从单独目录读取的数据?

您可以通过在保存数据的同时对数据进行bucketing和分区来实现这一点。也可以使用柱状的拼花文件格式。Spark将应用分区修剪和谓词下推,以减少为查询读取的数据量。将多个执行器与多个分区一起使用将有助于并行处理数据。

它的读取方式是否重要?你不能假设是连续的read@Salim我认为这很重要。在并行读取的情况下,数据读取将快得多。请参阅我更新的帖子。您可以通过在保存数据的同时对数据进行bucketing和分区来实现这一点。也可以使用拼花文件格式。Spark将应用分区修剪和谓词下推以减少查询读取的数据量。当您说有多个执行器时,是指同一作业中有两个单独的线程还是总共有两个单独的实例?同时考虑内核和节点。集群将定义有多少执行器可用,以及每个执行器需要多少内核。提交作业时需要n个执行器,根据分配的n个资源量,这n个资源量将以同样快的速度运行代码。使用
--执行器核心总数
。如果你喜欢这个答案,你可以投票并接受它。谢谢你的投票!写回答需要时间当你说
提交作业时需要n个执行者时
我相信当用户提交作业时,他必须明确告诉执行者(工人)的数量?是的,在提交作业时提及执行者。在spark standalone cluster上,默认情况下需要所有执行器,所以您无需提及它。但在故事中你需要提到。