2017-11-16 4 views
0

この質問は一般的ですが、いくつかの味があります。このシナリオでは、Pythonから動作している認証なし(NOSASL)のHiveServer2をセットアップします。ここでは、Impylaライブラリを使用して接続しています。 ビーラインを使用して接続すると、正常に動作する接続を確立する方法がありません。NOSASL認証モード(古いクライアント)でHiveServe2にBeelineを接続できません

ビーラインはで終わる:HiveServer2ログで

beeline> !connect jdbc:hive2://127.0.0.1:10000/default/hive 
Error: Could not open client transport with JDBC Uri: jdbc:hive2://127.0.0.1:10000/default/hive: null (state=08S01,code=0) 

私が持っている:

17/11/16 20:59:35 [HiveServer2-Handler-Pool: Thread-34]: ERROR server.TThreadPoolServer: Thrift error occurred during processing of message. 
org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client? 
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:228) 
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27) 
    at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56) 
    at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
    at java.lang.Thread.run(Thread.java:748) 

任意のアイデアは?

答えて

1

最後に、解決策が見つかりました。

!connect jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl 

これを使用して、HiveServer2に接続できます。 また、開発用にHiveServer2を使用していますので、rootでプロセスを開始し、すべてのファイルシステムツリーがrootに属しています。ビーラインを使用してHiveServer2にログインするときにより、このオプションには、私は、rootユーザーを使用する必要があります。認証が全くありませんので、

Connecting to jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl 
Enter username for jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl: root 
Enter password for jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl: 
Connected to: Apache Hive (version 1.2.2) 

私はパスワードを入力する必要はありませんでした。今、私はデータベースとテーブルを作成することができます。

この「​Comparing Beeline to the Hive CLI」は、この問題を解決するための有効なリファレンスです。

関連する問題