Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 从MapReduce中的映射器访问数据库_Apache Spark_Parallel Processing_Mapreduce_Spark Streaming_Distributed Computing - Fatal编程技术网

Apache spark 从MapReduce中的映射器访问数据库

Apache spark 从MapReduce中的映射器访问数据库,apache-spark,parallel-processing,mapreduce,spark-streaming,distributed-computing,Apache Spark,Parallel Processing,Mapreduce,Spark Streaming,Distributed Computing,我正在规划我正在开发的下一代分析系统,并考虑使用MapReduce/流处理平台(如Flink,Spark Streaming等)来实现它 为了进行分析,映射程序必须具有DB访问权限 因此,我最担心的是当映射器并行时,连接池中的连接都将被使用,并且可能有一个映射器无法访问数据库 我该怎么处理? 这是我需要关心的事情吗 正如您所指出的,拉式策略将是低效和/或复杂的 您从数据库摄取元数据的策略将由元数据的数量和元数据更改的频率决定。无论哪种方式,在需要元数据时从获取元数据转向在元数据更改时接收更新,都

我正在规划我正在开发的下一代分析系统,并考虑使用
MapReduce
/
流处理
平台(如
Flink
Spark Streaming
等)来实现它

为了进行分析,映射程序必须具有DB访问权限

因此,我最担心的是当映射器并行时,连接池中的连接都将被使用,并且可能有一个映射器无法访问数据库

我该怎么处理?
这是我需要关心的事情吗

正如您所指出的,拉式策略将是低效和/或复杂的

您从数据库摄取元数据的策略将由元数据的数量和元数据更改的频率决定。无论哪种方式,在需要元数据时从获取元数据转向在元数据更改时接收更新,都可能是一种好方法

一些想法:

  • 定期将元数据转储到平面文件到分布式文件系统中
  • 在写入时对管道进行流式元数据更新,以使内存缓存保持最新
  • 使用单独的机制获取元数据,例如Akka Actor/s轮询更改
这将取决于您能够为给定用例进行的权衡


如果DB交互性不可避免,我想知道map reduce样式的框架是否是解决问题的最佳方法。但是任何失败的任务都应该由框架重试。

我来自Spark的背景。我认为你应该避免让你的“映射者”访问数据库,这会导致复杂性,而且在我看来,这不是并行数据分析的最佳方法(至少使用Spark)。您是否正在研究将数据导入分析管道的最佳方式?在计算过程中,您需要DB访问什么?数据摄取?查找?@ImDarrenG,是的,我正在研究将数据输入分析管道的最佳方法。和@LiMuBei,我需要处理来自多个传感器的大量数据,每个样本都需要使用来自DB的元数据进行处理(可能会不时更改,否则我会将来自DB的所有数据缓存在每个映射器中)