Datastax社区版与星火社区版的集成是使用连接器社区版本节点,还是只为企业版保留?
所谓节点感知,我的意思是如果Spark将作业执行发送给拥有数据的节点
发布于 2022-02-09 16:51:10
是的,星火连接器是节点感知的,并将以这种方式与DSE和(开源)一起工作。
实际上,在SELECT上,它知道如何将分区键散列到令牌,并且只向负责该数据的节点发送特定令牌范围的查询。它可以做到这一点,因为(像Cassandra驱动程序一样)它有一个窗口来了解节点到节点的流言,并且可以看到诸如节点状态(上/下)和令牌范围分配之类的内容。
发布于 2022-03-02 07:48:39
在Spark中,它被称为数据局部性。
只有当Cassandra的JVM和Spark /executor都位于同一个OSI中时,才能实现数据局部性。根据定义,只有在执行处理的执行者与Cassandra节点运行在同一服务器(OSI)上时,数据才能是本地的。
在使用集群的初始接触期间,驱动程序检索有关集群拓扑的信息--可用节点、机架/DC配置、令牌所有权。由于驱动程序知道节点位于何处,因此它将始终尝试连接到同一(本地)数据中心中的“最近”节点。
如果星火工作人员/执行者与Cassandra节点位于同一位置,那么连接器将在可能的情况下处理拥有数据的节点上的星火分区,以减少整个网络中的数据量。
在可能的情况下,有最大限度地提高数据局部性的joinWithCassandraTable()。此外,方法分割星火分区,以便将它们映射到拥有数据的Cassandra副本。
这种功能既适用于开源Cassandra集群,也适用于DataStax企业集群。干杯!
https://stackoverflow.com/questions/71053283
复制相似问题