E-MapReduce における Ranger ユーザー同期に関するよくある質問とその回答です。
RangerUserSync が Linux/LDAP ユーザーの同期に失敗する
-
原因:この問題は、E-MapReduce バージョン 3.23.0 以前で発生します。
-
解決方法:クラスターの emr-header-1 ノードにログインし、手動で /etc/ecm/ranger-usersync-conf/ranger-ugsync-site.xml ファイルを編集して、ranger.usersync.enabled パラメーターを
trueに設定します。その後、EMR コンソールで RangerUserSync コンポーネントを再起動します。
UNIX ユーザーを Ranger に同期する方法
Ranger は、同一クラスター内で LDAP ユーザーと UNIX ユーザーの両方を同期することはサポートしていません。UNIX ユーザーの同期方法は、ご利用のクラスターに OpenLDAP がデプロイされているかどうかによって異なります。
OpenLDAP を使用しない場合
-
E-MapReduce クラスターのマスターノードで、次のコマンドを実行してユーザーを追加します。
sudo adduser <username> -
EMR コンソールで Ranger サービスに移動し、Status タブの Components リストから RangerUserSync を見つけ、[操作] 列の 再起動 をクリックします。
-
同期結果を確認します。
-
Ranger Web UI にログインします。詳細については、「オープンソースコンポーネントの Web UI へのアクセス」をご参照ください。
-
を選択します。
-
ユーザー タブで、新しく追加した UNIX ユーザーが表示されていることを確認します。
たとえば、ステップ 1 で作成した
testユーザーが表示されます。
-
OpenLDAP を使用する場合
ご利用のクラスターに OpenLDAP がデプロイされている場合、Ranger はデフォルトで LDAP ユーザーを同期します。UNIX ユーザー同期に切り替えるには、次の Ranger パラメーターを変更します。
-
E-MapReduce クラスターのマスターノードで、次のコマンドを実行してユーザーを追加します。
sudo adduser <username> -
EMR コンソールで Ranger サービスに移動し、Configure タブで次のパラメーターを検索して変更します。
-
ranger.usersync.sync.sourceパラメーターをunixに設定します。 -
ranger.usersync.source.impl.classパラメーターをorg.apache.ranger.unixusersync.process.UnixUserGroupBuilderに設定します。
-
-
コンソールの指示に従って構成を保存し、Ranger サービスを再起動します。サービスの再起動後、UNIX ユーザーが自動的に同期されます。
-
同期結果を確認します。
-
Ranger Web UI にログインします。詳細については、「オープンソースコンポーネントの Web UI へのアクセス」をご参照ください。
-
を選択します。
-
ユーザー タブで、新しく追加した UNIX ユーザーが表示されていることを確認します。
たとえば、ステップ 1 で作成した
testユーザーが表示されます。
-
EMR で Hive on Spark ジョブが多数の小規模ファイルにより長時間かかる場合はどうすればよいですか?
OSS に大量の小規模ファイルが存在する場合、OSS に対する Ranger 権限付与チェックがレイテンシーを大幅に増加させ、HiveServer2 のパフォーマンスに影響を与えます。
解決方法 1:Ranger OSS 権限付与を無効化する
-
EMR コンソールにログインし、クラスター詳細ページに移動します。
-
クラスターサービス タブで、
Ranger-pluginサービスを見つけます。 -
Ranger-pluginサービスの Status タブをクリックし、サービス概要 セクションに移動します。 -
サービス概要 セクションで、
enableOSSスイッチをオフにします。 -
HiveServer2や SparkThriftServerなどの常駐コンポーネントを再起動します。
解決方法 2:Hive 小規模ファイルマージパラメーターを最適化する
Hive サービスの構成で、次のパラメーターを設定します。
-
hive.merge.mapfiles=true(Map ステージでの小規模ファイルマージを有効化) -
hive.merge.mapredfiles=true(Reduce ステージでの小規模ファイルマージを有効化) -
hive.merge.size.per.task=256000000(マージ後のターゲットファイルサイズ)