2016-04-14 14 views
0

Önce portun açık olduğundan emin olmak için cloudera impala server sürümü 5.4.7 ile çalışıyorum telnet ile doğrulayın.Cloudera Impala/Hive dışındaki kümeye bağlantı

 Class.forName("org.apache.hive.jdbc.HiveDriver"); 
     DriverManager.setLoginTimeout(30); 
try (java.sql.Connection connection = DriverManager.getConnection("jdbc:hive2://12.23.56.789:123456/someName;auth=noSasl")) 
{ System.out.println("connected");  } 

Ama ben olsun tüm zaman aşımı bu hatadır

bağlamak için başarılı asla:

sorun ne olabilir? i Biz JDBC kullanarak küme dışından sorgulama iyi bir anlaşma yapmak cloudera sürümü

[14 Apr 2016 06:27:26,797] [ERROR] [main] [org.apache.hive.jdbc.HiveConnection] - Error opening session 
org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out 
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:129) 
    at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) 
    at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429) 
    at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318) 
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219) 
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) 
    at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:156) 
    at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:143) 
    at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:475) 
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:181) 
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.datorama.core.service.delivery.providers.DatabaseProvider.main(DatabaseProvider.java:330) 
Caused by: java.net.SocketTimeoutException: Read timed out 
    at java.net.SocketInputStream.socketRead0(Native Method) 
    at java.net.SocketInputStream.socketRead(Unknown Source) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.io.BufferedInputStream.fill(Unknown Source) 
    at java.io.BufferedInputStream.read1(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127) 
    ... 13 more 
Exception in thread "main" java.sql.SQLException: Could not establish connection to jdbc:hive2://54.69.2.250:21050/sage_global;auth=noSasl: java.net.SocketTimeoutException: Read timed out 
    at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:486) 
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:181) 
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.datorama.core.service.delivery.providers.DatabaseProvider.main(DatabaseProvider.java:330) 
Caused by: org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out 
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:129) 
    at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) 
    at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429) 
    at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318) 
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219) 
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) 
    at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:156) 
    at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:143) 
    at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:475) 
    ... 5 more 
Caused by: java.net.SocketTimeoutException: Read timed out 
    at java.net.SocketInputStream.socketRead0(Native Method) 
    at java.net.SocketInputStream.socketRead(Unknown Source) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.io.BufferedInputStream.fill(Unknown Source) 
    at java.io.BufferedInputStream.read1(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127) 
    ... 13 more 

cevap

1

tam olarak aynı kovan sürümünü kullanıyorum. Hive JDBC sürücüsünü kullanmanın mümkün olabileceğine inanmakla birlikte, kesinlikle JDBC bağlantı dizenizde uygun bir bağlantı noktası ayarlamanız gerekecektir, muhtemelen Impala için 21050. Ana makine adınızın (veya IP adresinizin) Impala daemon uygulamasını çalıştıran bir örneğe işaret etmesini sağlamanız gerekir (Hive için bir adenora işaret edebilirsiniz). Tahminim, port numarası yanlıştır, çünkü hata basitçe bir üst bağlantı kurmak için başarısızdır.

Gerekli olmamasına rağmen, Cloudera for Impala tarafından sağlanan özel sürücüyü kullanmaya karar verdik. Ayrıca bir yük dengeleyici kurarız, böylece arayanın belirli bir Impala örneğini seçmesini gerektirmek yerine, sorguları yönlendirecek tek bir sabit adres vardır. Bu aynı zamanda yükü eşit bir şekilde yayıyor ve harici arayanın herhangi bir şeyi değiştirmesi gerekmeden kümede değişiklikler yapalım.

İlgili konular