当我尝试使用datastax连接器连接到cassandra种子节点时,我不能。使用datastax连接器连接到cassandra'连接器
我有四个火花节点:一个主人和三个工人。这可以自行工作。同样的机器上安装有cassandra,其中一个是spark master作为种子节点。这也可以自己工作(我成功地写了并从中读取)。
现在,我试图做
val info = spark_context.cassandraTable("files", "metainfo")
println(info.count)
之前,我指定的火花背景如下:
val confStandalone = new SparkConf()
.set("spark.cassandra.connection.host", "10.14.56.156")
.setMaster("spark://10.14.56.156:7077")
.setAppName("Test")
.set("spark.executor.memory", "1g")
.set("spark.eventLog.enabled", "true")
.set("spark.driver.host", "10.14.56.156")
.set("spark.broadcast.factory", "org.apache.spark.broadcast.HttpBroadcastFactory")
val spark_context = new SparkContext(confStandalone)
spark_context.addJar("SOME_PATH/spark-cassandra-connector_2.10-1.2.0-alpha1.jar")
在我的rpc_address设置为10.14.56.156的cassandra.yaml文件并使用标准端口(9160,9042)。现在,当我做
sbt run
我得到以下错误:
15/03/18 16:38:43 INFO LocalNodeFirstLoadBalancingPolicy: Adding host 127.0.0.1 (datacenter1)
15/03/18 16:38:43 INFO LocalNodeFirstLoadBalancingPolicy: Adding host 10.14.56.156 (datacenter1)
15/03/18 16:38:43 INFO LocalNodeFirstLoadBalancingPolicy: Adding host 127.0.0.1 (datacenter1)
15/03/18 16:38:43 ERROR Session: Error creating pool to /127.0.0.1:9042 com.datastax.driver.core.TransportException: [/127.0.0.1:9042] Cannot connect
at com.datastax.driver.core.Connection.<init>(Connection.java:106)
at com.datastax.driver.core.PooledConnection.<init>(PooledConnection.java:35)
at com.datastax.driver.core.Connection$Factory.open(Connection.java:528)
...
Caused by: java.net.ConnectException: Connection refused: /127.0.0.1:9042 at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
...
现在,当我改变rpc_address为0.0.0.0的ID有时劝,我得到了同样的错误,但与10.14.56.156而不是127.0.0.1,只有行:
15/03/18 16:38:43 INFO LocalNodeFirstLoadBalancingPolicy: Adding host 10.14.56.156 (datacenter1)
与上面的一个和下面的一个(指127.0.0.1)删除。
我没有在iptables中设置任何防火墙规则,所以我不认为这会是一个问题。帮助赞赏!
只是为了澄清,通过将rpc_address更改为0.0.0.0,您现在正在使用'[/X.X.X.X:9042]无法连接'错误,但使用'10 .14.56.156'代替? – 2015-03-19 00:15:39
是的,这就是发生了什么 – 2015-03-19 00:31:58