我们正在运行一个multidc cassandra集群,并使用spark在该集群上执行查询(都在kubernetes上运行)。 当我们从单直流转换为多直流时,我们发现查询时间从不到一秒缩短到几秒钟。经过调查,我们发现在Spark驱动程序中,针对不在Spark正在运行的dame dc上的节点执行了反向dns查找。 将远程cassandra节点的ip添加到spark驱动程序节点上的/ etc / hosts时,一切恢复正常。 我们还注意到,本地dc上的所有C *节点都是通过ip和主机名发现的,而远程节点只有ip(因此,通过反向查找来检索主机)。
为什么spark(或cassandra)需要远程节点的主机?我们该如何解决这个问题?将远程主机添加到hosts文件是不可行的,因为可以添加或删除节点,并且我们不能每次都更新spark部署。
谢谢!
P。 S-我们的查询使用本地查询运行,尝试设置spark local dc属性没有帮助。