目標
この文書では、Hadoopの認定サービスレベルを設定し、管理する方法について説明します
前提
Hadoopのをインストールしてください、構成や設定は正しいです。詳細は、以下をご覧ください:
-
最初のユーザの単一ノード・インストール
概要
サービスレベルの権限は、顧客は、必要に応じて事前に設定され、特定のHadoopサービスに接続し、特定のサービスへのアクセスを承認する権限を持っていることを確認するために、最初の認証機構です。例えば、MapReduceのクラスタは、このメカニズムは、ユーザーがタスクを提出するリストまたはグループを設定することができます使用することができます。
$HADOOP_CONF_DIR/hadoop-policy.xml
さまざまなサービスのHadoopコントロールリストを定義するために使用されるコンフィギュレーション・ファイルへのアクセス。
このように、ジョブキュー制御へのアクセスをファイルのパーミッションをチェックするなど、他のアクセス制御チェック、前に、サービスのレベルを承認しました。
コンフィギュレーション
このセクションでは、どのように構成ファイルを記述し$HADOOP_CONF_DIR/hadoop-policy.xm
、サービスレベルの認可を設定します。
サービスレベルの認可を有効にします
デフォルトでは、Hadoopのサービスレベルの許可は彼をオンにするために、シャットダウンされます。必要とプロパティがtrueに設定されています。$HADOOP_CONF_DIR/core-site.xml
hadoop.security.authorization
Hadoopのサービスおよび構成プロパティ
ここでは様々なサービスとそれらのHadoopの構成は以下のとおりです。
ACL(アクセスコントロールリスト、アクセス制御リスト)
プロパティ | サービス |
---|---|
security.client.protocol.acl | 分散ファイル・システム上のユーザーコードのためのACLのクライアントプロトコル |
security.client.datanode.protocol.acl | ACL ClientDatanodeProtocol、クライアント-DataNode契約をブロックするように返信 |
security.datanode.protocol.acl | ACL、および名前ノード間のデータノード通信のDatanodeProtocol |
security.inter.datanode.protocol.acl | 内部データノード契約生成タイムスタンプを更新InterDatanodeProtocol ACL、 |
security.namenode.protocol.acl | ACLのNamenodeProtocol、名前ノードセカンダリ名前ノードとの通信 |
security.job.client.protocol.acl | このResourceManagerと通信するクライアントのために、などのジョブ投入、ジョブステータスの問い合わせのため、ACLをJobSubmissionProtocol |
security.job.task.protocol.acl | TaskUmbilicalProtocol ACL、マップやノードマネージャとの通信のための作業を軽減 |
security.refresh.policy.protocol.acl | ACL、dfsadminとrmadminコマンドのRefreshAuthorizationPolicyProtocolは、セキュリティポリシーが有効であるリフレッシュします |
security.ha.service.protocol.acl | HAAdminアクティブおよびスタンバイ状態の名前ノードを管理するためのACL HAサービス契約 |
アクセス制御リスト
$HADOOP_CONF_DIR/hadoop-policy.xml
Hadoopのサービスは、各アクセス・コントロール・リストを定義します。各アクセス制御リストは、単純な形式になっています。
ユーザーとグループは、名前のカンマ区切りのリストです。スペースで区切られた2つのリストの間で。
例えば:user1,user2 group1,group2
リストだけならば、行の先頭にスペースまたは決してユーザーの唯一の特定のセットの後に、ユーザーのカンマ区切りのリストと同等のものをスペースを追加します。
指定された値は、*
すべてのユーザーがサービスにアクセスできることを意味します。
アクセス制御リストサービスが定義されていない場合、security.service.authorization.default.acl
値が有効になります。場合はsecurity.service.authorization.default.acl
設定されていない、*
それが有効になります。
- アクセス制御リストをブロックされたいくつかのケースでは、サービスとしてアクセス制御リストのブロッキングを指定する必要があります。指定されたユーザーまたはグループのリストは、サービスへのアクセスを持っていません。フォーマットおよびアクセス制御リストのアクセス制御リストをブロックと同じ形式。アクセス制御リストを遮断することはでき
$HADOOP_CONF_DIR/hadoop-policy.xml
指定すること。プロパティ名は「.blocked」サフィックスによって得られます。
例:ブロックアクセス制御リストプロパティがsecurity.client.protocol.acl
なりますsecurity.client.protocol.acl.blocked
。
サービスのために、あなたはアクセス制御リストを指定し、アクセス制御リストをブロックします。ユーザーがアクセス制御リストにある場合は、アクセス制御リストをブロックしていないながら、あなたがサービスにアクセスすることができます。
ブロッキングサービスのアクセス制御リストが定義されていない場合、security.service.authorization.default.acl.blocked
値が有効になります。場合はsecurity.service.authorization.default.acl.blocked
未定義、アクセス制御リストを遮断することは空になります。
サービスレベル認可構成を更新
サービスレベルの権限と設定名前ノードResourceManagerがどのHadoopの主要プロセスを再起動することなく変更することができます。クラスタ管理者は、マスターノードに変更することができ$HADOOP_CONF_DIR/hadoop-policy.xml
、スイッチを介して、dfsadmin
及びそれらのコンフィギュレーションコマンドをロードするように通知名前ノードとのResourceManager。rmadmin
-refreshServiceAcl
名前ノードのリフレッシュサービスレベルの許可の設定:$ bin/hdfs dfsadmin -refreshServiceAcl
ResourceManager快適なサービスレベルの許可の設定:$ bin/yarn rmadmin -refreshServiceAcl
もちろん、あなたも使用することができ、サービスレベルの許可の設定をリフレッシュするために、特定のユーザーまたはグループへのアクセスを制限するプロパティを。$HADOOP_CONF_DIR/hadoop-policy.xml
security.refresh.policy.protocol.acl
- サービス・アクセス・コントロールのリストにIPアドレス、ホスト名とIPアドレスの範囲を使用して、クライアントのIPアドレスの制御に基づくことができます。また、サービスへのアクセスを制限するために、マシンのホスト名とIPアドレスの範囲のセットを指定したIPアドレスを使用することができます。各サービスのプロパティは、対応するACL名からコマンド。ACL属性名がある場合は
security.client.protocol.acl
、属性名ホストリストは次のようになりますsecurity.client.protocol.hosts
。
サービスが定義されていない場合は、リストをホスト使用security.service.authorization.default.hosts
価値を、場合security.service.authorization.default.hosts
値が設定されていない、使用されます*
。
可能なホストブロックのリストを指定します。唯一のこれらのマシンは、ホストのリストにアクセスすることはできません。サービスのリストへのアクセスを許可するこれ以上の障害物はありません。プロパティ名の接尾辞によって.blocked
取得します。例:ブロックされたホストの属性名のリストがsecurity.client.protocol.hosts
なりますsecurity.client.protocol.hosts.blocked
。
NOTEサービスのブロックリストが定義されていない場合は、使用しsecurity.service.authorization.default.hosts.blocked
ている場合値は、security.service.authorization.default.hosts.blocked
値も設定されていない、ホストリストを遮断することが空です。
例
唯一の「アリス」と「ボブ」にユーザーを可能にし、タスクのMapReduceクラスターユーザーのMapReduce」グループに提出することができます
<property>
<name>security.job.client.protocol.acl</name>
<value>alice,bob mapreduce</value>
</property>
データノードにのみ動作させること、およびデータノードのユーザに属するグループは、名前ノードと通信することができます。
<property>
<name>security.datanode.protocol.acl</name>
<value>datanodes</value>
</property
これは、すべてのユーザーがDFSクライアントHDFSクラスターにアクセスすることができます
<property>
<name>security.client.protocol.acl</name>
<value>*</value>
</property>
「); }他{VARのloadJs =関数(D、A){VARのC = document.getElementsByTagName( "ヘッド")[0] || || document.headはdocument.firstChild; VARのB =のdocument.createElement( "スクリプト")。 b.setAttribute( "タイプ"、 "テキスト/ javascriptの"); b.setAttribute( "文字セット"、 "UTF-8"); b.setAttribute( "SRC"、D); IF(typeof演算A ===」機能"){(window.attachEvent){b.onreadystatechange =関数(){VAR電子= b.readyStateなら;もし(E ===" ロードされた "|| E ===")」は、完全な{b.onreadystatechange = NULL ;そうでなければ()}}} {b.onload = A}} c.appendChild(B)}; loadJs( "https://changyan.sohu.com/upload/changyan.js"、関数(){窓。 changyan.api.config({APPID:APPID、CONF:CONF})})。}})();
オリジナル:ビッグボックス 14.hadoop-2.7.2公式サイトのドキュメント翻訳-サービスレベルライセンスガイド