そのため、2 台のマシンがあり、別のマシンでハイブ サーバーに接続しようとしています。私は単に入る
$hive -h<IP> -p<PORT>
ただし、hadoop をインストールする必要があると表示されます。リモートで接続したいだけです。では、なぜ Hadoop が必要なのでしょうか? これをバイパスする方法はありますか?
そのため、2 台のマシンがあり、別のマシンでハイブ サーバーに接続しようとしています。私は単に入る
$hive -h<IP> -p<PORT>
ただし、hadoop をインストールする必要があると表示されます。リモートで接続したいだけです。では、なぜ Hadoop が必要なのでしょうか? これをバイパスする方法はありますか?
プログラムは、HDFS からの読み取り、map-reduce ジョブの起動などによって機能するため、プログラムにhive
依存しますhadoop
(Hive では、一般的なデータベース サーバーとは異なり、コマンドライン インターフェイスが実際にすべてのクエリ処理を行い、それを基になるサーバーに変換します)。そのため、通常、期待どおりに「Hive サーバー」を実際に実行することはありません。)これは、実際にこのマシンに Hadoop クラスターをインストールする必要があるという意味ではありませんが、 Hadoop クラスターに接続するための基本的なソフトウェア。
これを回避する 1 つの方法は、Hadoop インフラストラクチャを備えたボックスで Hive JDBC/Thrift サーバーを実行することです。つまり、hive
コマンドライン オプションを使用してプログラムを実行し、目的のポートで Hive サーバーとして実行するなどです。そして、好みの JDBC をサポートする SQL クライアントを使用して接続します。これは、典型的な DBMS の一種のデータベース サーバー モデルにより近いものです (ただし、このサーバーを経由しないhive
他の接続の可能性が残されているという点では異なります)。(注: これは、セットアップが少し難しいものでした。以前よりも簡単になったかどうかはわかりません。)
これはおそらく明らかですが、完全を期すために: この制限を回避する別の方法は、 を使用して、Hadoop インフラストラクチャを備えたボックスでssh
実際に実行することです。hive
:-)
新しい Hive CLI では、実際にリモート Thrift サーバーに接続できます。これが機能するには、リモート マシンで Hive サーバーが実行されている必要があります。
ローカル ボックスを Hadoop クラスターの一部にする必要はありません。ただし、Hive が機能するには Hadoop プログラム/jar が必要になる場合があります。標準リポジトリから Hive をインストールする場合は、Hadoop ディストリビューションが含まれている必要があります。