Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 以编程方式访问live Spark节点列表_Apache Spark - Fatal编程技术网

Apache spark 以编程方式访问live Spark节点列表

Apache spark 以编程方式访问live Spark节点列表,apache-spark,Apache Spark,我已经在Spark上实现了一个自定义数据层,它有Spark节点在本地持久化一些数据,并向Spark master宣布它们的数据持久化。通过在我们编写的每个Spark节点和主节点上运行一些自定义代码,这非常有效,但现在我想在集群上实现一个复制协议。我想构建的是,一旦主节点从一个节点收到一条消息,说它是持久化数据,主节点就可以随机选择另外两个节点,让它们持久化相同的数据 我一直在翻文档,但我没有看到SparkContext给我一个活动节点列表的明显方式。我遗漏了什么吗?没有一个公开的API来做这件事

我已经在Spark上实现了一个自定义数据层,它有Spark节点在本地持久化一些数据,并向Spark master宣布它们的数据持久化。通过在我们编写的每个Spark节点和主节点上运行一些自定义代码,这非常有效,但现在我想在集群上实现一个复制协议。我想构建的是,一旦主节点从一个节点收到一条消息,说它是持久化数据,主节点就可以随机选择另外两个节点,让它们持久化相同的数据


我一直在翻文档,但我没有看到SparkContext给我一个活动节点列表的明显方式。我遗漏了什么吗?

没有一个公开的API来做这件事。但是,您可以使用开发者API SparkListener()。您可以创建自定义SparkListener类,并将其添加到SparkContext中

   sc.addSparkListener(yourListener)
当添加或删除BlockManager时,系统将对onBlockManagerAdded和onBlockManagerRemoved进行分类,我相信您可以从BlockManager的ID中获得运行Spark live executors(运行BlockManager)的节点的URL

我同意这有点老套。:)