Presto: Cassandra collector SELECT error

Created on 26 Dec 2016  路  3Comments  路  Source: prestodb/presto

I've defined the Cassandra catalog like this and Cassandra is running on the default port:

connector.name=cassandra
cassandra.contact-points=localhost

In Presto-Cli when I type the command DESCRIBE it works fine but my SELECT command fails because of Thrift connection refused error.

presto:cmf> DESCRIBE stats;

Column | Type | Extra | Comment
----------------+---------+-------+---------
username | varchar | |
a | bigint | |
b | bigint | |
c | bigint | |
d | bigint | |
e | bigint | |
(6 rows)

presto:cmf> SELECT * FROM stats;
Query 20161226_083409_00044_2cdmr failed: java.io.IOException: Unable to connect to server localhost:9160

Trace:
java.lang.RuntimeException: java.io.IOException: Unable to connect to server localhost:9160 at com.facebook.presto.cassandra.CassandraThriftConnectionFactory.create(CassandraThriftConnectionFactory.java:56) at com.facebook.presto.cassandra.CassandraThriftClient.getRangeMap(CassandraThriftClient.java:38) at com.facebook.presto.cassandra.CassandraTokenSplitManager.getSplits(CassandraTokenSplitManager.java:65) at com.facebook.presto.cassandra.CassandraSplitManager.getSplitsByTokenRange(CassandraSplitManager.java:99) at com.facebook.presto.cassandra.CassandraSplitManager.getSplits(CassandraSplitManager.java:82) at com.facebook.presto.split.SplitManager.getSplits(SplitManager.java:63) at com.facebook.presto.sql.planner.DistributedExecutionPlanner$Visitor.visitTableScan(DistributedExecutionPlanner.java:113) at com.facebook.presto.sql.planner.DistributedExecutionPlanner$Visitor.visitTableScan(DistributedExecutionPlanner.java:93) at com.facebook.presto.sql.planner.plan.TableScanNode.accept(TableScanNode.java:135) at com.facebook.presto.sql.planner.DistributedExecutionPlanner.plan(DistributedExecutionPlanner.java:79) at com.facebook.presto.sql.planner.DistributedExecutionPlanner.plan(DistributedExecutionPlanner.java:84) at com.facebook.presto.execution.SqlQueryExecution.planDistribution(SqlQueryExecution.java:319) at com.facebook.presto.execution.SqlQueryExecution.start(SqlQueryExecution.java:232) at com.facebook.presto.execution.QueuedExecution.lambda$start$1(QueuedExecution.java:62) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.IOException: Unable to connect to server localhost:9160 at com.facebook.presto.cassandra.CassandraThriftConnectionFactory.createConnection(CassandraThriftConnectionFactory.java:88) at com.facebook.presto.cassandra.CassandraThriftConnectionFactory.getClientFromAddressList(CassandraThriftConnectionFactory.java:68) at com.facebook.presto.cassandra.CassandraThriftConnectionFactory.create(CassandraThriftConnectionFactory.java:53) ... 16 more Caused by: org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused (Connection refused) at org.apache.thrift.transport.TSocket.open(TSocket.java:185) at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81) at org.apache.cassandra.thrift.TFramedTransportFactory.openTransport(TFramedTransportFactory.java:41) at com.facebook.presto.cassandra.CassandraThriftConnectionFactory.createConnection(CassandraThriftConnectionFactory.java:84) ... 18 more Caused by: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.thrift.transport.TSocket.open(TSocket.java:180) ... 21 more

Most helpful comment

you need to enable Cassandra Thrift server first, e.g. after run 'cassandra -f', run 'nodetool enablethrift'

All 3 comments

you need to enable Cassandra Thrift server first, e.g. after run 'cassandra -f', run 'nodetool enablethrift'

Also, we have a PR that's almost ready to be merged that removes the Thrift client: https://github.com/prestodb/presto/pull/7013. We're still running some final tests on it, but it should be in soon.

@delding @cawallin Thank you. Even though I finally found the solution, I guess it would be a good idea to mention it somewhere in the docs that it needs to be enabled.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tesseract2048 picture tesseract2048  路  3Comments

rajeshd3v picture rajeshd3v  路  3Comments

haozhun picture haozhun  路  4Comments

shigechuanqi picture shigechuanqi  路  3Comments

dterror-zz picture dterror-zz  路  4Comments