web-dev-qa-db-ja.com

beelineがhiveserver2に接続できない

CDH 5.3インスタンスがあります。最初にHive-metastoreを起動し、次にコマンドラインからHive-serverを起動して、Hive-server2を起動します。この後、beelineを使用してHive-server2に接続しますが、接続できないようです。

Could not open connection to jdbc:Hive2://localhost:10000: Java.net.ConnectException: Connection refused (state=08S01,code=0)

別の問題として、Hive-server2がポート10000でリッスンしているかどうかを確認しようとしました。「Sudo netstat -tulpn | grep :10000 "ですが、どのアプリケーションも起動しませんでした。次のプロパティもHive-site.xmlに追加しましたが、役に立ちませんでした。なぜnetstatに表示されないのですか?

<property>
   <name>Hive.server2.thrift.port</name>
   <value>10000</value>
   <description>TCP port number to listen on, default 10000</description>
 </property>

Beelineの接続コマンド:

!connect jdbc:Hive2://localhost:10000 org.Apache.Hive.jdbc.HiveDriver

ユーザー名とパスワードの入力を求められたら、それぞれの値に「user」と「password」のテストを入力すると、エラーがスローされます。助けていただければ幸いです

12
tinus91

さまざまなモードを持つクライアントからビーラインに接続するハイブ。

1。組み込みモード:サーバーとクライアントの両方が同じマシンで実行されます。いいえTCP接続が必要です。

 If Hive.server2.authentication is "NONE" in Hive_HOME/conf/Hive-site.xml then connect beeline with below url

Connection URL:
               !connect jdbc:Hive2://

2。リモートモード:次の認証スキームを使用してクエリを実行する複数のクライアントをサポートします。

認証スキーム:

i.)SASL Authentication:

   If value of "Hive.server2.authentication" property in Hive_HOME/conf/Hive-site.xml to be set as "SASL" then connect Hive beeline with below url

   Beeline URL:
             !connect jdbc:Hive2://<Host>:<port>/<db>

ii.)NOSASL Authentication:
   If "Hive.server2.authentication" is nosasl then connect the beeline like below.
   Beeline URL:

             !connect jdbc:Hive2://<Host>:<port>/<db>;auth=noSasl

これが本当に役立つことを願っています

参照:

https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_dataintegration/content/beeline-vs-Hive-cli.html

11
Mahendra Prabhu

ここでも同じ問題がありました。これは単にhiveserver2が起動に失敗したためです-エラーはコンソールではなく、Hiveログに表示されます。私の場合、Hiveログは/tmp/ubuntu/Hive.logにあります

Hive-server2を開始できなかった理由はさまざまですが、このログファイルを確認することは間違いありません。

2
huang shuming

この場合、hiveserver2サービスは開始されていません。ブローの手順に従って確認および修正してください。手順:1. Hive.logファイルを参照して、「Service:HiveServer2が開始されている」ことを確認します。

1) find / -name Hive.log
2) vim Hive.log
  in Hive.log file ,if you can not find "Service:HiveServer2 is started.",then prove hiveserver2 is not started.

2.start hiveserver2コマンド:./bin/hiveserver2

3. Hive.logを参照してください。「Service:HiveServer2が開始されました」と表示された場合。 Hive.log。その後、hiveserver2をbeelineで接続します。

4.connect hiveserver2 ./bin/beeline!connect jdbc:Hive2:// localhost:10000

5.以下の情報が表示されます。

Beeline version 1.2.1 by Apache Hive
beeline> !connect jdbc:Hive2://localhost:10000
Connecting to jdbc:Hive2://localhost:10000
Enter username for jdbc:Hive2://localhost:10000: root
Enter password for jdbc:Hive2://localhost:10000: ******
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
2
xibeilijp

以下は私のために働いた。初めてHiveをインストールして構成し、beelineから接続しようとした場合は、現在のターミナルで次のコマンドを使用してHiveサービスを開始してください。

 >Hive --service hiverserver2 &

Hiverver2のプロセスIDがコンソールに表示されます。次に、別の端末を使用してbeelineからHiveへの接続を再試行します。

 >beeline -u "jdbc:Hive2://localhost:10000/default" -n <username> -p <password> -d "org.Apache.Hive.jdbc.HiveDriver"
1
Aditya

hiveserver2のユーザー名とパスワードを指定する必要があります。デフォルトでは、ユーザー名(匿名)とパスワード(匿名)でHive-site.xmlを確認してください。

0
ananymous

詳細オプションを確認して、詳細を確認してください...

beeline -u "jdbc:Hive2://localhost:10000/default;user=user;password=*******" --verbose
0
rb1234

Hive2serviceデプロイメントIPを確認してください。

私は同じ問題に遭遇し、Clouderaサーバーip(XXX.42)を使用してHive2サービスに接続します。しかし、実際にはHive thriftサービス(Hive2service)は他のマシン(XXX.41)にデプロイされています。

0
Lorry