(原文)
HueはHiveクエリをサブミットするためのウェブインタフェースを提供しています。HueはHiveクエリをサービスするための独自サーバー、Beeswaxを持っていました。Hue2.5では、より洗練され強力なサービス、Apache HiveServer2がサポートされています。
Beeswax Hiveエディタ
HiveServer2の統合により、HueはSentryの恩恵を得ていることに感謝します。セキュリティが提供されることに加え、Hueのインタフェースはより強固になりました。例えば、データベースやテーブルの権限がないユーザーは、クエリエディタやメタストアアプリでそれらを見ることができなくなります。
HiveServer2もメタストアへの効率的なアクセスを提供します。
この一番上にあるBeeswax Hive UIは、生産性を向上するウェブエディタです:
- 構文のハイライトと自動補完
- いくつかのクエリをサブミットし、後から進捗を確認
- UDFの統合
- 多数のクエリ実行
- クエリの一部分を選択して送信
- クエリ結果のダウンロードと保存
- メタデータを通してナビゲート
ビデオは近日公開します!
Hue 2.x
私たちはHueの最新バージョン(2.5)の使用を推奨しています。 hue.iniのBeeswaxセクションを更新し、HueがHiveServer2を指すようにします。:
[beeswax]
beeswax_server_host=<FQDN of Beeswax server>
server_interface=hiveserver2
beeswax_server_port=10000
Hue 3.x
Hue 3では、もうBeeswaxdをバンドルしておらず、デフォルトでHiveServer2を使うように設定されています。HiveServer2がHueと同じマシンではない場合、hue.iniを下記のように更新します:
[beeswax]
hive_server_host=<FQDN of HiveServer2>
他のHive固有の設定(例:セキュリティ、impersonation:なりすまし)は、ローカルの/etc/hive/conf/hive-site.xmlから読み込みます。私たちは、元のHiveの設定と確実に同期され続ける(あるいは、HueとHiveを同じマシンに配置する)ことを推奨しています。
トラブルシューティング
AuthorizationException: User 'hue/test.com' does not have privileges to execute 'CREATE' on: default.sample_08"
‘hue’ユーザーはSentryで設定されておらず、CREATE tableの権限を持っていません。(以下で説明する)impersonationは、Sentryの場合には素晴らしいということに気づくでしょう。impersonationのユーザー権限(例: ‘bob’)が、’hue’ユーザーの1人の代わりに使用されるようになります。
org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=hive, access=WRITE, inode="/user/test/data":test:supergroup:drwxr-xr-x
デフォルトでHiveServer2は、現在、Hiveのwarehouse(デフォルトで’/user/hive/warehouse’)を所有しており、データファイルは’hive’ユーザーに属している必要があることを意味しています。テーブルの作成時にこのエラーが生じた場合は、データディレクトリ(ここでは/user/test/data)のパーミッションを全員が’書き込める’ようにするか、ユーザーをimpersonateすることを’hive’に許可を与えることで、HiveServer2を古いBeeswaxの振る舞いに戻します。
Hadoopのproxy userとして’hive’を追加し、hive-site.xmlを編集します:
<property> <name>hive.server2.enable.doAs</name> <value>true</value> </property>
その後HiveServer2をリスタートします:
sudo service hive-server2 restart
その他のYARNを使用しているときの一般的なエラー:
Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
これはHADOOP_MAPRED_HOME環境変数が設定されていません:
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
HADOOP_HOMEも間違っています。
TTransportException('Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found',)
Hueにはシステムの SASL lib が欠けています。
HiveServer2は3つの認証モードをサポートしています:
- NOSASL
- NONE (デフォルト)
- KERBEROS
NOSASLのみがSASLを必要としないので、これに切り替えるか足りないパッケージをインストールするかのどちらかです。
まとめ
Hue は非常に使いやすいユーザーインタフェースでHiveクエリを実行するための素晴らしい環境を提供しています。Beeswaxdは素晴らしいサービスでしたが、HiveServer2が好まれており、廃止される可能性があります。HiveServer2はより安定性とセキュリティを提供しています。
追記として、あなたがもっと速いSQLクエリを探しているなら、Impala Editorをテストすることをお勧めします!
ご質問やフィードバックがあれば、hue-user や @gethue.comまでお気軽にお尋ね下さい!