Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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和100000 K连续HTTP调用:驱动程序与工作者_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark Spark和100000 K连续HTTP调用:驱动程序与工作者

Apache spark Spark和100000 K连续HTTP调用:驱动程序与工作者,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我必须使用Spark执行100000个连续HTTP请求。我必须将响应存储到S3中。我说的是顺序,因为每个请求返回大约50KB的数据,为了不超过API速率限制,我必须保持1秒 在哪里进行HTTP调用:从驱动程序/主节点上执行的Spark作业代码,还是从工作节点上执行的数据集转换 工作区 在驱动程序/主节点上从我的Spark作业发出HTTP请求,创建每个HTTP响应的数据集,每个数据集包含5000个json项,并在Spark的帮助下将每个数据集保存到S3。保存数据集后,无需保留该数据集 从所有100

我必须使用Spark执行100000个连续HTTP请求。我必须将响应存储到S3中。我说的是顺序,因为每个请求返回大约50KB的数据,为了不超过API速率限制,我必须保持1秒

在哪里进行HTTP调用:从驱动程序/主节点上执行的Spark作业代码,还是从工作节点上执行的数据集转换

工作区 在驱动程序/主节点上从我的Spark作业发出HTTP请求,创建每个HTTP响应的数据集,每个数据集包含5000个json项,并在Spark的帮助下将每个数据集保存到S3。保存数据集后,无需保留该数据集 从所有100000个URL创建数据集将所有进一步的计算移动到Worker,在map或mapPartition中发出HTTP请求,将单个数据集保存到S3。 第一种选择 它更简单,它代表了我计算的一种性质——它们是连续的,因为有1秒的延迟。但是:

从驱动程序/主节点进行100000次HTTP调用是否不好? *创建/保存一个100_000*5_000数据集是否比创建/保存大小为5_000的100_000小数据集更高效* 每次我从HTTP响应创建数据集时,我都会将响应移动到worker,然后将其保存到S3,对吗?双重洗牌比。。。 第二种选择 实际上,它不会从并行处理中受益,因为您必须保持1秒的时间间隔,因为请求。唯一的好处是移动计算,即使它们对驱动程序来说不是太难。但是:

把计算转移给工人值得吗? 在转换内部调用API是个好主意吗?
保存文件无需担心-告诉我们您完成后的工作情况!