0

我在java中对cassandra运行一个选择查询。它返回读取超时异常。问题是cqlsh中没有产生错误。所以问题出在我猜的代码中。我正在使用flink连接到cassandra .另外我认为问题可能是在cqlsh中我需要点击输入以获得更多结果。也许这就是停止驱动器读取所有结果的原因。另外当我使用限制100时它运行良好。我已经改变了cassandra.yaml 读取配置但没有任何改变。

ClusterBuilder cb = new ClusterBuilder() {
            @Override
            public Cluster buildCluster(Cluster.Builder builder) {
                return builder.withPort(9042).addContactPoint("127.0.0.1")
                        .withSocketOptions(new SocketOptions().setReadTimeoutMillis(60000).setKeepAlive(true).setReuseAddress(true))
                         .withLoadBalancingPolicy(new RoundRobinPolicy())
                        .withReconnectionPolicy(new ConstantReconnectionPolicy(500L))
                        .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.ONE))
                        .build();
            }
        };

        CassandraInputFormat<Tuple1<ProfileAlternative>> cassandraInputFormat = new CassandraInputFormat("SELECT toJson(profilealternative) FROM profiles.profile where skills contains 'Financial Sector'  ", cb);

        cassandraInputFormat.configure(null);
        cassandraInputFormat.open(null);

        Tuple1<ProfileAlternative> testOutputTuple = new Tuple1();

        while (!cassandraInputFormat.reachedEnd()) {
            cassandraInputFormat.nextRecord(testOutputTuple);
            System.out.println(testOutputTuple.f0);
        }

4

0 回答 0