Skip to content

필사 모드: Secured (Kerberized) Hadoop クラスターの構築方法

日本語
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

Overview

Hadoopをインストールすると、デフォルトではセキュリティが適用されていません。Hadoopにセキュリティを適用するには、[Kerberos](https://web.mit.edu/kerberos/)という認証システムを使用する必要があり、その構築はかなり難しい作業であるため、ドキュメントとしてまとめることにしました。

[Secured Hadoop 構築方法 公式ドキュメント](https://hadoop.apache.org/docs/r2.10.2/hadoop-project-dist/hadoop-common/SecureMode.html)を参考に作成しました。

Hadoopクラスターの構築

Kerberosセキュリティを適用する前に、Hadoopクラスターが既に構築されていることを前提とします。また、H/A(高可用性)のために2台のNameNodeと3台のJournalNodeがあることを前提とします。これにはZooKeeperが必要です。

Linuxユーザーの作成

Linuxに`hadoop`グループと`hdfs`アカウントが存在する必要があります。Kerberosを適用するには、そのアカウントでNameNodeやDataNodeを起動する必要があるためです。

Linux上でのディレクトリ作成

NameNodeデータ保存先の`/dfs/nn`、JournalNode保存先の`/dfs/jn`、そしてDataNode保存先の`/dfs/dn`フォルダを事前に作成し、適切な権限を付与しておく必要があります。

Kerberos Principalの作成

Kerberos Serverに`hdfs/{fqdn}@{realm}`と`HTTP/{fqdn}@{realm}`のprincipalを作成し、そのprincipalでログインできるkeytabをダウンロードしておきます。このkeytabでログインするには、`/etc/krb5.conf`ファイルが正しく定義されている必要があります。

jsvcのインストール

secured環境では、DataNodeの実行が最も難しい部分です。jsvcを使用して実行する必要があるためです。

yum install jsvcwhich jsvc

which jsvc

Configurationの修正

以下のconfigurationは、すべてのサーバーで同一である必要があります。

<!-- JournalNode -->

<!-- NameNode -->

<!-- DataNode -->

<!-- Web -->

以下のファイルにあるコメントアウトされた`JSVC_HOME`と`HADOOP_SECURE_DN_USER`の部分をコメント解除します。

`which jsvc`で得られる値をJSVC_HOMEに、HADOOP_SECURE_DN_USERには`hdfs`を設定します。

The jsvc implementation to use. Jsvc is required to run secure datanodes

that bind to privileged ports to provide authentication of data transfer

protocol. Jsvc is not required if SASL is configured for authentication of

data transfer protocol using non-privileged ports.

export JSVC_HOME=/usr/bin

On secure datanodes, user to run the datanode as after dropping privileges.

This **MUST** be uncommented to enable secure HDFS if using privileged ports

to provide authentication of data transfer protocol. This **MUST NOT** be

defined if SASL is configured for authentication of data transfer protocol

using non-privileged ports.

export HADOOP_SECURE_DN_USER=hdfs

JournalNode、NameNode、DataNodeの起動

クラスターの初期構築の場合、以下の手順が必要です。

1. ZooKeeperの起動:`zookeeper/bin/zkServer.sh start`(3台すべて)

2. ZKFCのフォーマット:`hdfs zkfc -formatZK`(1回のみ実行)

3. JournalNodeの起動:`hdfs journalnode`(3台すべて)

4. Active NameNodeのフォーマット:`hdfs namenode -format`(Active NameNodeで1回のみ実行)

5. Active NameNodeの起動:`hdfs namenode`(Active NameNodeで実行)

6. Standby NameNodeのフォーマット:`hdfs namenode -bootstrapStandby`(Standby NameNodeで1回のみ実行)

7. Standby NameNodeの起動:`hdfs namenode`(Standby NameNodeで実行)

8. ZKFCの起動:`hdfs zkfc`(Active、Standby NameNodeがあるノードで実行)

9. DataNodeの起動:`hdfs datanode`(データノードで実行)

注意点として、JournalNode、NameNode、ZKFCはhdfsアカウントで実行し、DataNodeとZooKeeperはrootアカウントで実行する必要があります。

インストールが正常に完了すると、

http://namenode_ip_address:9870 でNameNode Web UIにアクセスできます。

そして、以下のようにsecurityの部分が`on`と表示されている必要があります。

クイズ

Q1: 「Secured (Kerberized) Hadoop クラスターの構築方法」の主なトピックは何ですか?

HadoopにKerberosセキュリティを適用する方法を解説します。

HadoopにKerberosセキュリティを適用する方法を解説します。

記事全体で議論されている実践的な例やパターンを参考にしてください。

현재 단락 (1/36)

Hadoopをインストールすると、デフォルトではセキュリティが適用されていません。Hadoopにセキュリティを適用するには、[Kerberos](https://web.mit.edu/kerbero...

작성 글자: 0원문 글자: 2,775작성 단락: 0/36