「Hadoop」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:ウェブサーバー en:Hadoop zh-CN:Hadoop [http://hadoop.apache.org Apache Hadoop] はコモディティハードウェアによる巨大なクラ...」)
 
(カテゴリを同期)
1行目: 1行目:
[[Category:ウェブサーバー]]
+
[[Category:分散コンピュティング]]
 
[[en:Hadoop]]
 
[[en:Hadoop]]
 
[[zh-CN:Hadoop]]
 
[[zh-CN:Hadoop]]

2016年10月15日 (土) 01:01時点における版

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

インストール

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

設定

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

環境変数 説明 パーミッション
HADOOP_CONF_DIR /etc/hadoop Where configuration files are stored. Read
HADOOP_LOG_DIR /tmp/hadoop/log Where log files are stored. Read and Write
HADOOP_SLAVES /etc/hadoop/slaves File naming remote slave hosts. Read
HADOOP_PID_DIR /tmp/hadoop/run Where pid files are stored. Read and Write

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

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

JAVA_HOMEjdk7-openjdk/etc/profile.d/jre.sh によって自動的に設定されているはずです。JAVA_HOME を確認:

$ echo $JAVA_HOME

何も出力されない場合、一度ログアウトしてからログインしなおして下さい。

シングルノード設定

この記事またはセクションは情報が古くなっています。
理由: This section of the article is based on documentation for an earlier version of Hadoop. (Discuss)
ノート: This section is based on the Hadoop Official Documentation

スタンドアロン操作

By default, Hadoop is configured to run in a non-distributed mode, as a single Java process. This is useful for debugging.

The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.

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

For the current 2.5.x release of hadoop included in the AUR:

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

擬似分散操作

Hadoop can also be run on a single-node in a pseudo-distributed mode where each Hadoop daemon runs in a separate Java process.

By default, Hadoop will run as the user root. You can change the user in /etc/conf.d/hadoop:

HADOOP_USERNAME="<your user name>"

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

Make sure you have sshd enabled, or start it with systemctl enable sshd. Now check that you can connect to localhost without a passphrase:

$ ssh localhost

If you cannot ssh to localhost without a passphrase, execute the following commands:

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

Also make sure this line is commented in /etc/ssh/sshd_config

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

実行

Format a new distributed-filesystem:

$ hadoop namenode -format

Start the hadoop daemons:

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

The hadoop daemon log output is written to the ${HADOOP_LOG_DIR} directory (defaults to /var/log/hadoop).

Browse the web interface for the NameNode and the JobTracker; by default they are available at:

Copy the input files into the distributed filesystem:

$ hadoop fs -put /etc/hadoop input

Run some of the examples provided:

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

Examine the output files:

Copy the output files from the distributed filesystem to the local filesytem and examine them:

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

or

View the output files on the distributed filesystem:

$ hadoop fs -cat output/*

When you're done, stop the daemons with:

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