ubuntu14.04(linux)に巷で話題のApache Hadoop2.2をインストールします。
最近物忘れがひどくなったので備忘録風にて書き留めますが、実際にインストールした内容をなるべく忠実に再現してあります(たぶん)参考になれば幸いです。
ターゲットマシンは、下記のスペックでMacBook Air(通称:CPUの付いた巨大USBマシン)です。
- PC:MacBook Air (Intel Core i7 1.8Ghz) メモリ4GB
- Ubuntu 14.04(VM使用 OS X 10.9.4)
- java 1.6以上を推奨
※上記の設定で気づかれた方、マシンは64bitですが32bit版のubuntuをインストールしています。 よって、javaVMも32bitを使用しています。
- 前提条件・共通
Ubuntu14.04のインストールは割愛させていただきます。
コマンドプロンプトは([yamac@yamac-vm:~]$ など)、小生の環境です。
javaVMは、32ビット版(1.7.0_65)を使用しています。
- javaインストール
下記のコマンドにて確認することが出来ます。
java -version
java version "1.7.0_65" OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.14.04.1) OpenJDK Client VM (build 24.65-b04, mixed mode, sharing)
rootにてログインしておこなって下さい。
apt-get install -y openjdk-7-jdk
- hadoopグループ、hduserユーザーの追加
作法ですが、hadoopは別ユーザーで動かすことをお勧めします。
addgroup hadoop
hadoopグループを登録します。
adduser –ingroup hadoop hduser
先のhadoopグループにhduserを追加します。
※途中、パスワードを聞かれます。入力してください。また、標準設定値は、そのままリターンで構いません。 最後に[Y]入力して下さい。
adduser hduser sudo
特定コマンドを実行を許す為に、hduserにsudoの権限を与えておきます。
以上でユーザー設定は完了です。
- sshの設定
ローカルに、hduserがパス無しでssh接続できるように設定をします。
sshがインストールされていない場合は、sshをインストールします。
apt-get install -y ssh
ユーザーをhduserに変更(以後、この状態で作業を行います)
su – hduser
ssh-keygenでパス無しのキーを作成
ssh-keygen -t rsa -P ”
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 .ssh/authorized_keys
hduser@localhost:~$ ssh-keygen -t rsa -P "" Generating public/private rsa key pair. Enter file in which to save the key (/home/hduser/.ssh/id_rsa): Created directory '/home/hduser/.ssh'. Your identification has been saved in /home/hduser/.ssh/id_rsa. Your public key has been saved in /home/hduser/.ssh/id_rsa.pub. The key fingerprint is: 48:c5:e7:6d:ba:fc:a4:26:26:7c:55:7d:96:33:ce:e1 hduser@localhost The key's randomart image is: +--[ RSA 2048]----+ | .. | +-----------------+ hduser@localhost:~$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys hduser@localhost:~$ chmod 600 .ssh/authorized_keys
sshでlocslhostに接続できることを確認します。
初回接続のみ「yes」と入力する必要があります。
ssh localhost
一回「yes」としておけば、次回から何も入力せずにssh接続出来ます。
ssh localhost
ssh localhost hduser@localhost's password: Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-37-generic i686) * Documentation: https://help.ubuntu.com/ 0 packages can be updated. 0 updates are security updates. Last login: Mon Oct 27 18:06:52 2014 from localhost
以上、した準備完了です。
- hadoop2.2のダウンロード
http://www.apache.org/dyn/closer.cgi/hadoop/core/
上記サイトを確認し近い場所よりダウンロードします。
作業は、引き続きhduserにて行います。
今回ダウンロードするファイルは、「hadoop-2.2.0.tar.gz」です。
/usr/local/srcに移動してファイルをダウンロードします。
展開して出来たhadoop-2.2.0を/usr/local/hadoopに移動します。
[crayon-53ffe0874b20c652492613/]
/usr/local/hadoopの所有者をhduserにセットします。
[crayon-53ffe0874b210103062729/]
- Hadoop用環境変数の設定
Hadoopの起動に必要な環境変数の設定を行います。
~/bashrcの設定
vim ~/.bashrc(vimを使用しました viでも同じです)
ファイルの末尾に下記の項目を追加します。
#Hadoop variables export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ export HADOOP_INSTALL=/usr/local/hadoop export PATH=$PATH:$HADOOP_INSTALL/bin export PATH=$PATH:$HADOOP_INSTALL/sbin export HADOOP_MAPRED_HOME=$HADOOP_INSTALL export HADOOP_COMMON_HOME=$HADOOP_INSTALL export HADOOP_HDFS_HOME=$HADOOP_INSTALL export YARN_HOME=$HADOOP_INSTALL ###end of paste |
もう一箇所、/usr/local/hadoop/etc/hadoop/hadoop-env.shにもJAVA_HOMEの記載を行います。
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
hadoop-env.sh を開くとexport JAVA_HOME=${JAVA_HOME} と記載された行があります。この行をコメントアウト(#を先頭に記述)しJAVAの位置を記載してください。
#export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ |
反映します。
source ~/.bashrc
この時点で、hadoopコマンドが使用できます。
hadoopのバージョンを確認してみます。
hadoop version
[crayon-53ffe0874b216690562268/]
- Hadoopの設定ファイル編集
cote-site.xmlを編集します。
vim /usr/local/hadoop/etc/hadoop/core-site.xml
[crayon-53ffe0874b21b495153792/]
yarn-site.xml
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
[crayon-53ffe0874b221935477161/]
mapred-site.xml
cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
[crayon-53ffe0874b226674236388/]
HDFSが使用するファイルを作成します。
namenodeとdatanodeの2つのディレクトリを作成します。 今回は、/var/hdsfに作成しました。
sudo mkdir -p /var/hdfs/namenode
sudo mkdir -p /var/hdfs/datanode
sudo chown -R hduser:hadoop /var/hdfs
hdfs-site.xmlを編集し、HDFS用に作成したディレクトリを記載します。
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
[crayon-53ffe0874b22c730006018/]
- NameNodeのフォーマット
最初にnamenodeをフォーマットを行います。
hdfs namenode -format
- 起動
HDFS(Hadoop Distributed File System)起動
start-dfs.sh
Hadoop YARN起動
start-yarn.sh
または、start-all.shにてhdfs,yarnの起動が行えます。
確認
ブラウザにて
http://localhost:50070/
- 停止
stop-yarn.sh
stop-dfs.sh
または、stop-all.shにてhdfs,yarnの停止が行えます。