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 });
});
Serverログ:
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など –