More Related Content
Similar to B34 Extremely Tuned Hadoop Cluster by Daisuke Hirama
Similar to B34 Extremely Tuned Hadoop Cluster by Daisuke Hirama (20)
More from Insight Technology, Inc.
More from Insight Technology, Inc. (20)
B34 Extremely Tuned Hadoop Cluster by Daisuke Hirama
- 1. Extremely Tuned Hadoop Cluster
平間 大輔
株式会社インサイトテクノロ
ジー
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
~ RDBMSを愛する私たちは
如何にしてHadoopを愛すべきか ~
- 5. これがMapReduceだ!(面倒くさい…)
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
「MapReduce: Simplified Data Processing on Large Clusters」より
犬も猫も好
き。
Key=犬 value=1
Key=猫 value=1
Key=犬 value=10
Key=猫 value=12
- 7. 1ツイートを受信すると…(JSONデータ)
{"text":"u81eau5206u304cu4fe1u3058u3089u308cu308bu3060u3051u3058u3083u306au304fu3066u
81eau5206u306eu3053u3068u3092u4fe1u3058u3066u304fu308cu308bu4ebau305fu3061u306eu305
3u3068u306fu5927u5207u306bu3002/u4ec1","contributors":null,"in_reply_to_status_id_str":null,"in_reply_t
o_user_id":null,"retweet_count":0,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"retweeted":fals
e,"source":"web","entities":{"urls":[],"hashtags":[],"user_mentions":[]},"place":null,"in_reply_to_status_id":null,"id_
str":"241415049216925697","coordinates":null,"user":{"statuses_count":1432,"geo_enabled":false,"profile_link_c
olor":"0084B4","verified":false,"profile_background_image_url_https":"https://si0.twimg.com/profile_backgroun
d_images/603245248/obluhsv93jc29erghpt1.gif","default_profile_image":false,"friends_count":378,"profile_bac
kground_color":"C0DEED","location":"","is_translator":false,"profile_background_tile":true,"favourites_count":0,"d
escription":"u5175u5eabJK2u3002u5143u7532u6b66u3002rnu3059u304du306au3082u306eu3002u4
ec1u304fu3093/u4e80u3061u3083u3093/KAT-TUN/u3084u307eu3074u30fc/u4eaeu3061u3083u30
93/NEWS/u9234u6728u3048u307f/u5927u77f3u53c2u6708/Tayloru30fbMomsen/Tayloru30fbSwift/Br
unou30fbMars/u52a0u85e4u30dfu30eau30e4/u963fu90e8u771fu592ernu30a2u30e1u30d6u30edu3
057u3066u308bu3002u3075u3049u308du30fcu307fu30fcu3002:) hyphenu3001uff71uff76uff86uff7cuf
f6cuff70u3001uff81uff6cuff9duff76uff8auff9fuff70uff85u304bu3082u3093u304bu3082u3093u2606u5f
61","profile_sidebar_fill_color":"DDEEF6","follow_request_sent":null,"contributors_enabled":false,"lang":"ja","prof
ile_sidebar_border_color":"C0DEED","profile_image_url_https":"https://si0.twimg.com/profile_images/239352
7472/expe7e9aiw04iu3iijb0_normal.jpeg","screen_name":"manatsu5","id_str":"585589997","listed_count":3,"pro
tected":false,"show_all_inline_media":false,"following":null,"notifications":null,"profile_use_background_image":tr
ue,"followers_count":315,"profile_image_url":"http://a0.twimg.com/profile_images/2393527472/expe7e9aiw04
iu3iijb0_normal.jpeg","name":"ma-natsu","default_profile":false,"created_at":"Sun May 20 11:25:20 +0000 2012",
"profile_text_color":"333333","id":585589997,"profile_background_image_url":"http://a0.twimg.com/profile_bac
kground_images/603245248/obluhsv93jc29erghpt1.gif","time_zone":null,"utc_offset":null,"url":"http://ameblo.jp
/kaaaaaat-tun6/"},"favorited":false,"id":241415049216925697,"created_at":"Fri Aug 31 06:00:07 +0000 2012","g
eo":null,"truncated":false}
- 8. ツイート内の単語を数えてみよう
Key: 123456 value:{"text":"u81eau5206u304c…}
“吾輩は猫である。”
{“吾輩”,”は”,”猫”,”で”,”ある”,”。”}
key:“吾輩” value:1
key:”猫” value:1
key:”ある” value:1
Map
key:”ある” value:{1,1,1,3,2,1,1}
key:“吾輩” value:{1,2,1}
key:”猫” value:{1,3,2,1,1,5,2}
Shuffle
key:10 value:”ある”
key:4 value:“吾輩”
key:15 value:”猫”
Reduce
JSONを解析
日本語を単語に分解
(形態素解析)
- 11. またMapReduceを書くの!?
key:15 value:”猫”
key:13 value:”犬”
key:11 value:“ゴミ”
key:11 value:”人間”
Reducer1
key:10 value:”ある”
key:4 value:“吾輩”
Reducer2
Shuffle
key:11 value:“ゴミ”
key:10 value:”ある”
key:15 value:”猫”
key:4 value:“吾輩”
key:11 value:”人間”
key:13 value:”犬”
並べ替え用の
自作クラスを作成
(IntWritableを継承)
シャッフル処理を変更
HashPartitioner
↓
TotalOrderPartitioner
事前にkeyを
サンプリング
先ほどの
処理結果
ソートするにはもう1回MapReduce処理が必要
- 14. RDBMSとの連携その3: 各社のConnector
RDBMS Connector名称 概要
Oracle
Quest Data Connector for Oracle
and Hadoop
Quest Software(現DELL)社製のSqoopプラグイン。
Sqoop単体でOracleにインポートする際のいくつ
かの制限を解消。
Oracle Oracle Loader for Hadoop
Oracle社製のデータロード用MapReduceアプリ
ケーション。Oracle Big Data Connectorsに含まれ
る。ダイレクトパスロードやData Pump形式の
ファイルをオフラインで出力するなどの機能あり。
Oracle Oracle SQL Connector for HDFS
Oracle社製のHDFS上のファイルをOracleの外部
表として扱うことができるコネクタ。Oracle Big
Data Connectorsに含まれる。通常のテキスト
ファイルのほかHive表とData Pump形式ファイル
も扱える。
SQL Server
Microsoft SQL Server Connector for
Apache Hadoop
Microsoft社製のSqoopベースのコネクタ。
Sqoop1.4よりSqoop本体に統合。
Vertica HP Vertica HDFS Connector
HP社製のコネクタ。Verticaへのパラレルロードや
HDFS上のファイルを外部表として扱うことが可
能。
InfiniDB InfiniDB-Hadoop Data Connector
Calpont社製のコネクタ。専用のファイルフォー
マットを用意してパラレルロードを可能としてい
る。
Vectorwise Vectorwise Hadoop Connector
Actian社製のコネクタ。MapReduceアプリケー
ション。パラレルロードを可能としている。
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
- 17. HiveでSQLを実行してみよう
select
l_orderkey,
sum (l_extendedprice * (1 - l_discount)) as revenue,
o_orderdate,
o_shippriority
from
customer c join
orders o
on c.c_mktsegment = 'BUILDING'
and c.c_custkey = o.o_custkey join
lineitem l
on l.l_orderkey = o.o_orderkey
where
o_orderdate < '1995-03-28'
and l_shipdate > '1995-03-28'
group by
l_orderkey,
o_orderdate,
o_shippriority
order by
revenue desc,
o_orderdate limit 10
;
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
TPC-H Q3
- 18. Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
HiveでSQLを実行してみよう
- 21. データ10倍でも処理時間はたったの2倍
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
0
1000
2000
3000
4000
5000
6000
7000
8000
SF=10(GB) SF=100(GB)
(秒)
TPC-H用クエリ(22個)を一部Hive用に修正して実行
- 23. Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
•緑: User CPU
•青: I/O Wait
でも…HWのボトルネックには気をつけて
- 32. Hadoopを愛するためには
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.
1. 面倒くさがらず、まずはMapReduce。
2. ぐちゃぐちゃデータをきれいにし、
RDBMSと連携して分析という流れが鉄
板。
3. Hiveは遅い!でも使い道はある。
4. Impalaの活躍場所は限定的。
でもはまれば強力。