我有一个使用Java驱动程序连接到Cassandra的应用程序,获取一些配置并根据结果生成并执行一些PIG脚本。
现在,当PIG所需的jar不在类路径中时,我能够成功连接到Cassandra。类似地,当我没有使用java驱动程序连接到Cassandra来检索配置时,我能够使用整个DSE堆栈启动PigServer类并执行脚本/语句。
当我同时使用它们时,我得到以下异常:
org.jboss.netty.channel.ChannelPipelineException: Failed to initialize a pipeline.
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:181)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:570)
... 35 more
Caused by: org.jboss.netty.channel.ChannelPipelineException: Failed to initialize a pipeline.
at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:208)
at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:182)
at com.datastax.driver.core.Connection.<init>(Connection.java:100)
at com.datastax.driver.core.Connection.<init>(Connection.java:51)
at com.datastax.driver.core.Connection$Factory.open(Connection.java:376)
at com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:207)
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:170)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:87)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:576)
at com.datastax.driver.core.Cluster$Manager.access$100(Cluster.java:520)
at com.datastax.driver.core.Cluster.<init>(Cluster.java:67)
at com.datastax.driver.core.Cluster.buildFrom(Cluster.java:94)
at com.datastax.driver.core.Cluster$Builder.build(Cluster.java:501)
我看到其他人看到了类似的异常,但是在尝试执行Cassandra语句时,从MapReduce任务开始,这不是我的情况: https://groups.google.com/a/lists.datastax.com/forum/#!topic/java-driver-user/FhW_8e4FyAI http://www.datastax.com/dev/blog/the-native-cql-java-driver-goes-ga#comment-297187
谢谢!
答案 0 :(得分:0)
DSE堆栈通过thrift API连接到Cassandra,这与Cassandra Java Driver不同。
在解决CASSANDRA-6311之前,您无法使用Cassandra Java驱动程序进行Pig / Hadoop。
答案 1 :(得分:0)
如果您使用证书,可能存在安全证书错误/安全证书过期问题。