Apache spark 3个节点cassandra,其中一个是spark master-用于解决地理空间数据或地理数据

Apache spark 3个节点cassandra,其中一个是spark master-用于解决地理空间数据或地理数据,apache-spark,cassandra,cassandra-2.0,spark-cassandra-connector,Apache Spark,Cassandra,Cassandra 2.0,Spark Cassandra Connector,我正在寻找方向: 我有一个带有经纬度数据的卡桑德拉数据库。我需要搜索半径内的数据或点周围的框坐标。我正在使用golang(gocql)客户端查询Cassandra 我需要一些关于Spark和Cassandra的理解,因为这是一条路要走 以下假设是否正确;我有2个Cassandra节点(数据在2的副本中) 然后我是否应该安装一个额外的节点,并在此节点上安装Spark,然后将其连接到包含数据的其他两个现有Cassandra节点(使用DataStax的Spark连接器) 现有的两个Cassandra节

我正在寻找方向:

我有一个带有经纬度数据的卡桑德拉数据库。我需要搜索半径内的数据或点周围的框坐标。我正在使用golang(gocql)客户端查询Cassandra

我需要一些关于Spark和Cassandra的理解,因为这是一条路要走

以下假设是否正确;我有2个Cassandra节点(数据在2的副本中)

  • 然后我是否应该安装一个额外的节点,并在此节点上安装Spark,然后将其连接到包含数据的其他两个现有Cassandra节点(使用DataStax的Spark连接器)
  • 现有的两个Cassandra节点是否需要安装Spark workers才能使用Spark主节点

  • Spark设置就绪后,您是否查询(Scala)现有数据,然后将数据保存到Spark节点,然后使用gaoling(gocql)客户端进行查询

  • 欢迎指路


    提前感谢

    地理空间搜索是一个非常深入的话题。如果它只是做你想要的搜索(不是批量/分析),我可以告诉你,你可能不想使用Spark。Spark不擅长“搜索”数据——即使是地理空间数据。主要原因是Spark不会为高效搜索的数据编制索引,每次您想要进行搜索时都必须创建作业/上下文(除非使用作业服务器)。当您考虑面向用户的应用程序时间时,这需要花费很长时间

    Solr、Elastic Search和DataStax Enterprise Search(我为DataStax工作的免责声明)都能够对Cassandra数据进行box和radius搜索,并且几乎是实时的

    不过,为了回答您最初的问题,如果您的大部分分析通常来自Cassandra数据,那么最好在与Cassandra相同的节点上运行Spark以获得数据局部性。好的方面是Spark的扩展非常好,所以如果您发现Spark从Cassandra占用了太多的资源,您可以简单地向外扩展(Cassandra和Spark)

    然后我应该安装一个额外的节点并在这个节点上安装Spark吗 将其连接到包含 数据(使用DataStax的火花接头)

    Spark是一个集群计算引擎,因此它需要一个节点集群才能正常工作。如果希望它尽可能高效,您需要在所有节点上安装它

    现有的两个Cassandra节点是否需要Spark Worker 安装在它们上以使用Spark主节点

    我不认为他们“必须”拥有它们,但这对当地人来说是个好主意。academy.datastax.com上有一段非常好的视频,展示了spark cassandra连接器如何将数据从cassandra读取到spark。我想这会为你澄清很多事情:

    Spark设置到位后,您是否查询(Scala)现有的 数据,然后将数据保存到Spark节点,然后进行查询 和高陵(gocql)的客户

    Spark Cassandra接头可与Cassandra和Spark进行通信。例如,有一些方法saveToCassandra(),可以在处理作业时将数据写回Cassandra。然后你可以像平常一样使用你的客户机

    academy.datastax.com上有一些非常好的免费Spark+Cassandra教程。这也是一个很好的起点: