Amazon EMR で Spark SQL Java Database Connectivity (JDBC) 接続をセットアップしたいと考えています。
解決策
注: 以下の手順では、ローカルマシン上の SQL クライアント用 SQuirreL SQL クライアントを使用します。
Amazon EMR で Spark SQL JDBC 接続をセットアップするには、次の手順を実行してください。
-
SQuirreL SQL クライアントをダウンロードしてインストールします。詳細については、SQuirreL SQL のウェブサイトで「ダウンロードとインストール」を参照してください。
-
Amazon EMR プライマリノードに接続するには、SSH を使用します。
-
Spark Thrift Serverを起動するには、プライマリノードで次のコマンドを実行します。
sudo /usr/lib/spark/sbin/start-thriftserver.sh
-
プライマリノードで、/usr/lib/spark/jars ディレクトリからすべての .jar ファイルをローカルマシンにコピーします。
-
SQuirreL SQL クライアントを開き、次のように新しいドライバーを作成します。
[名前] に Spark JDBC Driver と入力します。
[URL の例] に jdbc:hive2://localhost:10001 と入力します。
-
[JDBC ドライバークラスパス] タブで、[追加] を選択します。
-
ダイアログボックスで、先ほど .jar ファイルをコピーした先のディレクトリに移動し、すべてのファイルを選択します。
-
[クラス名] フィールドに org.apache.hive.jdbc.HiveDriver と入力し、**[OK]**をクリックします。
-
SSH トンネルを設定するには、ローカルマシンでローカルポート転送を使用します。
ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10001:localhost:10001 hadoop@example-primary-public-dns
注: example-primary-public-dns は、お使いのプライマリパブリック DNS 名に置き換えます。
-
Spark Thrift サーバーに接続するには、以下のように SQuirreL SQL クライアントで新しいエイリアスを作成します。
[名前] に Spark JDBC と入力します。
[ドライバー に Spark JDBC Driver と入力します。
[URL] に jdbc:hive2://localhost:10001 と入力します。
[ユーザー名] に hadoop と入力します。
注: これで、SQuirreL SQL クライアントからクエリを実行できます。