1
jshs2이라는 하이브 용 node.js 클라이언트 드라이버를 사용하고 있지만 hiveserver2에 연결하는 동안 연결 문제가 발생했습니다. 무효 상태 128을 찾으려고했지만 운이 없었습니다.HiveServer2 TTransportException : 유효하지 않은 상태 -128
const options = {
\t auth: "NOSASL",
\t host: "my host",
\t port: 10000,
\t timeout: 10000,
\t username: "my username",
password: "my password"
\t hiveType: HS2Util.HIVE_TYPE.CDH,
\t hiveVer: "0.13.1",
\t thriftVer: "0.9.0",
\t cdhVer: "5.3.3"
};
it('test', function() {
\t var configuration = new Configuration(options);
\t var idl = new IDLContainer();
\t var cursor;
\t return idl.initialize(configuration).then(function() {
\t \t var connection = new HiveConnection(configuration, idl);
\t \t return connection.connect();
\t }).then(function(_cursor) {
\t \t cursor = _cursor;
\t \t return cursor.execute(options.query);
\t }).then(function() {
\t \t promise.delay(2000);
\t \t logger.log('info', cursor.getOperationStatus());
\t }).catch(function(error) {
\t \t throw error;
\t });
});
서버 로그 :
java.lang.RuntimeException: org.apache.thrift.transport.TTransportException: Invalid status -128
at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:219)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:227)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.thrift.transport.TTransportException: Invalid status -128
at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:230)
at org.apache.thrift.transport.TSaslTransport.receiveSaslMessage(TSaslTransport.java:184)
at org.apache.thrift.transport.TSaslServerTransport.handleSaslStartMessage(TSaslServerTransport.java:125)
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:262)
at org.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41)
at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216)
... 4 more
예외는 'handleSaslStartMessage'에서 발생합니다. 즉, JDBC 클라이언트는 서버에 대해 인증 할 수있는 방법을 부인하려고 시도하지만 동의가 없습니다. S.O에는 몇 가지 비슷한 질문이 있습니다. (그리고 다른 곳에서) 그 메시지에 관한 것이고 그것은 ** 서버 **에 의해 예상되는 인증 방법을 점검하고 클라이언트가 그것을 사용하는지 확인하기 위해 끝나게됩니다. Cf. http://findingthecomputer.blogspot.fr/2016/09/odbc-with-hive-on-cloudera-causing.html 및 http://stackoverflow.com/questions/30905334/php-hiveserver-2-issues ... –
... 및 http://grokbase.com/t/hive/user/157xvy8ra8/hiveserver-thrift-ttransportexception 등 –