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」のテストを入力すると、エラーがスローされます。助けていただければ幸いです
さまざまなモードを持つクライアントからビーラインに接続するハイブ。
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
これが本当に役立つことを願っています
参照:
ここでも同じ問題がありました。これは単にhiveserver2
が起動に失敗したためです-エラーはコンソールではなく、Hiveログに表示されます。私の場合、Hiveログは/tmp/ubuntu/Hive.log
にあります
Hive-server2
を開始できなかった理由はさまざまですが、このログファイルを確認することは間違いありません。
この場合、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
以下は私のために働いた。初めて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"
hiveserver2のユーザー名とパスワードを指定する必要があります。デフォルトでは、ユーザー名(匿名)とパスワード(匿名)でHive-site.xmlを確認してください。
詳細オプションを確認して、詳細を確認してください...
beeline -u "jdbc:Hive2://localhost:10000/default;user=user;password=*******" --verbose
Hive2serviceデプロイメントIPを確認してください。
私は同じ問題に遭遇し、Clouderaサーバーip(XXX.42)を使用してHive2サービスに接続します。しかし、実際にはHive thriftサービス(Hive2service)は他のマシン(XXX.41)にデプロイされています。