SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Hadoop on LXC on
    VirtualBox
カーネル /VM 勉強会 @ 関西 其の参
  森 俊夫 @ 元徳島 / 現神戸
       @forest1040
自己紹介
• Id:forest1040 です。
• 徳島でフリーランスやってましたが、1年程前
    に、神戸に引越しました。
• 本業は、 Web 系エンジニアです。最近
    は、 JavaEE(JBoss Seam) や Play
    Framework をよく使っています。
• 前に Node.js on Android とかやってまし
    た。
                               #
システム構成
ノート 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



                                                              #
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
                                             #
LXC のインストール (2/2)
• ブリッジネットワーク設定
# vi /etc/network/interfaces
auto br0
iface 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


                                                            #
コンテナの生成
• とりあえず設定ファイルを作成
# vi /var/lib/lxc/natty-template-network.conf
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0

• コンテナ生成
  sudo lxc-create -n vm0 -t natty -f
  /var/lib/lxc/natty-template-network.conf
• コンテナ起動
  sudo lxc-start -n vm0

                                                #
コンテナの設定 (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/hosts
auto eth0                        ## 127.0.0.1 localhost vm0
iface 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


                                                              #
コンテナの設定 (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"




                                                                    #
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.list
deb http://archive.cloudera.com/debian maverick-cdh3 contrib
deb-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                                                #
不要なサービスの停止
• avahi-daemon
• plymouth 関係




                     #
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.sh
export 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

                                                                         #
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>



                                                                          #
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>



                                                              #
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>




                                                              #
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
                                                                 #
HDFS の確認
• めんどくさいのでマスタに links をインストール
  # apt-get install links
• links http://vm0:50070/ で確認




                            #
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




                                                                     #
MapReduce の確認
• links http://vm0:50030/ で確認




                                #
デモ
-- 円周率の計算
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

                                                                                     #
今後の目標
• Hadoop のマークベンチ
• CEP 系分散処理ソフトウェアの評価
  ( Storm 、 Jubatus 、 Yahoo S4 等、)
• CloudFoundry on LXC
• 分散処理系ではありませんが、 WebRTC にも注目
  しています。




                              #
参考 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

                                                             #
今後の目標
• Hadoop のマークベンチ
• CEP 系分散処理ソフトウェアの評価
  ( Storm 、 Jubatus 、 Yahoo S4 等、)
• CloudFoundry on LXC
• 分散処理系ではありませんが、 WebRTC にも注目
  しています。




                              #

Más contenido relacionado

La actualidad más candente

ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみるairtoxin Ishii
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料Yasutaka Hamada
 
CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!Takashi Uemura
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携Akihiro Kitada
 
Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Manabu Ori
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたatk1234
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことTrinityT _
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたdo_aki
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料Yasutaka Hamada
 
Mastodonインスタンスをセットアップできるスタートアップスクリプトについて
MastodonインスタンスをセットアップできるスタートアップスクリプトについてMastodonインスタンスをセットアップできるスタートアップスクリプトについて
Mastodonインスタンスをセットアップできるスタートアップスクリプトについてさくらインターネット株式会社
 
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~cyberblack28 Ichikawa
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門 Atsu Yamaga
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレperyaudo
 

La actualidad más candente (20)

ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
 
CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!
 
Ansible handson
Ansible handsonAnsible handson
Ansible handson
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携
 
Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Pgcon2012 ori-20120224
Pgcon2012 ori-20120224
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
Fabric Essentials
Fabric EssentialsFabric Essentials
Fabric Essentials
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
 
Mastodonインスタンスをセットアップできるスタートアップスクリプトについて
MastodonインスタンスをセットアップできるスタートアップスクリプトについてMastodonインスタンスをセットアップできるスタートアップスクリプトについて
Mastodonインスタンスをセットアップできるスタートアップスクリプトについて
 
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
 

Similar a Hadoop on LXC

Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf) Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf) VirtualTech Japan Inc.
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Yasuhiro Arai
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!Yutaka Tsumori
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!KLab株式会社
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_BetaKohei KaiGai
 
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたHDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたadachij2002
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Kimiyuki Yamauchi
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツールtotty jp
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!Midori Oge
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例maebashi
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondTaisuke Yamada
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationyukihiro kawada
 

Similar a Hadoop on LXC (20)

Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf) Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
 
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたHDPをWindowsで動かしてみた
HDPをWindowsで動かしてみた
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
Openstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verificationOpenstack SPICE console (icehouse) verification
Openstack SPICE console (icehouse) verification
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 

Hadoop on LXC

  • 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/interfaces auto br0 iface 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.conf lxc.network.type = veth lxc.network.flags = up lxc.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/hosts auto eth0 ## 127.0.0.1 localhost vm0 iface 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.list deb http://archive.cloudera.com/debian maverick-cdh3 contrib deb-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 #
  • 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.sh export 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 にも注目 しています。 #