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 apachespark中的可写共享内存_Apache Spark_Spark Streaming - Fatal编程技术网

Apache spark apachespark中的可写共享内存

Apache spark apachespark中的可写共享内存,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我正在从事一个Twitter数据分析项目,该项目使用ApacheSpark和NoSQL数据库的Java和Cassandra 在我正在工作的项目中,我希望维护linkedlist的arraylist(将使用Java内置的arraylist和linkedlist),这对于所有映射器节点都是通用的。我的意思是,如果一个映射器将一些数据写入arraylist,它应该反映到所有其他映射器节点 我知道广播共享变量,但这是只读共享变量,我想要的是共享可写数据帧,其中一个映射器的更改应该反映在所有映射器中 任何

我正在从事一个Twitter数据分析项目,该项目使用ApacheSpark和NoSQL数据库的Java和Cassandra

在我正在工作的项目中,我希望维护linkedlist的arraylist(将使用Java内置的arraylist和linkedlist),这对于所有映射器节点都是通用的。我的意思是,如果一个映射器将一些数据写入arraylist,它应该反映到所有其他映射器节点

我知道广播共享变量,但这是只读共享变量,我想要的是共享可写数据帧,其中一个映射器的更改应该反映在所有映射器中

任何关于如何用Java在ApacheSpark中实现这一点的建议都将非常有帮助


提前感谢

简而言之,很可能令人失望,答案是鉴于Spark架构,这是不可能的。工作节点彼此不通信,广播变量和累加器(仅写变量)都不是真正的共享变量。您可以尝试不同的解决方法,如使用外部服务或共享文件系统进行通信,但它会引入各种问题,如幂等性或同步


据我所知,你能得到的最好的东西就是在批之间更新状态,或者使用类似于
StreamingContext的工具。记住

谢谢你的回复。我将尝试你的建议,并在完成后进行更新。我不确定这种设计是否真的适合Spark的分布式计算模型,毕竟你要求的是跨计算机集群的共享内存。