スポンサーリンク

ubuntu14.04lts にHadoop2.2をインストール

スポンサーリンク
information
この記事は約8分で読めます。
スポンサーリンク

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の停止が行えます。