「Hadoop」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「[[zh-CN:」を「[[zh-hans:」に置換)
(カテゴリにApacheを追加)
 
(他の1人の利用者による、間の1版が非表示)
1行目: 1行目:
  +
[[Category:Apache]]
 
[[Category:分散コンピューティング]]
 
[[Category:分散コンピューティング]]
 
{{Related articles start}}
 
{{Related articles start}}
8行目: 9行目:
   
 
== インストール ==
 
== インストール ==
[[Arch User Repository]] の {{AUR|hadoop}} パッケージをインストールしてください。
+
{{AUR|hadoop}} パッケージをインストールしてください。
   
 
== 設定 ==
 
== 設定 ==
50行目: 51行目:
 
{{ic|/etc/hadoop/hadoop-env.sh}} で {{ic|JAVA_HOME}} を設定する必要があります。デフォルトで使用されるディレクトリは Arch Linux でインストールされるディレクトリと異なっているため必須です:
 
{{ic|/etc/hadoop/hadoop-env.sh}} で {{ic|JAVA_HOME}} を設定する必要があります。デフォルトで使用されるディレクトリは Arch Linux でインストールされるディレクトリと異なっているため必須です:
   
{{hc|1=/etc/hadoop/hadoop-env.sh|2=export JAVA_HOME=/usr/lib/jvm/java-7-openjdk/}}
+
{{hc|1=/etc/hadoop/hadoop-env.sh|2=export JAVA_HOME=/usr/lib/jvm/java-8-openjdk/}}
   
 
== シングルノード設定 ==
 
== シングルノード設定 ==
64行目: 65行目:
 
$ mkdir input
 
$ mkdir input
 
$ cp /etc/hadoop/*.xml input
 
$ cp /etc/hadoop/*.xml input
$ hadoop jar /usr/lib/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
+
$ hadoop jar /usr/lib/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar grep input output 'dfs[a-z.]+'
 
$ cat output/*
 
$ cat output/*
   
85行目: 86行目:
 
$ ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
 
$ ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2
 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2
  +
$ chmod 0600 ~/.ssh/authorized_keys
   
 
また、{{ic|/etc/ssh/sshd_config}} の以下の行がコメントアウトされていることを確認してください:
 
また、{{ic|/etc/ssh/sshd_config}} の以下の行がコメントアウトされていることを確認してください:
109行目: 111行目:
   
 
サンプルを実行:
 
サンプルを実行:
$ hadoop jar /usr/lib/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
+
$ hadoop jar /usr/lib/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
   
 
output ファイルを確認:
 
output ファイルを確認:

2023年2月23日 (木) 02:19時点における最新版

関連記事

Apache Hadoop はコモディティハードウェアによる巨大なクラスタ上でアプリケーションを実行するためのフレームワークです。Hadoop フレームワークは透過的にアプリケーションに信頼性とデータモーションを提供します。Hadoop は Map/Reduce という名前の計算パラダイムを実装しています。そこではアプリケーションは多数の小さな欠片に分割して、クラスタ内のノード上でそれぞれを実行・再実行できるようにします。さらに、Hadoop は計算ノード上にデータを保存するための分散ファイルシステム (HDFS) を備えており、クラスタ全体で非常に高い帯域を実現します。MapReduce と Hadoop Distributed File System はどちらもノードでのエラーをフレームワークによって自動的に処理できるように設計されています。

インストール

hadoopAUR パッケージをインストールしてください。

設定

デフォルトで、hadoop は擬似分散操作ができるように設定されています。/etc/profile.d/hadoop.sh には伝統的な hadoop とは異なる値が設定されている環境変数があります。

環境変数 説明 パーミッション
HADOOP_CONF_DIR /etc/hadoop 設定ファイルが保存されるディレクトリ。 読み取り
HADOOP_LOG_DIR /tmp/hadoop/log ログファイルが保存されるディレクトリ。 読み書き
HADOOP_SLAVES /etc/hadoop/slaves リモートスレーブホストが指定されているファイル。 読み取り
HADOOP_PID_DIR /tmp/hadoop/run pid ファイルが保存されるディレクトリ。 読み書き

また、以下のファイルを正しく設定する必要があります。

/etc/hosts
/etc/hostname 
/etc/locale.conf

/etc/hadoop/hadoop-env.shJAVA_HOME を設定する必要があります。デフォルトで使用されるディレクトリは Arch Linux でインストールされるディレクトリと異なっているため必須です:

/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk/

シングルノード設定

ノート: このセクションは Hadoop の公式ドキュメント に基づいています。

スタンドアロン操作

デフォルトでは、Hadoop は単一の Java プロセスで動作するように設定されています。デバッグする場合に有用です。

以下は conf ディレクトリを input としてコピーして使用する例で、正規表現にマッチする文字列を全て出力します。出力は output ディレクトリに書き込まれます。

$ HADOOP_CONF_DIR=/usr/lib/hadoop/orig_etc/hadoop/
$ mkdir input
$ cp /etc/hadoop/*.xml input
$ hadoop jar /usr/lib/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*

擬似分散操作

シングルノードでも Hadoop デーモンを複数の Java プロセスで動作させる擬似分散モードを使うことができます。

デフォルトでは、Hadoop は root ユーザーで実行されます。/etc/conf.d/hadoop でユーザーを変更することができます:

HADOOP_USERNAME="<your user name>"

パスフレーズの要らない ssh の設定

sshd が有効になっていることを確認してください。有効になっていない場合は systemctl enable sshd で有効にします。そしてパスフレーズを入力しなくてもローカルホストに接続できることを確認:

$ ssh localhost

パスフレーズがないとローカルホストに ssh できない場合、以下のコマンドを実行してください:

$ ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2
$ chmod 0600 ~/.ssh/authorized_keys

また、/etc/ssh/sshd_config の以下の行がコメントアウトされていることを確認してください:

/etc/ssh/sshd_config
#AuthorizedKeysFile .ssh/authorized_keys

実行

新しい分散ファイルシステムをフォーマット:

$ hadoop namenode -format

次の hadoop の systemd ユニットを起動してください: hadoop-datanode, hadoop-jobtracker, hadoop-namenode, hadoop-secondarynamenode, hadoop-tasktracker

hadoop デーモンのログ出力は ${HADOOP_LOG_DIR} ディレクトリに書き込まれます (デフォルトでは /var/log/hadoop)。

NameNode と JobTracker のウェブインターフェイスを開いてください。デフォルトでは以下の URL になります:

input ファイルを分散ファイルシステムにコピー:

$ hadoop fs -put /etc/hadoop input

サンプルを実行:

$ hadoop jar /usr/lib/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'

output ファイルを確認:

分散ファイルシステムからローカルファイルシステムに output ファイルをコピーして確認:

$ hadoop fs -get output output
$ cat output/*

または、分散ファイルシステムから output ファイルを確認:

$ hadoop fs -cat output/*

テストが完了したら、以下のコマンドでデーモンを停止します:

# systemctl stop hadoop-datanode
# systemctl stop hadoop-jobtracker
# systemctl stop hadoop-namenode
# systemctl stop hadoop-secondarynamenode
# systemctl stop hadoop-tasktracker