Macのローカル環境でhadoopを1から勉強する
とりあえずローカルのmac上で試しにhadoopを動かしてみたいということで、
virtualboxをインストールして、vagrantでcentosを入れて疑似分散環境を作ってみました。
homebrewをインストール
virtualboxやvagrantをコマンドラインからインストールするためこいつを入れます。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
virtualboxのインストール
brew cask search /^virtualbox$/
brew cask install virtualbox
信じられないかもしれませんがこれで、アプリケーションフォルダにvirtualboxがインストールされます。
さくっとこのままvagrantを使っていきます
vagrantのインストール
brew cask search vagrant
brew cask install vagrant
これでvagarantがインストールされました。
vagrantを使ってcentosを立ててみる
立てたいOSのBOXを落としてくる
BOXというのは構築するサーバのOSイメージみたいなやつと思えばいいと思います。
ここからお好みのOSのURLをゲッチュする。
http://www.vagrantbox.es/
今回は僕はcentos6系のを選びました。
上でコピーしたOSのURLを下記コマンドの一番最後の引数に指定
vagrant box add <name> <boxのURL>
といった具合
vagrant box add centos6 https://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box
↑でcentos6のboxがDLできる。
DLが終わったら、
vagrant box list
で確認してみましょう。
<name>で指定した名前のBOXが表示されるはずです。
落としてきたBOXをもとにVMを起動させる
mkdir centosVM
cd centosVM
vagrant init centos6
と打ちます。
すると、
Vagrantfile
というものが出来上がります。
ちょこっと書き換えます。
vi Vagrantfile
で開き。
#config.vm.network "forwarded_port", guest: 80, host: 80
という行があると思うので、
コメントアウトを外して、
config.vm.network "forwarded_port", guest: 50070, host: 50070
と書き換えます。
何をしているかというと、
vagrantサーバ上でHDFSを起動させた後、ブラウザから管理画面をみるための設定です。
こうしておくことで、
Macのブラウザから、
localhost:50070
と打つことで、
vagrant上の50070ポートのプロセスにアクセスすることができるのです。便利。
もちろんvagrantのサーバにプライベートIPをつけることも可能ですがこれで事足ります。
Vagrantfileを編集し終わったら、
vagrant up
でVMが立ち上がります。
SSHで接続してhadoopとして必要なものをインストールしていく
vagrant ssh
で立ち上げたVMに接続することができます。
※vagrant upを叩いたときに、127.0.0.1:2222で上がったよってログがでるので、
ssh [email protected] -p 2222
といった形でも接続可能です。
パスワードは「vagrant」です
wgetのインストール
素の状態だとwgetが入っていないので入れます。
sudo su -
でrootになり。
yum install wget
で簡単に入ります
JDKのインストール
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.rpm" -O jdk-8u45-linux-x64.rpm
長いコマンドですがこれで引っ張ってこれます。
rootのまま作業しましょう。
yum -y localinstall jdk-8u45-linux-x64.rpm
でインストールされます。
java -version
でバージョン情報が表示されるのを確認できればOK
CDHをインストール
wget http://archive.cloudera.com/cdh5/one-click-install/redhat/6/x86_64/cloudera-cdh-5-0.x86_64.rpm
yum -y --nogpgcheck localinstall cloudera-cdh-5-0.x86_64.rpm
でCDH5が入ります。
疑似分散環境の設定
yum -y install hadoop-conf-pseudo
詳しいことはわかりませんがこれが必要なそうです。(これからわかっていくのです)
ローカルからSSHする際に邪魔になりそうなのでfirewallを切っておきます。
service iptables stop
chkconfig iptables off
HDFSのフォーマット
sudo -u hdfs hdfs namenode -format
注意点はhdfsユーザで実行するところです。
※CDHのパッケージをインストールすることで自動的にhdfsユーザ、mapredユーザは作られています。
上記コマンドを打つとどわーーっとでてきます。
最終的に、
17/04/11 09:57:01 INFO util.ExitUtil: Exiting with status 0
17/04/11 09:57:01 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1
************************************************************/
的なメッセージがでればOKかと。
サービス起動
service hadoop-hdfs-namenode start
service hadoop-hdfs-datanode start
namenodeとdatanodeのプロセスを起動させます。
この状態でMacのブラウザから、
localhost:50070
にアクセスするとHDFSの管理画面が閲覧できるかと思います。
HDFSに必要なディレクトリの作成
スクリプトが用意されています。
sudo /usr/lib/hadoop/libexec/init-hdfs.sh
これを実行しないとYARNがコケるそうです。よくわかっていません。
sudo -u hdfs hadoop fs -ls -R /
で、作成されたディレクトリなどを確認できます。
sudo service hadoop-yarn-resourcemanager start
sudo service hadoop-yarn-nodemanager start
sudo service hadoop-mapreduce-historyserver start
これでYARNが起動しました。
ResourceManager - http://192.168.33.100:8088/
NodeManager - http://192.168.33.100:8042/
JobHistory - http://192.168.33.100:19888/
にアクセスすると、webから管理画面が見えるそうです。
※VagrantFileに↑ポートへのフォワード設定が必要です。
サンプルプログラムの実行
sudo su - hdfs
echo "hoge fuga bar foo hoge fuga" > wordcount.txt
hadoop fs -mkdir -p /user/hdfs/input
hadoop fs -put wordcount.txt /user/hdfs/input
hadoop fs -cat /user/hdfs/input/wordcount.txt
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /user/hdfs/input/wordcount.txt /user/hdfs/output
実行結果の確認
hadoop fs -ls -R /user/hdfs/output
hadoop fs -cat /user/hdfs/output/part-r-00000
これで一通りhadoopを動かす環境が整いました
疑似分散環境という形ですが、以上でhadoop環境の構築から実行までできたと思います。
ここからhiveだとかを投げて見たりしていきたいです。
Author And Source
この問題について(Macのローカル環境でhadoopを1から勉強する), 我々は、より多くの情報をここで見つけました https://qiita.com/chatrate/items/82ee6ecaa58e7529746b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .