SlideShare a Scribd company logo
1 of 17
Download to read offline
[⾃自宅宅で Hive 愛を育むための⼿手順(Raspberry  Pi 編)
]  
<⽬目次>  
1.  OS(Raspberian)のインストール及び設定  
2.   ハードウェアのチューニング  
3.  OS(Raspberian)のチューニング  
4.   パーティションの拡張  
5.  Java のインストール  
6.  Hadoop のインストール/設定  
7.  Hive のインストール/設定  
8.  HiBench(HiveBench)による性能評価  
  

  
1.  OS(Raspberian)のインストール及び設定  
・OS イメージのダウンロード  
Raspberry  Pi ⽤用の Linux ディストリビューションとして複数提供されているが、今回は Raspbian  “wheezy”を⽤用いました。  
下記の URL から zip 化されたイメージをダウンロードします。  
  
http://www.raspberrypi.org/downloads	
 
  
・SD カードに OS イメージをコピー  
zip を解凍すると、.img ファイルが保存されます。このイメージファイルを SD カードにコピーします。  
ここでは Mac  OSX のターミナルを利利⽤用した場合の例例を⽰示します。  
  
%	
 df	
 -h	
 
Filesystem	
 	
 	
 	
 	
 	
 Size	
 	
 	
 Used	
 	
 Avail	
 Capacity	
 	
 	
 iused	
 	
 	
 	
 ifree	
 %iused	
 	
 Mounted	
 on	
 
/dev/disk0s2	
 	
 	
 233Gi	
 	
 	
 99Gi	
 	
 134Gi	
 	
 	
 	
 43%	
 	
 26039489	
 35029951	
 	
 	
 43%	
 	
 	
 /	
 
devfs	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 187Ki	
 	
 187Ki	
 	
 	
 	
 0Bi	
 	
 	
 100%	
 	
 	
 	
 	
 	
 	
 646	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 100%	
 	
 	
 /dev	
 
/dev/disk1s2	
 	
 	
 931Gi	
 	
 657Gi	
 	
 275Gi	
 	
 	
 	
 71%	
 172133623	
 71973043	
 	
 	
 71%	
 	
 	
 /Volumes/Macintosh	
 HD	
 	
 
map	
 -hosts	
 	
 	
 	
 	
 	
 	
 0Bi	
 	
 	
 	
 0Bi	
 	
 	
 	
 0Bi	
 	
 	
 100%	
 	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 100%	
 	
 	
 /net	
 
map	
 auto_home	
 	
 	
 	
 0Bi	
 	
 	
 	
 0Bi	
 	
 	
 	
 0Bi	
 	
 	
 100%	
 	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 100%	
 	
 	
 /home	
 
  
SD カードをスロットに挿⼊入すると、  
  
%	
 df	
 -h	
 
Filesystem	
 	
 	
 	
 	
 	
 Size	
 	
 	
 Used	
 	
 Avail	
 Capacity	
 	
 	
 iused	
 	
 	
 	
 ifree	
 %iused	
 	
 Mounted	
 on	
 
/dev/disk0s2	
 	
 	
 233Gi	
 	
 	
 99Gi	
 	
 134Gi	
 	
 	
 	
 43%	
 	
 26039510	
 35029930	
 	
 	
 43%	
 	
 	
 /	
 
devfs	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 190Ki	
 	
 190Ki	
 	
 	
 	
 0Bi	
 	
 	
 100%	
 	
 	
 	
 	
 	
 	
 658	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 100%	
 	
 	
 /dev	
 
/dev/disk1s2	
 	
 	
 931Gi	
 	
 657Gi	
 	
 275Gi	
 	
 	
 	
 71%	
 172133623	
 71973043	
 	
 	
 71%	
 	
 	
 /Volumes/Macintosh	
 HD	
 	
 
map	
 -hosts	
 	
 	
 	
 	
 	
 	
 0Bi	
 	
 	
 	
 0Bi	
 	
 	
 	
 0Bi	
 	
 	
 100%	
 	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 100%	
 	
 	
 /net	
 
map	
 auto_home	
 	
 	
 	
 0Bi	
 	
 	
 	
 0Bi	
 	
 	
 	
 0Bi	
 	
 	
 100%	
 	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 100%	
 	
 	
 /home	
 
/dev/disk2s1	
 	
 	
 	
 56Mi	
 	
 	
 18Mi	
 	
 	
 37Mi	
 	
 	
 	
 34%	
 	
 	
 	
 	
 	
 	
 512	
 	
 	
 	
 	
 	
 	
 	
 0	
 	
 100%	
 	
 	
 /Volumes/No	
 Name	
 
  
diskutil を使い、SD カードをアンマウントする。  
  
$	
 sudo	
 diskutil	
 unmount	
 /dev/disk2s1	
 
Volume	
 boot	
 on	
 disk2s1	
 unmounted	
 
  
次に、dd コマンドでイメージを SD カードに書き込む。  
  
$	
 sudo	
 dd	
 bs=1m	
 if=2013-09-25-wheezy-raspbian.img	
 of=/dev/rdisk2	
 
1850+0	
 records	
 in	
 
1850+0	
 records	
 out	
 
1939865600	
 bytes	
 transferred	
 in	
 165.927421	
 secs	
 (11691049	
 bytes/sec)	
 
  
イメージを書き込んだ SD カードを Raspberry  Pi のスロットに差し込み、電源を⼊入れて起動します。  
  
・タイムゾーン/ロケール/キーボードの設定  
OS が起動すると、raspi-‐‑‒config コマンドの実⾏行行画⾯面が表⽰示されます。ここでは最低限のタイムゾーン/ロケール/キーボードの設定
のみしておきます。  
<タイムゾーンの設定>  
「4  Internationalisation  Options」-‐‑‒>「I2  Change  Timezone」-‐‑‒>「Asia」-‐‑‒>「Tokyo」を選択します。  
  
<ロケールの設定>  
「4  Internationalisation  Options」-‐‑‒>「ja_̲JP.UTF-‐‑‒8」-‐‑‒>「ja_̲JP.UTF-‐‑‒8」を選択します。  
  
<キーボードの設定>  
「4  Internationalisation  Options」-‐‑‒>「I3  Change  Keyboard  Layout」-‐‑‒>「Generic  101-‐‑‒ky  PC」-‐‑‒>「Other」-‐‑‒>「Japanese」-‐‑‒>
「Japanese」-‐‑‒>「The  default  for  the  keyboard  layout」-‐‑‒>「No  Compose  key」-‐‑‒>「Yes」を選択  
  
・OS の更更新  
まず最初に OS を最新版に更更新し、リブートします。  
  
$	
 sudo	
 apt-get	
 update	
 
$	
 sudo	
 apt-get	
 upgrade	
 
$	
 sudo	
 reboot	
 
  
・ネットワークの設定  
次に、/etc/networks/interfaces を編集し、インターネットにアクセス可能にします。例例えば、下記のように設定します。  
  
$	
 sudo	
 vi	
 /etc/networks/interfaces	
 
	
 
auto	
 lo0	
 
iface	
 lo	
 inet	
 loopback	
 
	
 
auto	
 eth0	
 
iface	
 eth0	
 inet	
 static	
 
address	
 192.168.100.1	
 
netmask	
 255.255.255.0	
 
network	
 192.168.100.0	
 
gateway	
 192.168.100.254	
 
dns-servers	
 192.168.100.254	
 
  
DNS サーバが存在しない場合は、
/etc/hosts ファイルにノードの IP アドレスとホスト名を追記します。
今回は 2 台のノードで Hdoop
クラスタを構築しました。  
  
$	
 sudo	
 vi	
 /etc/hosts	
 
	
 
(以下、追記)	
 
192.168.100.1	
 node1	
 
192.168.100.2	
 node2	
 
  
・時刻同期の設定  
時刻同期するための NTP クライアントはデフォルトで設定されており、特に追加設定は不不要です。  
  
・ユーザ/グループの作成  
hadoop を実⾏行行するためのユーザとグループを作成しておきます。  
  
$	
 sudo	
 addgroup	
 hadoop	
 
$	
 sudo	
 adduser	
 –ingroup	
 hadoop	
 hadoop	
 
$	
 sudo	
 adduser	
 hadoop	
 sudo	
 
	
 
・SSH 認証鍵の設定  
RSA 暗号鍵をパスワードなしで⽣生成し、authorized_̲keys ファイルに追記します。Hadoop クラスタで複数台の Raspberry  Pi を利利⽤用
する場合は、すべてのノードの公開鍵のすべてのノードの authorized_̲keys に追記しておく必要があります。  
  
$	
 ssh-keygen	
 –t	
 rsa	
 –P	
 “”	
 
$	
 cat	
 ~/.ssh/id_rsa.pub	
 >>	
 ~/.ssh/authorized_keys	
 
  
  
  

  
2.   ハードウェアのチューニング  
<メモリ分割>  
GPU が使⽤用できるメモリの最⼩小値を設定します。  
raspi-‐‑‒config を実⾏行行すると、下記の画⾯面が表⽰示されます。  
「8  Advenced  Options」-‐‑‒>「A3  Memory  Split」-‐‑‒>「16」と設定します。  
  
$	
 sudo	
 raspi-config	
 
	
 
┌─────────┤	
 Raspberry	
 Pi	
 Software	
 Configuration	
 Tool	
 (raspi-config)	
 ├──────────┐	
 
│	
 Setup	
 Options	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 1	
 Expand	
 Filesystem	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Ensures	
 that	
 all	
 of	
 the	
 SD	
 card	
 s	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 2	
 Change	
 User	
 Password	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Change	
 password	
 for	
 the	
 default	
 u	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 3	
 Enable	
 Boot	
 to	
 Desktop/Scratch	
 Choose	
 whether	
 to	
 boot	
 into	
 a	
 des	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 4	
 Internationalisation	
 Options	
 	
 	
 Set	
 up	
 language	
 and	
 regional	
 sett	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 5	
 Enable	
 Camera	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Enable	
 this	
 Pi	
 to	
 work	
 with	
 the	
 R	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 6	
 Add	
 to	
 Rastrack	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Add	
 this	
 Pi	
 to	
 the	
 online	
 Raspber	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 7	
 Overclock	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Configure	
 overclocking	
 for	
 your	
 P	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 8	
 Advanced	
 Options	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Configure	
 advanced	
 settings	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 9	
 About	
 raspi-config	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Information	
 about	
 this	
 configurat	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 <Select>	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 <Finish>	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
└────────────────────────────────────────────────-─┘	
 
  
<オーバークロック>  
「7  Overclock」-‐‑‒>「High」を選択します。  
  
┌─────────────────────────────┐	
 
│	
 Chose	
 overclock	
 preset	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 None	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 700MHz	
 ARM,	
 250MHz	
 core	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 Modest	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 800MHz	
 ARM,	
 250MHz	
 core	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 Medium	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 900MHz	
 ARM,	
 250MHz	
 core	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 High	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 950MHz	
 ARM,	
 250MHz	
 core	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 Turbo	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1000MHz	
 ARM,	
 500MHz	
 cor	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 <了解>	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 <取消>	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
│	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 │	
 
└─────────────────────────────┘	
 
	
 
  
※途中で警告画⾯面が表⽰示されますが、⾃自⼰己責任で実施してください。下記の URL に詳細情報が記載されています。  
※「Turbo」を選択すると、SD カードが破損する可能性あるとの警告が表⽰示されるため、今回は「High」に設定しています。  
  
http://elinux.org/RPi_Overclocking	
 
  
  
  

  
3.  OS(Raspberian)のチューニング  
・noatime オプションでマウント  
ディスクの mount オプションに”noatime”を設定しますが、
Raspberian ではデフォルトで”noatime”のマウントオプションが設定さ
れています。  
  
・swappiness の設定  
スワップの発⽣生を極⼒力力抑制するために、vm.swappiness を 0 または 5 に設定しますが、Raspberian ではデフォルトで 1 に設定され
ているため、変更更不不要です。  
  
・limits.conf  
プロセスが open できるファイルディスクリプタ数の上限を変更更します。  
  
$	
 sudo	
 vi	
 /etc/security/limits.conf	
 
	
 
(以下、追記)	
 
hadoop	
 soft	
 nofile	
 32768	
 
hadoop	
 hard	
 nofile	
 32768	
 
  
  

  
4.パーティンションの拡張  
SD カードに書き込んだイメージは、デフォルトで 2GB しか利利⽤用できません。2GB 以上の容量量の SD カードを使⽤用している場合、パー
ティションを拡張する必要があります。注意点としては、Linux パーティションの開始位置(⻘青字)を最初に調べておく必要がある点
です。下記は実際の⼿手順で、⾚赤字が⼊入⼒力力⽂文字です。  
  
$	
 sudo	
 fdisk	
 /dev/mmcblk0	
 
	
 
Command	
 (m	
 for	
 help):	
 p	
 
	
 
Disk	
 /dev/mmcblk0:	
 15.8	
 GB,	
 15811477504	
 bytes	
 
4	
 heads,	
 16	
 sectors/track,	
 482528	
 cylinders,	
 total	
 30881792	
 sectors	
 
Units	
 =	
 sectors	
 of	
 1	
 *	
 512	
 =	
 512	
 bytes	
 
Sector	
 size	
 (logical/physical):	
 512	
 bytes	
 /	
 512	
 bytes	
 
I/O	
 size	
 (minimum/optimal):	
 512	
 bytes	
 /	
 512	
 bytes	
 
Disk	
 identifier:	
 0x0002c262	
 
	
 
	
 	
 	
 	
 	
 	
 	
 	
 Device	
 Boot	
 	
 	
 	
 	
 	
 Start	
 	
 	
 	
 	
 	
 	
 	
 	
 End	
 	
 	
 	
 	
 	
 Blocks	
 	
 	
 Id	
 	
 System	
 
/dev/mmcblk0p1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 8192	
 	
 	
 	
 	
 	
 122879	
 	
 	
 	
 	
 	
 	
 57344	
 	
 	
 	
 c	
 	
 W95	
 FAT32	
 (LBA)	
 
/dev/mmcblk0p2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 122880	
 	
 	
 	
 	
 5785599	
 	
 	
 	
 	
 2831360	
 	
 	
 83	
 	
 Linux	
 
	
 
Command	
 (m	
 for	
 help):	
 d	
 
Partition	
 number	
 (1-4):	
 2	
 
	
 
Command	
 (m	
 for	
 help):	
 n	
 
Partition	
 type:	
 
	
 	
 	
 p	
 	
 	
 primary	
 (1	
 primary,	
 0	
 extended,	
 3	
 free)	
 
	
 	
 	
 e	
 	
 	
 extended	
 
Select	
 (default	
 p):	
 p	
 
Partition	
 number	
 (1-4,	
 default	
 2):	
 2	
 
First	
 sector	
 (2048-30881791,	
 default	
 2048):	
 122880	
 
Last	
 sector,	
 +sectors	
 or	
 +size{K,M,G}	
 (122880-30881791,	
 default	
 30881791):	
 
Using	
 default	
 value	
 30881791	
 
	
 
Command	
 (m	
 for	
 help):	
 p	
 
	
 
Disk	
 /dev/mmcblk0:	
 15.8	
 GB,	
 15811477504	
 bytes	
 
4	
 heads,	
 16	
 sectors/track,	
 482528	
 cylinders,	
 total	
 30881792	
 sectors	
 
Units	
 =	
 sectors	
 of	
 1	
 *	
 512	
 =	
 512	
 bytes	
 
Sector	
 size	
 (logical/physical):	
 512	
 bytes	
 /	
 512	
 bytes	
 
I/O	
 size	
 (minimum/optimal):	
 512	
 bytes	
 /	
 512	
 bytes	
 
Disk	
 identifier:	
 0x0002c262	
 
	
 
	
 	
 	
 	
 	
 	
 	
 	
 Device	
 Boot	
 	
 	
 	
 	
 	
 Start	
 	
 	
 	
 	
 	
 	
 	
 	
 End	
 	
 	
 	
 	
 	
 Blocks	
 	
 	
 Id	
 	
 System	
 
/dev/mmcblk0p1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 8192	
 	
 	
 	
 	
 	
 122879	
 	
 	
 	
 	
 	
 	
 57344	
 	
 	
 	
 c	
 	
 W95	
 FAT32	
 (LBA)	
 
/dev/mmcblk0p2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 122880	
 	
 	
 	
 30881791	
 	
 	
 	
 15379456	
 	
 	
 83	
 	
 Linux	
 
	
 
Command	
 (m	
 for	
 help):	
 w	
 
The	
 partition	
 table	
 has	
 been	
 altered!	
 
	
 
Calling	
 ioctl()	
 to	
 re-read	
 partition	
 table.	
 
	
 
WARNING:	
 Re-reading	
 the	
 partition	
 table	
 failed	
 with	
 error	
 16:	
 デバイスもしくはリソースがビジー状態です.	
 
The	
 kernel	
 still	
 uses	
 the	
 old	
 table.	
 The	
 new	
 table	
 will	
 be	
 used	
 at	
 
the	
 next	
 reboot	
 or	
 after	
 you	
 run	
 partprobe(8)	
 or	
 kpartx(8)	
 
Syncing	
 disks.	
 
	
 
$	
 sudo	
 reboot	
 
  
再起動後に、下記のコマンドを実⾏行行し、パーティションの再構築して、完了了するとパーティションが拡張されています。  
  
$	
 sudo	
 resize2fs	
 /dev/mmcblk0p2	
 
resize2fs	
 1.42.5	
 (29-Jul-2012)	
 
Filesystem	
 at	
 /dev/mmcblk0p2	
 is	
 mounted	
 on	
 /;	
 on-line	
 resizing	
 required	
 
old_desc_blocks	
 =	
 1,	
 new_desc_blocks	
 =	
 1	
 
  
  
  

  
5.Java のインストール  
Raspberian には標準で Java  1.6 がインストールされています。
ARM ⽤用の Open  Java  Development  Kit  (JDK)  1.7 を使⽤用するため、
下記のコマンドでインストールします。  
  
$	
 sudo	
 apt-get	
 install	
 openjdk-7-jdk	
 
  
次に、下記のコマンドで Java のバージョンを 1.6 から 1.7 に切切り替えます。  
  
$	
 sudo	
 update-alternatives	
 --config	
 java	
 
alternative	
 java	
 (/usr/bin/java	
 を提供)	
 には	
 3	
 個の選択肢があります。	
 
	
 
	
 	
 選択肢	
 	
 	
 	
 	
 	
 	
 パス	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 優先度	
 	
 	
 	
 状態	
 
------------------------------------------------------------------------------------	
 
	
 	
 0	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /usr/lib/jvm/java-6-openjdk-armhf/jre/bin/java	
 	
 	
 1057	
 	
 	
 	
 	
 	
 自動モード	
 
*	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /usr/lib/jvm/java-6-openjdk-armhf/jre/bin/java	
 	
 	
 1057	
 	
 	
 	
 	
 	
 手動モード	
 
	
 	
 2	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /usr/lib/jvm/java-7-openjdk-armhf/bin/java	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 	
 	
 手動モード	
 
	
 	
 3	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /usr/lib/jvm/java-7-openjdk-armhf/jre/bin/java	
 	
 	
 1043	
 	
 	
 	
 	
 	
 手動モード	
 
	
 
現在の選択	
 [*]	
 を保持するには	
 Enter、さもなければ選択肢の番号のキーを押してください:	
 2	
 
update-alternatives:	
 /usr/bin/java	
 (java)	
 を提供するために	
 手動モード	
 で	
 /usr/lib/jvm/java-7-openjdk-armhf/bin/java	
 を使
います	
 
  
最後に、Java のバージョンを確認します。  
  
$	
 java	
 -version	
 
java	
 version	
 "1.7.0_25"	
 
OpenJDK	
 Runtime	
 Environment	
 (IcedTea	
 2.3.10)	
 (7u25-2.3.10-1~deb7u1+rpi1)	
 
OpenJDK	
 Zero	
 VM	
 (build	
 22.0-b10,	
 mixed	
 mode)	
 
  
  
  
  

  
6.Hadoop のインストール/設定  
・ソースコードのダウンロード及びインストール  
Hadoop にはバージョン 1 系と、2013 年年 10 ⽉月 16 ⽇日に正式版としてリリースされたバージョン 2 系がありますが、ここではバージ
ョン 1 系を使って構築します。以下の URL からバージョン 1 系の最新版をダウンロードします。  
  
http://hadoop.apache.org/releases.html#Download	
 
  
$	
 sudo	
 tar	
 zxf	
 hadoop-1.2.1.tar.gz	
 -C	
 /usr/local	
 
$	
 cd	
 /usr/local	
 
$	
 sudo	
 ln	
 –s	
 hadoop-1.2.1	
 hadoop	
 
$	
 sudo	
 chwon	
 –R	
 hadoop:hadoop	
 hadoop	
 
$	
 hadoop	
 version	
 
Hadoop	
 1.2.1	
 
Subversion	
 https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2	
 -r	
 1503152	
 
Compiled	
 by	
 mattf	
 on	
 Mon	
 Jul	
 22	
 15:23:09	
 PDT	
 2013	
 
From	
 source	
 with	
 checksum	
 6923c86528809c4e7e6f493b6b413a9a	
 
This	
 command	
 was	
 run	
 using	
 /usr/local/hadoop/hadoop-core-1.2.1.jar	
 
  
・Hadoop の設定  
今回の設定では、node1 でマスターデーモンを起動し、node1 と node2 でスレーブデーモンを起動する場合を想定しています。すべ
てのノードで同じ設定を⾏行行います。まず、ユーザ環境の設定を⾏行行います。  
  
$	
 vi	
 ~/.bashrc	
 
	
 
export	
 JAVA_HOME=/usr/lib/jvm/java-7-openjdk-armhf	
 
export	
 HADOOP_INSTALL=/usr/local/hadoop	
 
export	
 PATH=$PATH:$HADOOP_INSTALL/bin	
 
	
 
次に、Hadoop の設定を⾏行行います。  
  
$	
 vi	
 /usr/local/hadoop/conf/hadoop-env.sh	
 
	
 
export	
 JAVA_HOME=/usr/lib/jvm/java-7-openjdk-armhf	
 
export	
 HADOOP_HEAPSIZE=272	
 
  
$	
 vi	
 /usr/local/hadoo/conf/core-site.xml	
 
	
 
<?xml	
 version="1.0"?>	
 
<?xml-stylesheet	
 type="text/xsl"	
 href="configuration.xsl"?>	
 
	
 
<!--	
 Put	
 site-specific	
 property	
 overrides	
 in	
 this	
 file.	
 -->	
 
	
 
<configuration>	
 
	
 	
 <property>	
 
	
 	
 	
 	
 <name>hadoop.tmp.dir</name>	
 
	
 	
 	
 	
 <value>/usr/local/fs/hadoop/tmp</value>	
 
	
 	
 </property>	
 
	
 	
 <property>	
 
	
 	
 	
 	
 <name>fs.default.name</name>	
 
	
 	
 	
 	
 <value>hdfs://node1:54310</value>	
 
	
 	
 </property>	
 
</configuration>	
 
  
$	
 vi	
 /usr/local/hadoop/conf/hdfs-site.xml
<?xml	
 version="1.0"?>	
 
<?xml-stylesheet	
 type="text/xsl"	
 href="configuration.xsl"?>	
 
	
 
<!--	
 Put	
 site-specific	
 property	
 overrides	
 in	
 this	
 file.	
 -->	
 
	
 
<configuration>	
 
	
 	
 <property>	
 
	
 	
 	
 	
 <name>dfs.replication</name>	
 
	
 	
 	
 	
 <value>2</value>	
 
	
 	
 </property>	
 
</configuration>	
 
  
スレーブノードが 2 台しかないため、ここでは dfs.replication を 2 に設定しています。  
  
$	
 vi	
 /usr/local/hadoop/conf/mapred-site.xml	
 
	
 
<?xml	
 version="1.0"?>	
 
<?xml-stylesheet	
 type="text/xsl"	
 href="configuration.xsl"?>	
 
	
 
<!--	
 Put	
 site-specific	
 property	
 overrides	
 in	
 this	
 file.	
 -->	
 
	
 
<configuration>	
 
	
 	
 <property>	
 
	
 	
 	
 	
 <name>mapred.job.tracker</name>	
 
	
 	
 	
 	
 <value>node1:54311</value>	
 
	
 	
 </property>	
 
</configuration>	
 
  
$	
 vi	
 /usr/local/hadoop/conf/masters	
 
	
 
node1	
 
  
$	
 vi	
 /usr/local/hadoop/conf/slaves	
 
	
 
node1	
 
node2	
 
  
HDFS のためのディレクトリを作成します。  
  
$	
 sudo	
 mkdir	
 –p	
 /usr/local/hadoop/fs/hadoop/tmp	
 
$	
 sudo	
 chown	
 hadoop:hadoop	
 /usr/local/hadoop/fs/hadoop/tmp	
 
$	
 sudo	
 chmod	
 750	
 /usr/local/hadoop/fs/hadoop/tmp	
 
  
マスターノードで HDFS をフォーマットします。コマンドはマスターノードで実⾏行行します。  
  
node1$	
 /usr/local/hadoop/bin/hadoop	
 namenode	
 -format	
 
  
・Hadoop デーモンの起動  
Hadoop のデーモンを起動します。1 つのコマンドでマスター/スレーブのすべてのデーモンが起動します。  
  
node1$	
 /usr/local/hadoop/bin/start-all.sh	
 
  
・デーモンの起動確認  
マスターノードで下記のように NameNode/DataNode/SecondaryNameNode/JobTracker/TaskTracker が起動していれば、
成功です。  
  
node1$	
 jps	
 
2443	
 DataNode	
 
2627	
 JobTracker	
 
2812	
 Jps	
 
2548	
 SecondaryNameNode	
 
2334	
 NameNode	
 
2737	
 TaskTracker	
 
  
⼀一⽅方、スレーブノードで下記のように DataNode/TaskTracker が起動していれば、成功です。  
  
node2$	
 jps	
 
2974	
 TaskTracker	
 
2856	
 DataNode	
 
3012	
 Jps	
 
  
  
  

  
7.Hive のインストール/設定  
・ソースコードのダウンロード及びインストール  
下記の URL からコンパイル済みのアーカイブをダウンロードします。  
  
http://hive.apache.org/releases.html#Download	
 
  
$	
 sudo	
 tar	
 zxvf	
 hive-0.12.0-bin.tar.gz	
 -C	
 /usr/local/	
 
$	
 sudo	
 ln	
 -s	
 /usr/local/hive-0.12.0-bin	
 /usr/local/hive	
 
$	
 sudo	
 chown	
 -R	
 hadoop:hadoop	
 /usr/local/hive	
 
  
・Hive  Metastore ⽤用のデータベースの構築  
Hive では Metastore ⽤用のデータベースが必要で、今回は MySQL を使⽤用しました。下記のように、データベース名は"metastore"と
し、ユーザ名は"hive"とし、パスワードは"password"として設定しました。その後、アーカイブに同梱されているスキーマを利利⽤用し
て、テーブルを作成します。  
  
$	
 sudo	
 apt-get	
 install	
 mysql-server	
 
$	
 mysql	
 -u	
 root	
 -p	
 
...	
 
mysql>	
 CREATE	
 USER	
 'hive'@'localhost'	
 IDENTIFIED	
 BY	
 'password';	
 
Query	
 OK,	
 0	
 rows	
 affected	
 (0.00	
 sec)	
 
	
 
mysql>	
 CREATE	
 DATABASE	
 metastore;	
 
Query	
 OK,	
 1	
 row	
 affected	
 (0.00	
 sec)	
 
	
 
mysql>	
 GRANT	
 ALL	
 PRIVILEGES	
 ON	
 metastore.*	
 to	
 'hive'@'localhost'	
 WITH	
 GRANT	
 OPTION	
 
Query	
 OK,	
 0	
 rows	
 affected	
 (0.00	
 sec)	
 
	
 
mysql>	
 FLUSH	
 PRIVILEGES;	
 
Query	
 OK,	
 0	
 rows	
 affected	
 (0.00	
 sec)	
 
	
 
mysql>	
 quit	
 
Bye	
 
	
 
$	
 mysql	
 -u	
 hive	
 -D	
 metastore	
 -p	
 <	
 /usr/local/hive/scripts/metastore/upgrade/mysql/hive-schema-0.12.0.mysql.sql	
 
Enter	
 password:	
 
  
・Hive の設定  
まず、Metastore にアクセスするための JDBC ドライバをダウンロードし、所定のディレクトリに保存します。  
  
$	
 curl	
 -L	
 '	
 http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.24.tar.gz/from/http://cdn.mysql.com/	
 '|	
 tar	
 xz	
 
$	
 sudo	
 cp	
 mysql-connector-java-5.1.24/mysql-connector-java-5.1.24-bin.jar	
 /usr/local/hive/lib/	
 

  
次に、最低限必要な設定を⾏行行います。  
  
$	
 sudo	
 vi	
 /usr/local/hive/conf/hive-env.sh	
 
	
 
export	
 HADOOP_HEAPSIZE=272	
 
export	
 HADOOP_HOME=/usr/local/hadoop	
 
export	
 HIVE_CONF_DIR=/usr/local/hive/conf	
 
	
 
$	
 sudo	
 vi	
 /usr/local/hive/conf/hive-site.xml
<?xml	
 version="1.0"?>	
 
<?xml-stylesheet	
 type="text/xsl"	
 href="configuration.xsl"?>	
 
	
 
<configuration>	
 
<property>	
 
	
 	
 <name>hive.metastore.uris</name>	
 
	
 	
 <value>thrift://localhost:9083</value>	
 
</property>	
 
<property>	
 
	
 	
 <name>javax.jdo.option.ConnectionURL</name>	
 
	
 	
 <value>jdbc:mysql://localhost:3306/metastore</value>	
 
</property>	
 
<property>	
 
	
 	
 <name>javax.jdo.option.ConnectionDriverName</name>	
 
	
 	
 <value>com.mysql.jdbc.Driver</value>	
 
</property>	
 
<property>	
 
	
 	
 <name>javax.jdo.option.ConnectionUserName</name>	
 
	
 	
 <value>hive</value>	
 
</property>	
 
<property>	
 
	
 	
 <name>javax.jdo.option.ConnectionPassword</name>	
 
	
 	
 <value>password</value>	
 
</property>	
 
<property>	
 
	
 	
 <name>datanucleus.autoCreateSchema</name>	
 
	
 	
 <value>false</value>	
 
</property>	
 
<property>	
 
	
 	
 <name>hive.metastore.warehouse.dir</name>	
 
	
 	
 <value>/hive</value>	
 
</property>	
 
  
・Hive データ⽤用のディレクトリ作成  
Hive のデータを保存するためのディレクトリを作成します。  
  
$	
 sudo	
 -h	
 hadoop	
 hadoop	
 fs	
 -mkdir	
 /hive	
 
$	
 sudo	
 -h	
 hadoop	
 hadoop	
 fs	
 -chown	
 -R	
 hadoop:hadoop	
 /hive	
 
  
・Hive デーモンの起動  
Hive  Metastore デーモンと Hiveserver デーモンの 2 つを起動します。  
  
$	
 sudo	
 -u	
 hadoop	
 /usr/local/hive/bin/hive	
 --service	
 metastore	
 
$	
 sudo	
 -u	
 hadoop	
 /usr/local/hive/bin/hive	
 --service	
 hiveserver	
 
  
・Hive の動作確認  
hive コマンドを実⾏行行し、テーブル表⽰示コマンドを実⾏行行します。デフォルトではテーブルは存在しません。テーブルを作成・参照して、
"OK"とテーブル名が表⽰示されれば、正常に動作しています。  
  
$	
 /usr/local/hive/bin/hive	
 
	
 
Logging	
 initialized	
 using	
 configuration	
 in	
 
jar:file:/usr/local/hive-0.12.0-bin/lib/hive-common-0.12.0.jar!/hive-log4j.properties	
 
	
 
hive>	
 create	
 table	
 test	
 (str	
 STRING);
OK	
 
Time	
 taken:	
 3.981	
 seconds	
 
	
 
hive>	
 show	
 tables;	
 
OK	
 
test	
 
Time	
 taken:	
 87.881	
 seconds,	
 Fetched:	
 1	
 row(s)	
 
  
  

  
8.  HiBench(HiveBench)による性能評価  
HiBench とは、オープンソースの Hadoop ベンチマークスイートです。幾つかのベンチマークテストが含まれており、その 1 つに
HiveBench という Hive をベンチマークするためのテストがあります。今回はそれを⽤用いて Hive の読み出し性能を評価しました。  
  
・HiBench のインストール  
github のリポジトリからソースコードをダウンロードします。  
  
$	
 git	
 clone	
 https://github.com/intel-hadoop/HiBench.git	
 
  
・テストデータの⽣生成  
テストデータとして 1200 ⾏行行の"rankings"テーブルと、10000 ⾏行行の"uservisits"テーブルを作成します。それぞれ SequenceFile フォ
ーマットで作成します。  
  
$	
 hadoop	
 fs	
 -mkdir	
 /HiBench	
 
$	
 hadoop	
 fs	
 -mkdir	
 /HiBench/Hive	
 
$	
 hadoop	
 jar	
 ./HiBench/common/autogen/dist/datatools.jar	
 HiBench.DataGen	
 -t	
 hive	
 -b	
 /HiBench/Hive	
 -n	
 Input	
 -m	
 96	
 -r	
 48	
 -p	
 
1200	
 -v	
 10000	
 -o	
 sequence	
 
  
・Hive テーブルの作成  
⽣生成したデータから Hive テーブルを作成します。  
  
$	
 /usr/local/hive/bin/hive	
 
	
 
Logging	
 initialized	
 using	
 configuration	
 in	
 
jar:file:/usr/local/hive-0.12.0-bin/lib/hive-common-0.12.0.jar!/hive-log4j.properties	
 
	
 
hive>	
 CREATE	
 EXTERNAL	
 TABLE	
 rankings	
 (pageURL	
 STRING,	
 pageRank	
 INT,	
 avgDuration	
 INT)	
 
ROW	
 FORMAT	
 DELIMITED	
 FIELDS	
 TERMINATED	
 BY	
 ','	
 
STORED	
 AS	
 SequenceFile	
 
LOCATION	
 '/HiBench/Hive/Input/rankings/';	
 
	
 
hive>	
  REATE	
  XTERNAL	
  ABLE	
  servisits	
  sourceIP	
  TRING,	
  estURL	
  TRING,	
  isitDate	
  TRING,	
  dRevenue	
  OUBLE,	
  serAgent	
  TRING,	
 
C
E
T
u
(
S
d
S
v
S
a
D
u
S
countryCode	
 STRING,	
 languageCode	
 STRING,	
 searchWord	
 STRING,	
 duration	
 INT)	
 
ROW	
 FORMAT	
 DELIMITED	
 FIELDS	
 TERMINATED	
 BY	
 ','	
 
STORED	
 AS	
 SequenceFile	
 
LOCATION	
 '/HiBench/Hive/Input/uservisits/';	
 
  
・Hive クエリによるレイテンシ測定  
HiveBench で予め⽤用意されているクエリのうち、読み出し部分のクエリを実⾏行行します。標準で⽤用意されているテーブルサイズより 10
万分の 1 のスケールですが、処理理に約 16 分もかかりました。  
  
hive>	
  ELECT	
  ourceIP,	
  um(adRevenue)	
  s	
  otalRevenue,	
  vg(pageRank)	
  ROM	
  ankings	
  	
  OIN	
  SELECT	
  ourceIP,	
  estURL,	
  dRevenue	
 
S
s
s
a t
a
F
r
RJ
(
s
d
a
FROM	
 uservisits	
 UV	
 WHERE	
 (datediff(UV.visitDate,	
 '1999-01-01')>=0	
 AND	
 datediff(UV.visitDate,	
 '2000-01-01')<=0))	
 NUV	
 ON	
 
(R.pageURL	
 =	
 NUV.destURL)	
 group	
 by	
 sourceIP	
 order	
 by	
 totalRevenue	
 DESC	
 limit	
 1;	
 
	
 
<中略>	
 
	
 
MapReduce	
 Jobs	
 Launched:	
 
Job	
 0:	
 Map:	
 2	
 	
 Reduce:	
 1	
 	
 	
 Cumulative	
 CPU:	
 138.59	
 sec	
 	
 	
 HDFS	
 Read:	
 2027641	
 HDFS	
 Write:	
 11399	
 SUCCESS	
 
Job	
 1:	
 Map:	
 1	
 	
 Reduce:	
 1	
 	
 	
 Cumulative	
 CPU:	
 25.65	
 sec	
 	
 	
 HDFS	
 Read:	
 11863	
 HDFS	
 Write:	
 10119	
 SUCCESS
Job	
 2:	
 Map:	
 1	
 	
 Reduce:	
 1	
 	
 	
 Cumulative	
 CPU:	
 25.39	
 sec	
 	
 	
 HDFS	
 Read:	
 10583	
 HDFS	
 Write:	
 30	
 SUCCESS	
 
Total	
 MapReduce	
 CPU	
 Time	
 Spent:	
 3	
 minutes	
 9	
 seconds	
 630	
 msec	
 
OK	
 
64.109.226.120	
 	
 	
 	
 	
 0.9987925	
 	
 	
 	
 	
 37.0	
 
Time	
 taken:	
 991.129	
 seconds,	
 Fetched:	
 1	
 row(s)	
 
	
 
  
  

More Related Content

What's hot

OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装Takuya ASADA
 
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
 
仮想化環境での利用者公平性
仮想化環境での利用者公平性仮想化環境での利用者公平性
仮想化環境での利用者公平性Takuya ASADA
 

What's hot (7)

OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
Sensu + Graphite を1年運⽤してみて #sensucasual
Sensu + Graphite を1年運⽤してみて #sensucasual Sensu + Graphite を1年運⽤してみて #sensucasual
Sensu + Graphite を1年運⽤してみて #sensucasual
 
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
 
KVM+cgroup
KVM+cgroupKVM+cgroup
KVM+cgroup
 
仮想化環境での利用者公平性
仮想化環境での利用者公平性仮想化環境での利用者公平性
仮想化環境での利用者公平性
 
【さくらのクラウド】ローカルルータ導入ガイド
【さくらのクラウド】ローカルルータ導入ガイド【さくらのクラウド】ローカルルータ導入ガイド
【さくらのクラウド】ローカルルータ導入ガイド
 
DPDKを拡張してみた話し
DPDKを拡張してみた話しDPDKを拡張してみた話し
DPDKを拡張してみた話し
 

Similar to ⾃宅で Hive 愛を育むための⼿順(Raspberry Pi 編)

A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0Satoshi Kume
 
TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇Manabu Ori
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)Satoshi Shimazaki
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presenKouhei Maeda
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairNaoya Inada
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみようMasahiko Hashimoto
 
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...Netwalker lab kapper
 
Firefox OS + Raspberry Pi
Firefox OS + Raspberry PiFirefox OS + Raspberry Pi
Firefox OS + Raspberry PiEnsekiTT
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾外道 父
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Kazuo Asano (@kazuo_asa)
 
【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう
【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう
【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみようアシアル株式会社
 
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
 
20200129 bydstudy kashiwagi
20200129 bydstudy kashiwagi20200129 bydstudy kashiwagi
20200129 bydstudy kashiwagibeyond Co., Ltd.
 

Similar to ⾃宅で Hive 愛を育むための⼿順(Raspberry Pi 編) (20)

Code Pack の話
Code Pack の話Code Pack の話
Code Pack の話
 
A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0
 
Osc2013 tokyospring
Osc2013 tokyospringOsc2013 tokyospring
Osc2013 tokyospring
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
 
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
 
Firefox OS + Raspberry Pi
Firefox OS + Raspberry PiFirefox OS + Raspberry Pi
Firefox OS + Raspberry Pi
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6
 
【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう
【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう
【アシアル塾】Linux超入門編・第二回 仮想サーバー上にLAMP環境を構築してみよう
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
20200129 bydstudy kashiwagi
20200129 bydstudy kashiwagi20200129 bydstudy kashiwagi
20200129 bydstudy kashiwagi
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 

More from Yukinori Suda

Hadoop operation chaper 4
Hadoop operation chaper 4Hadoop operation chaper 4
Hadoop operation chaper 4Yukinori Suda
 
Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話Yukinori Suda
 
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービスHadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービスYukinori Suda
 
自宅でHive愛を育む方法 〜Raspberry Pi編〜
自宅でHive愛を育む方法 〜Raspberry Pi編〜自宅でHive愛を育む方法 〜Raspberry Pi編〜
自宅でHive愛を育む方法 〜Raspberry Pi編〜Yukinori Suda
 
Evaluation of cloudera impala 1.1
Evaluation of cloudera impala 1.1Evaluation of cloudera impala 1.1
Evaluation of cloudera impala 1.1Yukinori Suda
 
HiveとImpalaのおいしいとこ取り
HiveとImpalaのおいしいとこ取りHiveとImpalaのおいしいとこ取り
HiveとImpalaのおいしいとこ取りYukinori Suda
 
Performance Evaluation of Cloudera Impala GA
Performance Evaluation of Cloudera Impala GAPerformance Evaluation of Cloudera Impala GA
Performance Evaluation of Cloudera Impala GAYukinori Suda
 
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to HivePerformance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to HiveYukinori Suda
 
Performance evaluation of cloudera impala (with Comparison to Hive)
Performance evaluation of cloudera impala (with Comparison to Hive)Performance evaluation of cloudera impala (with Comparison to Hive)
Performance evaluation of cloudera impala (with Comparison to Hive)Yukinori Suda
 
Cloudera impalaの性能評価(Hiveとの比較)
Cloudera impalaの性能評価(Hiveとの比較)Cloudera impalaの性能評価(Hiveとの比較)
Cloudera impalaの性能評価(Hiveとの比較)Yukinori Suda
 

More from Yukinori Suda (10)

Hadoop operation chaper 4
Hadoop operation chaper 4Hadoop operation chaper 4
Hadoop operation chaper 4
 
Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話Cloudera Impalaをサービスに組み込むときに苦労した話
Cloudera Impalaをサービスに組み込むときに苦労した話
 
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービスHadoopエコシステムを駆使したこれからのWebアクセス解析サービス
Hadoopエコシステムを駆使したこれからのWebアクセス解析サービス
 
自宅でHive愛を育む方法 〜Raspberry Pi編〜
自宅でHive愛を育む方法 〜Raspberry Pi編〜自宅でHive愛を育む方法 〜Raspberry Pi編〜
自宅でHive愛を育む方法 〜Raspberry Pi編〜
 
Evaluation of cloudera impala 1.1
Evaluation of cloudera impala 1.1Evaluation of cloudera impala 1.1
Evaluation of cloudera impala 1.1
 
HiveとImpalaのおいしいとこ取り
HiveとImpalaのおいしいとこ取りHiveとImpalaのおいしいとこ取り
HiveとImpalaのおいしいとこ取り
 
Performance Evaluation of Cloudera Impala GA
Performance Evaluation of Cloudera Impala GAPerformance Evaluation of Cloudera Impala GA
Performance Evaluation of Cloudera Impala GA
 
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to HivePerformance evaluation of cloudera impala 0.6 beta with comparison to Hive
Performance evaluation of cloudera impala 0.6 beta with comparison to Hive
 
Performance evaluation of cloudera impala (with Comparison to Hive)
Performance evaluation of cloudera impala (with Comparison to Hive)Performance evaluation of cloudera impala (with Comparison to Hive)
Performance evaluation of cloudera impala (with Comparison to Hive)
 
Cloudera impalaの性能評価(Hiveとの比較)
Cloudera impalaの性能評価(Hiveとの比較)Cloudera impalaの性能評価(Hiveとの比較)
Cloudera impalaの性能評価(Hiveとの比較)
 

Recently uploaded

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 

Recently uploaded (7)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 

⾃宅で Hive 愛を育むための⼿順(Raspberry Pi 編)

  • 1. [⾃自宅宅で Hive 愛を育むための⼿手順(Raspberry  Pi 編) ]   <⽬目次>   1.  OS(Raspberian)のインストール及び設定   2.   ハードウェアのチューニング   3.  OS(Raspberian)のチューニング   4.   パーティションの拡張   5.  Java のインストール   6.  Hadoop のインストール/設定   7.  Hive のインストール/設定   8.  HiBench(HiveBench)による性能評価      
  • 2. 1.  OS(Raspberian)のインストール及び設定   ・OS イメージのダウンロード   Raspberry  Pi ⽤用の Linux ディストリビューションとして複数提供されているが、今回は Raspbian  “wheezy”を⽤用いました。   下記の URL から zip 化されたイメージをダウンロードします。     http://www.raspberrypi.org/downloads   ・SD カードに OS イメージをコピー   zip を解凍すると、.img ファイルが保存されます。このイメージファイルを SD カードにコピーします。   ここでは Mac  OSX のターミナルを利利⽤用した場合の例例を⽰示します。     % df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk0s2 233Gi 99Gi 134Gi 43% 26039489 35029951 43% / devfs 187Ki 187Ki 0Bi 100% 646 0 100% /dev /dev/disk1s2 931Gi 657Gi 275Gi 71% 172133623 71973043 71% /Volumes/Macintosh HD map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home   SD カードをスロットに挿⼊入すると、     % df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk0s2 233Gi 99Gi 134Gi 43% 26039510 35029930 43% / devfs 190Ki 190Ki 0Bi 100% 658 0 100% /dev /dev/disk1s2 931Gi 657Gi 275Gi 71% 172133623 71973043 71% /Volumes/Macintosh HD map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home /dev/disk2s1 56Mi 18Mi 37Mi 34% 512 0 100% /Volumes/No Name   diskutil を使い、SD カードをアンマウントする。     $ sudo diskutil unmount /dev/disk2s1 Volume boot on disk2s1 unmounted   次に、dd コマンドでイメージを SD カードに書き込む。     $ sudo dd bs=1m if=2013-09-25-wheezy-raspbian.img of=/dev/rdisk2 1850+0 records in 1850+0 records out 1939865600 bytes transferred in 165.927421 secs (11691049 bytes/sec)   イメージを書き込んだ SD カードを Raspberry  Pi のスロットに差し込み、電源を⼊入れて起動します。     ・タイムゾーン/ロケール/キーボードの設定   OS が起動すると、raspi-‐‑‒config コマンドの実⾏行行画⾯面が表⽰示されます。ここでは最低限のタイムゾーン/ロケール/キーボードの設定 のみしておきます。  
  • 3. <タイムゾーンの設定>   「4  Internationalisation  Options」-‐‑‒>「I2  Change  Timezone」-‐‑‒>「Asia」-‐‑‒>「Tokyo」を選択します。     <ロケールの設定>   「4  Internationalisation  Options」-‐‑‒>「ja_̲JP.UTF-‐‑‒8」-‐‑‒>「ja_̲JP.UTF-‐‑‒8」を選択します。     <キーボードの設定>   「4  Internationalisation  Options」-‐‑‒>「I3  Change  Keyboard  Layout」-‐‑‒>「Generic  101-‐‑‒ky  PC」-‐‑‒>「Other」-‐‑‒>「Japanese」-‐‑‒> 「Japanese」-‐‑‒>「The  default  for  the  keyboard  layout」-‐‑‒>「No  Compose  key」-‐‑‒>「Yes」を選択     ・OS の更更新   まず最初に OS を最新版に更更新し、リブートします。     $ sudo apt-get update $ sudo apt-get upgrade $ sudo reboot   ・ネットワークの設定   次に、/etc/networks/interfaces を編集し、インターネットにアクセス可能にします。例例えば、下記のように設定します。     $ sudo vi /etc/networks/interfaces auto lo0 iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.100.1 netmask 255.255.255.0 network 192.168.100.0 gateway 192.168.100.254 dns-servers 192.168.100.254   DNS サーバが存在しない場合は、 /etc/hosts ファイルにノードの IP アドレスとホスト名を追記します。 今回は 2 台のノードで Hdoop クラスタを構築しました。     $ sudo vi /etc/hosts (以下、追記) 192.168.100.1 node1 192.168.100.2 node2   ・時刻同期の設定   時刻同期するための NTP クライアントはデフォルトで設定されており、特に追加設定は不不要です。     ・ユーザ/グループの作成  
  • 4. hadoop を実⾏行行するためのユーザとグループを作成しておきます。     $ sudo addgroup hadoop $ sudo adduser –ingroup hadoop hadoop $ sudo adduser hadoop sudo ・SSH 認証鍵の設定   RSA 暗号鍵をパスワードなしで⽣生成し、authorized_̲keys ファイルに追記します。Hadoop クラスタで複数台の Raspberry  Pi を利利⽤用 する場合は、すべてのノードの公開鍵のすべてのノードの authorized_̲keys に追記しておく必要があります。     $ ssh-keygen –t rsa –P “” $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys        
  • 5. 2.   ハードウェアのチューニング   <メモリ分割>   GPU が使⽤用できるメモリの最⼩小値を設定します。   raspi-‐‑‒config を実⾏行行すると、下記の画⾯面が表⽰示されます。   「8  Advenced  Options」-‐‑‒>「A3  Memory  Split」-‐‑‒>「16」と設定します。     $ sudo raspi-config ┌─────────┤ Raspberry Pi Software Configuration Tool (raspi-config) ├──────────┐ │ Setup Options │ │ │ │ 1 Expand Filesystem Ensures that all of the SD card s │ │ 2 Change User Password Change password for the default u │ │ 3 Enable Boot to Desktop/Scratch Choose whether to boot into a des │ │ 4 Internationalisation Options Set up language and regional sett │ │ 5 Enable Camera Enable this Pi to work with the R │ │ 6 Add to Rastrack Add this Pi to the online Raspber │ │ 7 Overclock Configure overclocking for your P │ │ 8 Advanced Options Configure advanced settings │ │ 9 About raspi-config Information about this configurat │ │ │ │ │ │ <Select> <Finish> │ │ │ └────────────────────────────────────────────────-─┘   <オーバークロック>   「7  Overclock」-‐‑‒>「High」を選択します。     ┌─────────────────────────────┐ │ Chose overclock preset │ │ │ │ None 700MHz ARM, 250MHz core │ │ Modest 800MHz ARM, 250MHz core │ │ Medium 900MHz ARM, 250MHz core │ │ High 950MHz ARM, 250MHz core │ │ Turbo 1000MHz ARM, 500MHz cor │ │ │ │ │ │ <了解> <取消> │ │ │ └─────────────────────────────┘   ※途中で警告画⾯面が表⽰示されますが、⾃自⼰己責任で実施してください。下記の URL に詳細情報が記載されています。   ※「Turbo」を選択すると、SD カードが破損する可能性あるとの警告が表⽰示されるため、今回は「High」に設定しています。     http://elinux.org/RPi_Overclocking        
  • 6. 3.  OS(Raspberian)のチューニング   ・noatime オプションでマウント   ディスクの mount オプションに”noatime”を設定しますが、 Raspberian ではデフォルトで”noatime”のマウントオプションが設定さ れています。     ・swappiness の設定   スワップの発⽣生を極⼒力力抑制するために、vm.swappiness を 0 または 5 に設定しますが、Raspberian ではデフォルトで 1 に設定され ているため、変更更不不要です。     ・limits.conf   プロセスが open できるファイルディスクリプタ数の上限を変更更します。     $ sudo vi /etc/security/limits.conf (以下、追記) hadoop soft nofile 32768 hadoop hard nofile 32768      
  • 7. 4.パーティンションの拡張   SD カードに書き込んだイメージは、デフォルトで 2GB しか利利⽤用できません。2GB 以上の容量量の SD カードを使⽤用している場合、パー ティションを拡張する必要があります。注意点としては、Linux パーティションの開始位置(⻘青字)を最初に調べておく必要がある点 です。下記は実際の⼿手順で、⾚赤字が⼊入⼒力力⽂文字です。     $ sudo fdisk /dev/mmcblk0 Command (m for help): p Disk /dev/mmcblk0: 15.8 GB, 15811477504 bytes 4 heads, 16 sectors/track, 482528 cylinders, total 30881792 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0002c262 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA) /dev/mmcblk0p2 122880 5785599 2831360 83 Linux Command (m for help): d Partition number (1-4): 2 Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (2048-30881791, default 2048): 122880 Last sector, +sectors or +size{K,M,G} (122880-30881791, default 30881791): Using default value 30881791 Command (m for help): p Disk /dev/mmcblk0: 15.8 GB, 15811477504 bytes 4 heads, 16 sectors/track, 482528 cylinders, total 30881792 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0002c262 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA) /dev/mmcblk0p2 122880 30881791 15379456 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. $ sudo reboot   再起動後に、下記のコマンドを実⾏行行し、パーティションの再構築して、完了了するとパーティションが拡張されています。    
  • 8. $ sudo resize2fs /dev/mmcblk0p2 resize2fs 1.42.5 (29-Jul-2012) Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1        
  • 9. 5.Java のインストール   Raspberian には標準で Java  1.6 がインストールされています。 ARM ⽤用の Open  Java  Development  Kit  (JDK)  1.7 を使⽤用するため、 下記のコマンドでインストールします。     $ sudo apt-get install openjdk-7-jdk   次に、下記のコマンドで Java のバージョンを 1.6 から 1.7 に切切り替えます。     $ sudo update-alternatives --config java alternative java (/usr/bin/java を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------------------------------ 0 /usr/lib/jvm/java-6-openjdk-armhf/jre/bin/java 1057 自動モード * 1 /usr/lib/jvm/java-6-openjdk-armhf/jre/bin/java 1057 手動モード 2 /usr/lib/jvm/java-7-openjdk-armhf/bin/java 1 手動モード 3 /usr/lib/jvm/java-7-openjdk-armhf/jre/bin/java 1043 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 2 update-alternatives: /usr/bin/java (java) を提供するために 手動モード で /usr/lib/jvm/java-7-openjdk-armhf/bin/java を使 います   最後に、Java のバージョンを確認します。     $ java -version java version "1.7.0_25" OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1~deb7u1+rpi1) OpenJDK Zero VM (build 22.0-b10, mixed mode)          
  • 10. 6.Hadoop のインストール/設定   ・ソースコードのダウンロード及びインストール   Hadoop にはバージョン 1 系と、2013 年年 10 ⽉月 16 ⽇日に正式版としてリリースされたバージョン 2 系がありますが、ここではバージ ョン 1 系を使って構築します。以下の URL からバージョン 1 系の最新版をダウンロードします。     http://hadoop.apache.org/releases.html#Download   $ sudo tar zxf hadoop-1.2.1.tar.gz -C /usr/local $ cd /usr/local $ sudo ln –s hadoop-1.2.1 hadoop $ sudo chwon –R hadoop:hadoop hadoop $ hadoop version Hadoop 1.2.1 Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152 Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013 From source with checksum 6923c86528809c4e7e6f493b6b413a9a This command was run using /usr/local/hadoop/hadoop-core-1.2.1.jar   ・Hadoop の設定   今回の設定では、node1 でマスターデーモンを起動し、node1 と node2 でスレーブデーモンを起動する場合を想定しています。すべ てのノードで同じ設定を⾏行行います。まず、ユーザ環境の設定を⾏行行います。     $ vi ~/.bashrc export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-armhf export HADOOP_INSTALL=/usr/local/hadoop export PATH=$PATH:$HADOOP_INSTALL/bin 次に、Hadoop の設定を⾏行行います。     $ vi /usr/local/hadoop/conf/hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-armhf export HADOOP_HEAPSIZE=272   $ vi /usr/local/hadoo/conf/core-site.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/fs/hadoop/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://node1:54310</value> </property> </configuration>   $ vi /usr/local/hadoop/conf/hdfs-site.xml
  • 11. <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>   スレーブノードが 2 台しかないため、ここでは dfs.replication を 2 に設定しています。     $ vi /usr/local/hadoop/conf/mapred-site.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>node1:54311</value> </property> </configuration>   $ vi /usr/local/hadoop/conf/masters node1   $ vi /usr/local/hadoop/conf/slaves node1 node2   HDFS のためのディレクトリを作成します。     $ sudo mkdir –p /usr/local/hadoop/fs/hadoop/tmp $ sudo chown hadoop:hadoop /usr/local/hadoop/fs/hadoop/tmp $ sudo chmod 750 /usr/local/hadoop/fs/hadoop/tmp   マスターノードで HDFS をフォーマットします。コマンドはマスターノードで実⾏行行します。     node1$ /usr/local/hadoop/bin/hadoop namenode -format   ・Hadoop デーモンの起動   Hadoop のデーモンを起動します。1 つのコマンドでマスター/スレーブのすべてのデーモンが起動します。     node1$ /usr/local/hadoop/bin/start-all.sh  
  • 12. ・デーモンの起動確認   マスターノードで下記のように NameNode/DataNode/SecondaryNameNode/JobTracker/TaskTracker が起動していれば、 成功です。     node1$ jps 2443 DataNode 2627 JobTracker 2812 Jps 2548 SecondaryNameNode 2334 NameNode 2737 TaskTracker   ⼀一⽅方、スレーブノードで下記のように DataNode/TaskTracker が起動していれば、成功です。     node2$ jps 2974 TaskTracker 2856 DataNode 3012 Jps        
  • 13. 7.Hive のインストール/設定   ・ソースコードのダウンロード及びインストール   下記の URL からコンパイル済みのアーカイブをダウンロードします。     http://hive.apache.org/releases.html#Download   $ sudo tar zxvf hive-0.12.0-bin.tar.gz -C /usr/local/ $ sudo ln -s /usr/local/hive-0.12.0-bin /usr/local/hive $ sudo chown -R hadoop:hadoop /usr/local/hive   ・Hive  Metastore ⽤用のデータベースの構築   Hive では Metastore ⽤用のデータベースが必要で、今回は MySQL を使⽤用しました。下記のように、データベース名は"metastore"と し、ユーザ名は"hive"とし、パスワードは"password"として設定しました。その後、アーカイブに同梱されているスキーマを利利⽤用し て、テーブルを作成します。     $ sudo apt-get install mysql-server $ mysql -u root -p ... mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec) mysql> CREATE DATABASE metastore; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON metastore.* to 'hive'@'localhost' WITH GRANT OPTION Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye $ mysql -u hive -D metastore -p < /usr/local/hive/scripts/metastore/upgrade/mysql/hive-schema-0.12.0.mysql.sql Enter password:   ・Hive の設定   まず、Metastore にアクセスするための JDBC ドライバをダウンロードし、所定のディレクトリに保存します。     $ curl -L ' http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.24.tar.gz/from/http://cdn.mysql.com/ '| tar xz $ sudo cp mysql-connector-java-5.1.24/mysql-connector-java-5.1.24-bin.jar /usr/local/hive/lib/   次に、最低限必要な設定を⾏行行います。     $ sudo vi /usr/local/hive/conf/hive-env.sh export HADOOP_HEAPSIZE=272 export HADOOP_HOME=/usr/local/hadoop export HIVE_CONF_DIR=/usr/local/hive/conf $ sudo vi /usr/local/hive/conf/hive-site.xml
  • 14. <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hive.metastore.uris</name> <value>thrift://localhost:9083</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> <property> <name>datanucleus.autoCreateSchema</name> <value>false</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/hive</value> </property>   ・Hive データ⽤用のディレクトリ作成   Hive のデータを保存するためのディレクトリを作成します。     $ sudo -h hadoop hadoop fs -mkdir /hive $ sudo -h hadoop hadoop fs -chown -R hadoop:hadoop /hive   ・Hive デーモンの起動   Hive  Metastore デーモンと Hiveserver デーモンの 2 つを起動します。     $ sudo -u hadoop /usr/local/hive/bin/hive --service metastore $ sudo -u hadoop /usr/local/hive/bin/hive --service hiveserver   ・Hive の動作確認   hive コマンドを実⾏行行し、テーブル表⽰示コマンドを実⾏行行します。デフォルトではテーブルは存在しません。テーブルを作成・参照して、 "OK"とテーブル名が表⽰示されれば、正常に動作しています。     $ /usr/local/hive/bin/hive Logging initialized using configuration in jar:file:/usr/local/hive-0.12.0-bin/lib/hive-common-0.12.0.jar!/hive-log4j.properties hive> create table test (str STRING);
  • 15. OK Time taken: 3.981 seconds hive> show tables; OK test Time taken: 87.881 seconds, Fetched: 1 row(s)      
  • 16. 8.  HiBench(HiveBench)による性能評価   HiBench とは、オープンソースの Hadoop ベンチマークスイートです。幾つかのベンチマークテストが含まれており、その 1 つに HiveBench という Hive をベンチマークするためのテストがあります。今回はそれを⽤用いて Hive の読み出し性能を評価しました。     ・HiBench のインストール   github のリポジトリからソースコードをダウンロードします。     $ git clone https://github.com/intel-hadoop/HiBench.git   ・テストデータの⽣生成   テストデータとして 1200 ⾏行行の"rankings"テーブルと、10000 ⾏行行の"uservisits"テーブルを作成します。それぞれ SequenceFile フォ ーマットで作成します。     $ hadoop fs -mkdir /HiBench $ hadoop fs -mkdir /HiBench/Hive $ hadoop jar ./HiBench/common/autogen/dist/datatools.jar HiBench.DataGen -t hive -b /HiBench/Hive -n Input -m 96 -r 48 -p 1200 -v 10000 -o sequence   ・Hive テーブルの作成   ⽣生成したデータから Hive テーブルを作成します。     $ /usr/local/hive/bin/hive Logging initialized using configuration in jar:file:/usr/local/hive-0.12.0-bin/lib/hive-common-0.12.0.jar!/hive-log4j.properties hive> CREATE EXTERNAL TABLE rankings (pageURL STRING, pageRank INT, avgDuration INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SequenceFile LOCATION '/HiBench/Hive/Input/rankings/'; hive> REATE XTERNAL ABLE servisits sourceIP TRING, estURL TRING, isitDate TRING, dRevenue OUBLE, serAgent TRING, C E T u ( S d S v S a D u S countryCode STRING, languageCode STRING, searchWord STRING, duration INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SequenceFile LOCATION '/HiBench/Hive/Input/uservisits/';   ・Hive クエリによるレイテンシ測定   HiveBench で予め⽤用意されているクエリのうち、読み出し部分のクエリを実⾏行行します。標準で⽤用意されているテーブルサイズより 10 万分の 1 のスケールですが、処理理に約 16 分もかかりました。     hive> ELECT ourceIP, um(adRevenue) s otalRevenue, vg(pageRank) ROM ankings OIN SELECT ourceIP, estURL, dRevenue S s s a t a F r RJ ( s d a FROM uservisits UV WHERE (datediff(UV.visitDate, '1999-01-01')>=0 AND datediff(UV.visitDate, '2000-01-01')<=0)) NUV ON (R.pageURL = NUV.destURL) group by sourceIP order by totalRevenue DESC limit 1; <中略> MapReduce Jobs Launched: Job 0: Map: 2 Reduce: 1 Cumulative CPU: 138.59 sec HDFS Read: 2027641 HDFS Write: 11399 SUCCESS Job 1: Map: 1 Reduce: 1 Cumulative CPU: 25.65 sec HDFS Read: 11863 HDFS Write: 10119 SUCCESS
  • 17. Job 2: Map: 1 Reduce: 1 Cumulative CPU: 25.39 sec HDFS Read: 10583 HDFS Write: 30 SUCCESS Total MapReduce CPU Time Spent: 3 minutes 9 seconds 630 msec OK 64.109.226.120 0.9987925 37.0 Time taken: 991.129 seconds, Fetched: 1 row(s)