忘れん坊の備忘録

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

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版

raspberry Pie2 macを使って設定とか

まずはOSのを公式サイト
Raspberry Pi Downloads - Software for the Raspberry Pi
からダウンロードします

NOOBSLiteの方(こちらはネットからインストールする方)を選択しました
→オフラインならLiteがつかない方

OSをSDカードにインストールする時は
ディスクユーティリティを開いてFAT32でパーテーションはマスターブートレコードにします
これをしないと上手く起動しません
色々な設定はこのサイトを参考に進めました
qiita.com

ラズパイをいちいち起動するのが面倒くさいということでmac上でssh接続をして動かすことにしました
ssh接続にするためには色々設定してから

ssh -l pi IPアドレス

とコマンドで入力
1回設定しとけば次回からこれをターミナル上で入力すれば大丈夫
下記のサイトを参考にしながらssh接続の設定を行いました
www.stdio.jp


ssh接続をやっていて、コマンドだけの操作が嫌だったので調べたところvnc接続とやらがあるみたいで
結局それを使いました
darmus.net
こちらを参照して設定しました。
起動する時はラズパイ上で

tightvncserver

と入力
接続する時は、macのデスクトップ上でcommand+Kを押して
サーバーアドレスというところに

vnc://IPアドレス:5901

を入力
これでパスワードを入れれば立ち上がるはず

とりあえずラズパイの設定はこんなもんだと思います

Hadoopを始める前に情報集め(知識が乏しい人向け)

学校の授業にて教授に言われたのでHadoopとRaspberryPi2を使って並列処理を行うことになりました
正確にいうと誘導尋問的な感じでなってしまったんですが、まぁやってみるのもいいかなって思ったので


もともとソフトウェア系しか知らないのにいきなりハードウェアに近いものになってしまったのでちんぷんかんぷん
できるか不安です

とりあえず、ラズパイを2つ繋げるのを目標にします

とにかく情報が少ないので言われた単語をメモして調べました

Hadoopとは

並列分散処理を支えるミドルウェア

と書かれていました
要は並列分散処理を行うときに管理してくれるもの的な感じでしょうか・・・
www.slideshare.net
こちらのスライドはわかりやすかったので参考にしました。
どうやらHadoopJavaが必要みたいなのでJavaの勉強をしなければ・・・


次に、MapReduceですが、行う処理を分割してそれぞれのコンピュータで行い、その処理を集めて最後に出力するという認識で良いのかな?
手法の一つって感じかな

MongoDBですがNoSQLと呼ばれるデータベースの1つです
これを使ってデータベースの処理をしてみたらと教授に言われました
www.publickey1.jp
おそらく、Hadoopとの相性が良く並列処理を行うときにデータベースを使えってことだと思います
そもそもデータベースも学んだことがないポンコツなので、さらに謎が深まりましたがこれは一旦置いておきます
まずはRaspberryPi2を設定してHadoopを入れることから始めなければ

Hadoopはこちらのサイトからダウンロードできます
Welcome to Apache™ Hadoop®!

はじめてみます

ブログなどの自分を発信するものはあまり得意では無いですが、備忘録として活用したいなと思いがあったのではじめてみました

 

文章は書くのはあまり得意では無いです

思ったことをつらつら書いたり、プログラムや自分のプログラムなどで詰まったことについて書ければと思っています

 

主にC,Unity,学校で教わったこと,アイデアなどを書こうと思っていますが日記みたいなものも書くかもしれません

 

基本的には自分向けですがプログラムで同じとこをミスった人と共有できたらという思いがあるので誰でも見れるようにしています

まだまだ知識不足なので初心者向けです

 

文章を書く系のものは3日坊主が多いので続くかは微妙です