忘れん坊の備忘録

情報工学科に通う大学生のメモ。あまり詳しくは無いです。備忘録として殴り書き

Hadoopの設定

RaspberryPie2の設定が終わったので次はHadoopの設定を行っていきます
今回は
Raspberry Pi上でHadoopクラスタを構築する 〜インストールから擬似分散モードのテストまで〜 | MUDAなことをしよう。
こちらのサイトを参考にして行いましたが少しバージョンが違ったりします

まずは
Apache Hadoop Releases
こちらのサイトにてHadoopをダウンロードします
3.0.0.-alpha1というのが最新版でありましたがα版みたいです
動作が安定しない可能性があると困るので2016/11/15現在の2.〇.〇の中で最新である2.7.3をダウンロードしました
binary版をダウンロードして、解凍します
以下のコードを入力すれば大丈夫です

$ wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
$ tar xzvf hadoop-2.7.3.tar.gz

Hadoop-2.7.3の設定の仕方については公式サイトにて載ってはいるのですが英語なので私には難しいです
Apache Hadoop 2.7.3 – Hadoop: Setting up a Single Node Cluster.
わかる人はこちらを参考にするといいと思います

HadoopにはJAVAが必要ですが、2.〇.〇ではjava8は対応していないのでjava7にしたほうがいいのかな?
まぁでもとりあえず8で動かしてみます

とりあえずわかる範囲で設定していきます
HadoopをダウンロードしたらJavaの場所を教えてあげる必要があるみたいです
ということで環境変数JAVA_HOMEを設定します
まずは

nano ~/.bashrc

と入力してエディタを起動します
そして

export JAVA_HOME="/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt"
export PATH=$PATH:$JAVA_HOME/bin

と、テキスト内に入力するのですが、Javaのバージョンによって最後の"jdk-8-oracle-arm32-vfp-hflt"のフォルダ名が変わってきてしまうのでそこは自分で調べてください
f:id:kuhuhu1021:20161115224523p:plain
nanoの閉じ方はcontrol+xで閉じられます
閉じる時にセーブしますか?と聞かれるのでyを押せばセーブできます

入力したら一旦、再起動して

echo $JAVA_HOME

と入力してみると
先ほどJAVA_HOMEに設定したフォルダの場所が帰ってくるはずです
私の場合は

/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt

と表示されました
これで確認できました

次に公式サイトにあるように

  $ mkdir input
  $ cp etc/hadoop/*.xml input
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
  $ cat output/*

と入力してみます
3行目でログが出ていたら、ちゃんと動作していると思われます

次に設定するのはetc/hadoop/core-site.xmlです。とりあえず擬似分散モードで設定します。
どうやらHadoopの各コンポーネントは、XMLファイルを使って設定されているようです。
Commonのプロパティはcore-site.xmlに、HDFSのプロパティはhdfs-site.xmlに、MapReduceのプロパティはmapred-site.xmlに入ってるみたいです。
また、2.0以降はMapReduceはYARN上で動かすのでyarn-site.xmlという設定ファイルも追加されているみたです。
それで、etc/hadoop/core-site.xmlを変更します。基本的にの間に設定は書くらしい

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

また設定中に”接続を拒否されました”という表示がたくさん出てきてわけわからんと思って悩んでましたがどうやらホスト名を設定すればいいようでした

sudo vim /etc/hosts

と入力して

127.0.1.1       raspberrypi

の下に

IPアドレス ホスト名

を追加することでできました。

以下の本を参考にしてたりします

Hadoop 第3版

Hadoop 第3版