More Related Content Similar to ⾃宅で Hive 愛を育むための⼿順(Raspberry Pi 編) Similar to ⾃宅で Hive 愛を育むための⼿順(Raspberry Pi 編) (20) More from Yukinori Suda (10) ⾃宅で 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
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)