Hadoop on LXC
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Hadoop on LXC

on

  • 3,479 views

 

Statistics

Views

Total Views
3,479
Views on SlideShare
2,329
Embed Views
1,150

Actions

Likes
0
Downloads
37
Comments
0

7 Embeds 1,150

http://devel.ownport.net 652
http://d.hatena.ne.jp 483
http://localhost 10
http://feedly.com 2
http://translate.googleusercontent.com 1
https://reader.aol.com 1
http://feedproxy.google.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Hadoop on LXC Presentation Transcript

  • 1. Hadoop on LXC on VirtualBoxカーネル /VM 勉強会 @ 関西 其の参 森 俊夫 @ 元徳島 / 現神戸 @forest1040
  • 2. 自己紹介• Id:forest1040 です。• 徳島でフリーランスやってましたが、1年程前 に、神戸に引越しました。• 本業は、 Web 系エンジニアです。最近 は、 JavaEE(JBoss Seam) や Play Framework をよく使っています。• 前に Node.js on Android とかやってまし た。 #
  • 3. システム構成ノート PC ( OS : Ubuntu 11.04 )CPU : Core2Duo 1.8GHz メモリ: 4GB VirtualBox ( OS : Ubuntu Server 11.04 ) メモリ: 2GB IP 外側 :192.168.56.100( ホストオンリ ) IP 内側 :192.168.5.1(LXC ブリッジ ) VM0(Ubuntu) VM1(Ubuntu) VM2(Ubuntu) VM3(Ubuntu) マスタ スレイブ 1 スレイブ 2 スレイブ 3 (192.168.5.10) (192.168.5.11) (192.168.5.12) (192.168.5.13) ・ NameNode ・ DataeNode ・ DataeNode ・ DataeNode ・ JobTracker ・ TaskTracker ・ TaskTracker ・ TaskTracker #
  • 4. LXC のインストール (1/2)• 面倒なので、まず root になってしまう $ sudo -i• パッケージをインストール # apt-get update # apt-get install lxc debootstrap bridge-utils• cgroup の作成 # mkdir /cgroup # mount -t cgroup none /cgroup # echo "none /cgroup cgroup defaults 0 0" >> /etc/fstab #
  • 5. LXC のインストール (2/2)• ブリッジネットワーク設定# vi /etc/network/interfacesauto br0iface br0 inet static address 192.168.5.1 netmask 255.255.255.0 network 192.168.5.255 post-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE post-up sysctl -w net.ipv4.ip_forward=1 pre-down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE pre-down sysctl -w net.ipv4.ip_forward=0 bridge_ports none bridge_stp off #
  • 6. コンテナの生成• とりあえず設定ファイルを作成# vi /var/lib/lxc/natty-template-network.conflxc.network.type = vethlxc.network.flags = uplxc.network.link = br0• コンテナ生成 sudo lxc-create -n vm0 -t natty -f /var/lib/lxc/natty-template-network.conf• コンテナ起動 sudo lxc-start -n vm0 #
  • 7. コンテナの設定 (1/2)• ネットワーク設定(ホスト側)# vi /var/lib/lxc/vm0/config## 以下を追加lxc.network.ipv4 = 192.168.5.10/24• ネットワーク設定(コンテナ側) 127.0.0.1 に vm0 を設定しないこと# vi /etc/network/interfaces # vi /etc/hostsauto eth0 ## 127.0.0.1 localhost vm0iface eth0 inet static 127.0.0.1 localhost address 192.168.5.10 netmask 255.255.255.0 192.168.5.10 vm0 broadcast 192.168.5.255 192.168.5.11 vm1 gateway 192.168.5.1 192.168.5.12 vm2 192.168.5.13 vm3 #
  • 8. コンテナの設定 (2/2)• Hadoop ユーザの作成と鍵の生成# useradd hadoop -m -g hadoop -s /bin/bash# passwd hadoop# su – hadoop$ ssh-keygen -t rsa -P ""$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys$ chmod 600 .ssh/authorized_keys## マスタとスレイブの相互に鍵を送っておく$ cat ./.ssh/id_rsa.pub | ssh vm0 "cat >> ./.ssh/authorized_keys"$ cat ./.ssh/id_rsa.pub | ssh vm1 "cat >> ./.ssh/authorized_keys" #
  • 9. Hadoop のインストール• JDK1.6 のインストール# apt-get install python-software-properties# add-apt-repository ppa:ferramroberto/java# apt-get update# apt-get install sun-java6-jdk• 必要なパッケージをインストール # apt-get install sudo ssh ntp rsync curl wget• hadoop パッケージのインストール# vi /etc/apt/sources.list.d/cloudera.listdeb http://archive.cloudera.com/debian maverick-cdh3 contribdeb-src http://archive.cloudera.com/debian maverick-cdh3 contrib# wget -q http://archive.cloudera.com/debian/archive.key -O- | apt-key add -# apt-get update# apt-get install hadoop-0.20 #
  • 10. 不要なサービスの停止• avahi-daemon• plymouth 関係 #
  • 11. Hadoop の設定(共通)• 設定ファイルの作成# cp -r /etc/hadoop-0.20/conf.empty /etc/hadoop-0.20/conf.my# update-alternatives --install /etc/hadoop-0.20/conf hadoop-0.20-conf /etc/hadoop-0.20/conf.my 50# update-alternatives --display hadoop-0.20-conf # 設定を確認• hadoop-env.sh# vi /etc/hadoop-0.20/conf.my/hadoop-env.shexport HADOOP_OPTS=-Djava.net.preferIPv4Stack=trueを追加 ## Ubuntu はデフォルトでは、 IPv6 で待ち受けるため(らしい。。)• Master & slaves# echo vm0 > /etc/hadoop-0.20/conf.my/masters# echo vm1 > /etc/hadoop-0.20/conf.my/slaves# echo vm2 >> /etc/hadoop-0.20/conf.my/slaves# echo vm3 >> /etc/hadoop-0.20/conf.my/slaves #
  • 12. Hadoop 設定ファイル( core-site.xml )各ホストに以下のファイルを作成# vi /etc/hadoop-0.20/conf.my/core-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration> <property> <name>fs.default.name</name> <value>hdfs://vm0:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/var/lib/hadoop-0.20/cache/${user.name}</value> </property></configuration> #
  • 13. Hadoop 設定ファイル( hdfs-site.xml )各ホストに以下のファイルを作成# vi /etc/hadoop-0.20/conf.my/hdfs-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property></configuration> #
  • 14. Hadoop 設定ファイル( mapred-site.xml )各ホストに以下のファイルを作成# vi /etc/hadoop-0.20/conf.my/mapred-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration> <property> <name>mapred.job.tracker</name> <value>vm0:8021</value> </property></configuration> #
  • 15. HDFS の設定◇ 各ホストで以下を実行# mkdir /var/lib/hadoop-0.20/cache/hdfs# chown hdfs:hdfs /var/lib/hadoop-0.20/cache/hdfs## ついでに hadoop ユーザのディレクトリもオーナを変更しておく# chown hadoop:hadoop /var/lib/hadoop-0.20/cache/hadoop◇ マスタで以下を実行## NameNode のフォーマット# sudo -u hdfs hadoop namenode -format## NameNode と JobTracker をインストール# apt-get install hadoop-0.20-namenode hadoop-0.20-jobtracker# /etc/init.d/hadoop-0.20-namenode start◇ スレイブで以下を実行## DataNode と TaskTracker をインストール# apt-get install hadoop-0.20-datanode hadoop-0.20-tasktracker# /etc/init.d/hadoop-0.20-datanode start #
  • 16. HDFS の確認• めんどくさいのでマスタに links をインストール # apt-get install links• links http://vm0:50070/ で確認 #
  • 17. MapReduce の設定◇ 各ホストで以下を実行# mkdir /var/lib/hadoop-0.20/cache/mapred# chown mapred:mapred /var/lib/hadoop-0.20/cache/mapred◇ マスタで以下を実行## mapred ディレクトリの作成# sudo -u hdfs hadoop dfs -mkdir /var/lib/hadoop-0.20/cache/mapred# sudo -u hdfs hadoop dfs -chown mapred:mapred /var/lib/hadoop-0.20/cache/mapred◇ スレイブで以下を実行# /etc/init.d/hadoop-0.20-tasktracker start #
  • 18. MapReduce の確認• links http://vm0:50030/ で確認 #
  • 19. デモ-- 円周率の計算hadoop jar /usr/lib/hadoop-0.20/hadoop-examples.jar pi 10 1000-- 3MB のファイルを 10 個、書き込むhadoop jar /usr/lib/hadoop-0.20/hadoop-*-test.jar TestDFSIO -write -nrFiles 10 -fileSize 3-- 3MB のファイルを 10 個、読み込むhdfs hadoop jar /usr/lib/hadoop-0.20/hadoop-*-test.jar TestDFSIO -read -nrFiles 10 -fileSize 3-- RandomWriter に random-data というディレクトリへ出力を書き出させるhadoop jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar randomwriter random-data-- Sort プログラムhadoop jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar sort random-data sorted-data-- 確認hadoop jar /usr/lib/hadoop-0.20/hadoop-*-test.jar testmapredsort -sortInput random-data -sortOutput sorted-data #
  • 20. 今後の目標• Hadoop のマークベンチ• CEP 系分散処理ソフトウェアの評価 ( Storm 、 Jubatus 、 Yahoo S4 等、)• CloudFoundry on LXC• 分散処理系ではありませんが、 WebRTC にも注目 しています。 #
  • 21. 参考 URL• 貧乏人のための仮想環境 http://d.hatena.ne.jp/forest1040/20120306/1331021930• 4 台構成の Hadoop を 100 分で試してみる (CentOS + Cloudera) http://saburi380.blogspot.jp/2009/11/1004hadoopcentos-cloudera.html• 完全分散モードの Hadoop NameNode 導入 ( Ubuntu10.04 、 CDH3 ) http://www.mwsoft.jp/programming/hadoop/namenode_install.html• 完全分散モードの Hadoop JobTracker 導入 ( Ubuntu10.04 、 CDH3 ) http://www.mwsoft.jp/programming/hadoop/jobtracker_install.html #
  • 22. 今後の目標• Hadoop のマークベンチ• CEP 系分散処理ソフトウェアの評価 ( Storm 、 Jubatus 、 Yahoo S4 等、)• CloudFoundry on LXC• 分散処理系ではありませんが、 WebRTC にも注目 しています。 #