[⾃自宅宅で Hive 愛を育むための⼿手順(Raspberry  Pi 編)
]  
<⽬目次>  
1.  OS(Raspberian)のインストール及び設定  
2.   ハードウェアのチューニング  
3.  OS(Raspberian...
1.  OS(Raspberian)のインストール及び設定  
・OS イメージのダウンロード  
Raspberry  Pi ⽤用の Linux ディストリビューションとして複数提供されているが、今回は Raspbian  “wheezy”を...
<タイムゾーンの設定>  
「4  Internationalisation  Options」-‐‑‒>「I2  Change  Timezone」-‐‑‒>「Asia」-‐‑‒>「Tokyo」を選択します。  
  
<ロケールの設定>  ...
hadoop を実⾏行行するためのユーザとグループを作成しておきます。  
  
$	
 sudo	
 addgroup	
 hadoop	
 
$	
 sudo	
 adduser	
 –ingroup	
 hadoop	
 hadoop	
...
2.   ハードウェアのチューニング  
<メモリ分割>  
GPU が使⽤用できるメモリの最⼩小値を設定します。  
raspi-‐‑‒config を実⾏行行すると、下記の画⾯面が表⽰示されます。  
「8  Advenced  Optio...
3.  OS(Raspberian)のチューニング  
・noatime オプションでマウント  
ディスクの mount オプションに”noatime”を設定しますが、
Raspberian ではデフォルトで”noatime”のマウントオプシ...
4.パーティンションの拡張  
SD カードに書き込んだイメージは、デフォルトで 2GB しか利利⽤用できません。2GB 以上の容量量の SD カードを使⽤用している場合、パー
ティションを拡張する必要があります。注意点としては、Linux パ...
$	
 sudo	
 resize2fs	
 /dev/mmcblk0p2	
 
resize2fs	
 1.42.5	
 (29-Jul-2012)	
 
Filesystem	
 at	
 /dev/mmcblk0p2	
 is	
 mou...
5.Java のインストール  
Raspberian には標準で Java  1.6 がインストールされています。
ARM ⽤用の Open  Java  Development  Kit  (JDK)  1.7 を使⽤用するため、
下記のコ...
6.Hadoop のインストール/設定  
・ソースコードのダウンロード及びインストール  
Hadoop にはバージョン 1 系と、2013 年年 10 ⽉月 16 ⽇日に正式版としてリリースされたバージョン 2 系がありますが、ここではバー...
<?xml	
 version="1.0"?>	
 
<?xml-stylesheet	
 type="text/xsl"	
 href="configuration.xsl"?>	
 
	
 
<!--	
 Put	
 site-specif...
・デーモンの起動確認  
マスターノードで下記のように NameNode/DataNode/SecondaryNameNode/JobTracker/TaskTracker が起動していれば、
成功です。  
  
node1$	
 jps	
...
7.Hive のインストール/設定  
・ソースコードのダウンロード及びインストール  
下記の URL からコンパイル済みのアーカイブをダウンロードします。  
  
http://hive.apache.org/releases.html#...
<?xml	
 version="1.0"?>	
 
<?xml-stylesheet	
 type="text/xsl"	
 href="configuration.xsl"?>	
 
	
 
<configuration>	
 
<prop...
OK	
 
Time	
 taken:	
 3.981	
 seconds	
 
	
 
hive>	
 show	
 tables;	
 
OK	
 
test	
 
Time	
 taken:	
 87.881	
 seconds,	
 F...
8.  HiBench(HiveBench)による性能評価  
HiBench とは、オープンソースの Hadoop ベンチマークスイートです。幾つかのベンチマークテストが含まれており、その 1 つに
HiveBench という Hive をベ...
Job	
 2:	
 Map:	
 1	
 	
 Reduce:	
 1	
 	
 	
 Cumulative	
 CPU:	
 25.39	
 sec	
 	
 	
 HDFS	
 Read:	
 10583	
 HDFS	
 Write:	...
Upcoming SlideShare
Loading in …5
×

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

1,866 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,866
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
Downloads
12
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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

  1. 1. [⾃自宅宅で Hive 愛を育むための⼿手順(Raspberry  Pi 編) ]   <⽬目次>   1.  OS(Raspberian)のインストール及び設定   2.   ハードウェアのチューニング   3.  OS(Raspberian)のチューニング   4.   パーティションの拡張   5.  Java のインストール   6.  Hadoop のインストール/設定   7.  Hive のインストール/設定   8.  HiBench(HiveBench)による性能評価      
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 15. OK Time taken: 3.981 seconds hive> show tables; OK test Time taken: 87.881 seconds, Fetched: 1 row(s)      
  16. 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. 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)    

×