【问题标题】:Spark Cassandra Connector with java WARN message for ConnectionInitException带有用于 ConnectionInitException 的 java WARN 消息的 Spark Cassandra 连接器
【发布时间】:2020-10-24 19:54:02
【问题描述】:

当我运行 cassandra 作业时,我不断收到 spark 项目的此警告消息

WARN ChannelPool: [s0|/172.17.0.3:9042]  Error while opening new channel (ConnectionInitException: [s0|connecting...] Protocol initialization request, step 1 (STARTUP {CQL_VERSION=3.0.0, DRIVER_NAME=DataStax Java driver for Apache Cassandra(R), DRIVER_VERSION=4.5.0, CLIENT_ID=ef6bf95c-e93f-4f59-860a-829ae07e80cb, APPLICATION_NAME=Spark-Cassandra-Connector-local-1593841648738}): failed to send request (java.nio.channels.ClosedChannelException))

我没有看到任何数据丢失,但我也不确定为什么会发生这种情况

我有 3 个节点的 cassandra docker 在我的电脑上运行

cassandra 版本:- 3.11.6 火花版本:- 2.4.6 java : jdk8

键空间信息:

keyspace_name    durable_writes        replication
mykeyspace          true           {class=org.apache.cassandra.locator.NetworkTopologyStrategy, datacenter1=1, datacenter2=1}

【问题讨论】:

  • 查找 Cassandra 端的错误。例如,您可能没有足够的文件描述符等。
  • 嗨@AlexOtt:现在当我仔细查看上面的消息时,我发现配置的 ip 不是它给出的错误。我没有找到我项目中提到的 ip 的任何条目。不知道它来自哪里!当我将 ES ip 的详细信息从 localhost 更改为任何其他 ip 时,也会发生同样的情况
  • 驱动程序正在连接到一个节点,然后发现整个集群 - 它可能是 Cassandra 节点之一...
  • 也许该 ip 可能是您机器的内部 IP。运行 ipconfig / ifconfig 找出
  • @SuhasNM 这是因为我在另一个系统的 docker 上运行 cassandra,有 3 个节点集群,我的应用程序正在使用系统 ip 连接,这导致了这个问题。

标签: java apache-spark cassandra spark-cassandra-connector


【解决方案1】:

回答我自己的问题!

所以要解决这个问题,我们需要进入 docker 网络,并将您的容器 IP 映射到从 eth0 广播到外部世界。

下面的链接可能会有所帮助

https://docs.docker.com/network/network-tutorial-standalone/

坦率地说,我自己并没有探索过整个 docker 网络,因为在我们的案例中我们已经不使用 docker for Cassandra。

【讨论】:

    猜你喜欢
    • 2020-10-31
    • 2017-07-13
    • 2016-09-14
    • 2018-04-03
    • 2015-09-13
    • 1970-01-01
    • 2016-02-16
    • 2015-08-16
    • 1970-01-01
    相关资源
    最近更新 更多