Hadoop on LXC

  • 3,040 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,040
On Slideshare
0
From Embeds
0
Number of Embeds
7

Actions

Shares
Downloads
37
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

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 にも注目 しています。 #