apache hiveの今とこれから - 2016
TRANSCRIPT
![Page 1: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/1.jpg)
Apache Hiveの今とこれからJoeOoura&YutaImai2016/4/22
©HortonworksInc.2011–2015.AllRightsReserved
![Page 2: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/2.jpg)
2 ©HortonworksInc.2011–2016.AllRightsReserved
はじめに
à 質問はQUESTIONSというボタンからお願いします。プレゼンター以外には⾒えません。
à Twitter経由でもコメント、質問、⼤歓迎です! #hwxjp
![Page 3: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/3.jpg)
3 ©HortonworksInc.2011–2016.AllRightsReserved
自己紹介 Ã ⼤浦 譲太郎 Twitter:@JOOOURAÃ 5歳児と8歳児の⽗Ã サーバ、ストレージのシステム営業を経て2011年に フラッシュメモリストレージ企業の⽇本法⼈⽴ち上げに参画。Evangelist、プリセールスSE、広報、営業など⼀通りをカバーエンタープライズフラッシュの代名詞ともなるioDriveシリーズを⽇本国内の通信キャリア、⾦融機関、WEBサービス事業者、アドテク、DC事業者に多数導⼊。Ã 2016年1⽉より、ホートンワークスジャパンの⼆⼈⽬の
営業として参画。現在はエヴァンジェリスト活動及びエンタープライズ向けセールス、パートナー⽀援を⾏なっている。
![Page 4: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/4.jpg)
4 ©HortonworksInc.2011–2016.AllRightsReserved
About Hortonworks
お客様との歩み • ~800社(2016年2月現在)• 152社は2015年第三四半期で• 2015年10月NASDAQへ上場:HDP
The Leader in Connected Data Platforms • HortonworksDataFlowfordatainmoNon• HortonworksDataPlaOormfordataatrest• PoweringnewmoderndataapplicaNons
Partner for Customer Success • Leaderinopen-sourcecommunity,focusedoninnovaNontomeetenterpriseneeds
• UnrivaledsupportsubscripNons
Founded in 2011
Yahoo! で初代の Hadoop 開発を手がけたアーキテクト、デベロッパー、オ
ペレータ 24名によって創立
1000+ E M P L O Y E E S
1500+ E C O S Y S T E M
PA R T N E R S
![Page 5: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/5.jpg)
5 ©HortonworksInc.2011–2016.AllRightsReserved
Our Model: Drive an Enterprise-focused Roadmap
1. InnovateExis6ngProjects– Hive/SNnger,YARN,HDFS,commonops&securityviaAmbari&Ranger
2. IncubateNewProjects– Metron(wasOpenSOC),Ranger,Knox,Atlas,Falcon,Ambari,Tez,etc.
3. AcquireIP&Contribute
– AcquiredXASecureandcreatedApacheRanger;contributedOpenSOC
4. Partner&DeliverJointSolu6ons– Microsod,EMC,HP,SAS,Pivotal,RedHat,Teradata,etc.
5. RallytheEcosystem
– FastSQLviaSNngeriniNaNve,DataGovernanceiniNaNve,ODPi
Data
Acce
ss
(batc
h, int
erac
tive,
real
time)
Int
egra
tion &
Go
vern
ance
Op
erati
ons
Secu
rity
ApacheProject HortonworksCommiNers
HortonworksPMC
HWX%ofCommiNers
Hadoop 29 24 31%Accumulo 2 2 9%Calcite 6 3 43%HBase 8 5 17%Hive 19 11 38%NiFi 5 5 42%
Phoenix 5 5 22%Pig 5 5 24%
Slider 12 12 100%Spark 1 0 2%Storm 4 4 19%Tez 15 15 44%Atlas 7 0 35%Falcon 7 5 41%Flume 1 1 4%KaZa 0 0 0%Sqoop 1 1 4%Ambari 39 30 76%Oozie 4 2 22%
Zookeeper 2 1 13%Knox 12 2 80%Ranger 13 11 76%
TOTAL 197 144
Source:ApacheSodwareFoundaNon.AsofOctober5,2015.Acommi'erissomeonewhohas“earnedtheirstripes”withintheApachecommunityandhastheability
tocommitcodedirectlytotheircorrespondingApacheprojectsourcecoderepository
![Page 6: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/6.jpg)
6 ©HortonworksInc.2011–2016.AllRightsReservedPage6 ©HortonworksInc.2011–2015.AllRightsReserved
100%OpenSourceConnectedDataPlaaorms
Eliminates Risk ofvendorlock-inbydelivering100%Apacheopensourcetechnology
Maximizes Community Innovation withhundredsofdevelopersacrosshundredsofcompanies
IntegratesSeamlesslythroughcommijedco-engineeringpartnershipswithotherleadingtechnologies
M A X I M U M C O M M U N I T Y I N N O VAT I O N
T H E I N N O VAT I O N A D VA N TA G E
P R O P R I E T A R Y H A D O O P
T I M E
INN
OV
AT
ION
O P E N C O M M U N I T Y
![Page 7: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/7.jpg)
7 ©HortonworksInc.2011–2016.AllRightsReserved
自己紹介 à 今井 雄太 Twijer:@imai_factoryà SoluNonsEngineerà 広告配信サーバーのレポート作成のためにMapReduce(perl+streaming!)を使ったのがHadoopとの出会い。
à その後、AWSにてアドテクやゲームのお客様を担当しつつ、EMRやS3などのビッグデータなプロダクトを主に担当。そんなつながりでHortonworksに入社してHadoopをやっています。
![Page 8: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/8.jpg)
8 ©HortonworksInc.2011–2016.AllRightsReserved
à ~Hive1.2.1– Tez– Cost Based Optimizer(CBO)– ORC File format– Vectorization
à Hive2.0– LLAP
最近のApache Hive: Key highlights
![Page 9: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/9.jpg)
9 ©HortonworksInc.2011–2016.AllRightsReserved
最近のApache Hive: Key highlights
à ~Hive1.2.1– Tez– Cost Based Optimizer(CBO)– ORC File format– Vectorization
à Hive2.0– LLAP
Stinger InitiativeHiveを100倍以上⾼速化
Already available on HDP!
![Page 10: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/10.jpg)
10 ©HortonworksInc.2011–2016.AllRightsReserved
Sub-secondショートクエリで
1秒以下のレスポンスを⽬指す
à ~Hive1.2.1– Tez– Cost Based Optimizer(CBO)– ORC File format– Vectorization
à Hive2.0– LLAP
Stinger InitiativeHiveを100倍以上⾼速化
Already available on HDP!
最近のApache Hive: Key highlights
![Page 11: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/11.jpg)
11 ©HortonworksInc.2011–2016.AllRightsReserved
à いずれの改善も数⾏の設定もしくはコマンドで利⽤可能です。– Hive2.0については現時点(4/22)においてまだHDPに取り込まれていません。
à 今⽇は、それらの仕組みにフォーカスしてお話します。
最近のApache Hive: Key highlights
![Page 12: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/12.jpg)
12 ©HortonworksInc.2011–2016.AllRightsReserved
Hive performance recap • Stinger: • ApacheHiveのパフォーマンスを100倍にするというゴールのもとに始まったプロジェクト
VectorizedSQLEngine,TezExecuNonEngine,ORCColumnarformatCostBasedOpNmizer
Hive0.10BatchProcessing
100-150xQuerySpeedupHive0.14HumanInteracNve(5seconds)
![Page 13: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/13.jpg)
13 ©HortonworksInc.2011–2016.AllRightsReserved
TPC-DS Benchmark at 30 Terabyte Scale
• TPC-DSより 50 のサンプルクエリを 30 terabyte のスケールで実⾏• 平均 52 倍の速度アップ, 最⼤ 160 倍の速度アップ• ベンチマークの総実⾏時間が 7.8 ⽇ から 9.3 時間に短縮• Hive 14に追加された Cost-Based Optimizer が更に 2.5倍の速度アップ実現
![Page 14: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/14.jpg)
14 ©HortonworksInc.2011–2016.AllRightsReserved
TezBeyond MapReduce
![Page 15: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/15.jpg)
15 ©HortonworksInc.2011–2016.AllRightsReserved
Apache Tez
Page 15
à データ処理アプリのための汎⽤分散処理エンジン– アプリ(フレームワーク)向け、エンドユーザー向けではない– Hive on Tez, Pig on Tez, Cascading on Tez, …
à MapReduceの教訓を活かした結果– ⼤幅なパフォーマンス改善– バッチ、インタラクティブ– Petabytesスケール
à YARNの上で動かす– クラスタリソースの活⽤ DAG(無閉路有向グラフ)
![Page 16: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/16.jpg)
16 ©HortonworksInc.2011–2016.AllRightsReserved
MapReduce & Tez
M M M
R R
M M
R
M M
R
M M
R
HDFS
HDFS
HDFS
M M M
R R
R
M M
R
R
Map – Reduce Intermediate results in HDFS
Tez Optimized Pipeline
• 中間データをHDFSに書き出さない
• Map-Reduce-Reduceのような構成を取ることができる
• セッションによるコンテナの再利⽤
• ジョブを通してのパイプラインの最適化
![Page 17: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/17.jpg)
17 ©HortonworksInc.2011–2016.AllRightsReserved
What is DAG & Why DAG
ProjectionFilterGroupBy…
JoinUnionIntersect…
Split…
• Directed Acyclic Graph(無閉路有向グラフ)• どんなに複雑なDAGでも、基本的には以下の3つのパターンに分類ができる– Sequential– Merge– Divide
![Page 18: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/18.jpg)
18 ©HortonworksInc.2011–2016.AllRightsReserved
Tezの⼤まかな動き
ProcessorInput Output
![Page 19: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/19.jpg)
19 ©HortonworksInc.2011–2016.AllRightsReserved
Tez – Key benefits
• DAGの表現⼒• Easier to express computation in DAG
• 中間データをHDFSに吐き出さない• レイテンシ• NameNodeへの負荷
• Tezセッション/コンテナ再利⽤• AM/タスクコンテナアロケーションのオーバーヘッド• ResourceManagerの負荷• Object Registryによるデータ使い回し(MapJoin⽤のテーブルなど)• JITによる実⾏コードの最適化
• DAG全体を⾒渡しての最適化
![Page 20: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/20.jpg)
20 ©HortonworksInc.2011–2016.AllRightsReserved
Tez - architecture
à Client– Starts session– Submits DAG
à Application Master– DAG Scheduler– Task Scheduler– Vertex Manager
à TezTask Containers– Execution
![Page 21: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/21.jpg)
21 ©HortonworksInc.2011–2016.AllRightsReserved
Tez - architecture
à Client– Starts session– Submits DAG
à Application Master– DAG Scheduler– Task Scheduler– Vertex Manager
à TezTask Containers– Execution
![Page 22: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/22.jpg)
22 ©HortonworksInc.2011–2016.AllRightsReserved
![Page 23: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/23.jpg)
23 ©HortonworksInc.2011–2016.AllRightsReserved
ORCOptimized Row Columnar
![Page 24: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/24.jpg)
24 ©HortonworksInc.2011–2016.AllRightsReserved
Hadoopで使われるファイルフォーマット
• Text• SequenceFile• RCFile
• + Can be read required column• + Compression on each column• - type-free binary blobs• - no index• - Compression by stream-based codec
![Page 25: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/25.jpg)
25 ©HortonworksInc.2011–2016.AllRightsReserved
ORCFile – Hiveのためのカラム型ストレージ
à High Compression– カラムごとに適⽤されるデータの型スペシフィックな圧縮– ストリーム単位でのZLIBやSNAPPYによる圧縮
à High Performance– File, Stripe, Rowそれぞれのレベルでのインデックス、メタデータ– Predicate Pushdown
à Flexible Data Model– Complex types(struct, list, map, union)– New types(datetime, decimal)
Page 25
![Page 26: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/26.jpg)
26 ©HortonworksInc.2011–2016.AllRightsReserved
ORC at Facebook
Savedmorethan1,400serversworthofstorage.(2)
Compressioni CompressionraNoincreasedfrom5xto8xglobally.(2)
Compressioni
![Page 27: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/27.jpg)
27 ©HortonworksInc.2011–2016.AllRightsReserved
ORC at Spotify
16xlessHDFSreadwhenusingORCversusAvro.(3)
IOi 32xlessCPUwhenusingORCversusAvro.(3)
CPUi
![Page 28: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/28.jpg)
28 ©HortonworksInc.2011–2016.AllRightsReserved
ORC at Yahoo!
6-50xspeedupwhenusingORCversusTextFile.(4)
Speedupi 1.6-30xspeedupwhenusingORCversusRCFile.(4)
Speedupi
![Page 29: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/29.jpg)
29 ©HortonworksInc.2011–2016.AllRightsReserved
ORCFile – ファイルフォーマット
![Page 30: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/30.jpg)
30 ©HortonworksInc.2011–2016.AllRightsReserved
ORCFile – ファイルフォーマット
デフォルトで256MBという⼤きなチャンクサイズでファイルの中⾝を分割
Stripe
![Page 31: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/31.jpg)
31 ©HortonworksInc.2011–2016.AllRightsReserved
ORCFile – ファイルフォーマット
それぞれのStripeの場所、スキーマ、ファイル全体におけるそれぞれのカラムのmin/max/sum値を保持
File Footer
![Page 32: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/32.jpg)
32 ©HortonworksInc.2011–2016.AllRightsReserved
ファイルの圧縮形式と、圧縮済みのFooterのサイズを保持。その他カスタムメタデータも保持可能。最初にここだけ読み取られる。
Post Script
ORCFile – ファイルフォーマット
![Page 33: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/33.jpg)
33 ©HortonworksInc.2011–2016.AllRightsReservedPage 33
…
…
…
…
…
Stream: INDEX
Stream: BROOM FILTER
Stream: DATA
Stream: LENGTH
Stream: DICTIONARY
Row Group(Default: 10K records for each RG)
ORCFile – ファイルフォーマット
![Page 34: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/34.jpg)
34 ©HortonworksInc.2011–2016.AllRightsReserved
File-Column1-min-max-sum-hasNull-Column2-Column3-ColumnN-Compression-FooterLength
Stripe1-Column1-min-max-sum-hasNull-Column2-Column3-ColumnN
Column1
RG1-min-max-sum-hasNull-pos
RG1-min-max-sum-hasNull-pos
…
ColumnN
RG1-min-max-sum-hasNull-pos
RG1-min-max-sum-hasNull-pos
……
StripeN
…
ORCFile – ファイルフォーマット
![Page 35: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/35.jpg)
35 ©HortonworksInc.2011–2016.AllRightsReserved
Compression
à データの型スペシフィックな圧縮(Light-Weight Compression)– カラムごとに適⽤される圧縮– 必ず適⽤される– RLE, Direct, Patch Base, Delta
à データストリームの圧縮(Generic Compression)– ファイル全体を通して共通で適⽤される圧縮– 実際にはそれぞれのStream、Footerに適⽤される– 上記のLight-Weight Compressionが適⽤された上に適⽤される– NONE, ZLIB, SNAPPY, LZO
Page 35
![Page 36: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/36.jpg)
36 ©HortonworksInc.2011–2016.AllRightsReservedPage 36
High Compression
![Page 37: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/37.jpg)
37 ©HortonworksInc.2011–2016.AllRightsReserved
High Performance
FileレベルのIndex
StripeレベルのIndex
RowGroupレベルのIndex
![Page 38: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/38.jpg)
38 ©HortonworksInc.2011–2016.AllRightsReserved
ORCの情報をダンプする
orcfiledumphive --service orcfiledump /apps/hive/warehouse/rankings/000045_0
RowGroupごとのインデックス情報を含めるには rowindex <カラム番号> を指定。0を指定すれば全カラムの情報がとれるhive --service orcfiledump --rowindex 1 /apps/hive/warehouse/rankings/000045_0
Page 38
![Page 39: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/39.jpg)
39 ©HortonworksInc.2011–2016.AllRightsReserved
File Statistics
File Statistics: Column 0: count: 1620325 hasNull: false Column 1: count: 1620325 hasNull: false min: 1.0.100.215 max: 99.99.97.199 sum: 21531540 Column 2: count: 1620325 hasNull: false min…max: …sum: 88890214 Column 3: count: 1620325 hasNull: false min: 1970-01-01 max: 2012-04-30 Column 4: count: 1620325 hasNull: false min: …-8 max: …sum: 810757.3001111746 Column 5: count: 1620325 hasNull: false min… max: … sum: 85357610 Column 6: count: 1620325 hasNull: false min: ALB max: ZAF sum: 4860975
Page 39
![Page 40: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/40.jpg)
40 ©HortonworksInc.2011–2016.AllRightsReserved
Stripe Statistics
Stripe Statistics: Stripe 1: Column 0: count: 1545000 hasNull: false Column 1: count: 1545000 hasNull: false min: 1.0.100.215 max: 99.99.97.199 sum: 20530443 Column 2: count: 1545000 hasNull: false min: … max: … sum: 84763272 Column 3: count: 1545000 hasNull: false min: 1970-01-01 max: 2012-04-30 Column 4: count: 1545000 hasNull: false min: … max: … sum: 773016.625769496 Column 5: count: 1545000 hasNull: false min: … max: … sum: 81385950 Column 6: count: 1545000 hasNull: false min: ALB max: ZAF sum: 4635000
Page 40
![Page 41: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/41.jpg)
41 ©HortonworksInc.2011–2016.AllRightsReserved
Row Group Indexes
Row group indices for column 1: Entry 0: count: 10000 hasNull: false min: 1.101.125.195 max: 99.98.152.204 sum: 132919 positions: 0,0,0,0,0 Entry 1: count: 10000 hasNull: false min: 1.104.147.167 max: 99.85.51.213 sum: 132976 positions: 0,132919,0,6119,52 Entry 2: count: 10000 hasNull: false min: 1.1.228.147 max: 99.88.166.75 sum: 132826 positions: 120403,3751,0,12339,3
Entry 3: count: 10000 hasNull: false min: 1.104.90.89 max: 99.96.30.136 sum: 132853 positions: 120403,136577,0,18482,4 Entry 4: count: 10000 hasNull: false min: 1.11.252.134 max: 99.71.248.30 sum: 132856 positions: 240743,7286,0,24600,2 Entry 5: count: 10000 hasNull: false min: 1.119.19.221 max: 99.96.184.74 sum: 132977 positions: 240743,140142,0,30713,8 Entry 6: count: 10000 hasNull: false min: 1.1.244.95 max: 99.99.242.168 sum: 132735 positions: 360961,10975,0,36946,1
Entry 7: count: 10000 hasNull: false min: 1.1.146.20 max: 99.93.105.159 sum: 132869 positions: 360961,143710,0,43145,2
Page 41
![Page 42: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/42.jpg)
42 ©HortonworksInc.2011–2016.AllRightsReserved
SARG & Predicate Pushdown
à SARG: Search ARGument
à SELECT COUNT(*) FROM CUSTOMER WHERE CUSTOMER.state = ʻCAʼ;
à 上記のようなクエリにおいて、RecordReaderはwhere clauseにマッチするORCファイル、Stripe、RowGroupだけをストレージから読み出す
Page 42
![Page 43: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/43.jpg)
43 ©HortonworksInc.2011–2016.AllRightsReserved
Bloom Filter Index
1 0 1 110 1 0 11
x y z
w
m=10k=3
m個の要素を持つ配列に対して⼊⼒値に対してk回のハッシュ関数をかけて結果を格納しておく。
確認対象の値をk回ハッシュして、結果がすべて1であれば、そのインデックスに値が含まれる。そうでなければ含まれないのでスキップする。偽陽性の結果になる可能性もある。
![Page 44: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/44.jpg)
44 ©HortonworksInc.2011–2016.AllRightsReserved
Bloom Filter Indexes Improvements
5999989709
540,000
10,000
NoIndexes Min-MaxIndexes BloomfilterIndexes
select*fromtpch_1000.lineitemwherel_orderkey=1212000001;(logscale–smallerisbeNer)
RowsRead
![Page 45: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/45.jpg)
45 ©HortonworksInc.2011–2016.AllRightsReserved
Bloom Filter Indexes Improvements
74
4.51.34
NoIndexes Min-MaxIndexes BloomfilterIndexes
select*fromtpch_1000.lineitemwherel_orderkey=1212000001;(smallerisbeNer)
TimeTaken(seconds)
~16ximprovement
~3.3ximprovement
![Page 46: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/46.jpg)
46 ©HortonworksInc.2011–2016.AllRightsReserved
ORCFile – テーブル定義の例
à テーブルまたはパーティション別に定義à 選べられる圧縮コーデック
Page 46
create table Addresses ( name string, street string, city string, state string, zip int) stored as orc tblproperties ("orc.compress"=”ZLIB");
![Page 47: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/47.jpg)
47 ©HortonworksInc.2011–2016.AllRightsReserved
ORCFile – テキストからORCに変換
à ORCを使わない理由はないà SQL 1つでテキストからORCに変換
Page 47
-- Create Text & ORC tablesCREATE TABLE test_details_txt( visit_id INT, store_id SMALLINT) STORED AS TEXTFILE;CREATE TABLE test_details_orc( visit_id INT, store_id SMALLINT) STORED AS ORC;
-- Load into Text tableLOAD DATA LOCAL INPATH '/home/user/test_details.csv' INTO TABLE test_details_txt;
-- Copy to ORC tableINSERT OVERWRITE INTO test_details_orc SELECT * FROM test_details_txt;
![Page 48: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/48.jpg)
48 ©HortonworksInc.2011–2016.AllRightsReserved
Vectorized Query ExecutionProcess 1024 Rows at a Time
![Page 49: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/49.jpg)
49 ©HortonworksInc.2011–2016.AllRightsReserved
Vectorization – ベクターSQLエンジン
à 機能:– 1⾏づつの代わりに、⼀回に1024⾏を処理– モーデンなハードウェア アーキテクチャの活⽤
à 利点:– ⼤きいクエリは最⼤3倍早い– CPU使⽤時間を削減、クラスタリソースの有効利⽤
Page 49
![Page 50: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/50.jpg)
50 ©HortonworksInc.2011–2016.AllRightsReserved
Column Store Layout
Table
Row Store Column Store
A B1 A1 B12 A2 B2
1A1B1
2A2B2
AA1A2
BB1B2
![Page 51: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/51.jpg)
51 ©HortonworksInc.2011–2016.AllRightsReserved
Column Store Characteristics
Row Store• TextFile, SequenceFile, Avro• Slower read performance• Reads whole columns
• Lower compression ratio• Higher local cardinality
Column Store• RCFile, Parquet, ORC• Faster read performance• Reads needed columns only
• Higher compression ratio• Lower local cardinality
• Room for further optimization• Vectorization
![Page 52: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/52.jpg)
52 ©HortonworksInc.2011–2016.AllRightsReserved
Hive Vectorization 2014
Rewriting Hive execution engine for performance• No method calls• Low instruction count• Cache locality to 1,024 values• No pipeline stalls• SIMD in Java 8But not excellent without SIMD
set hive.vectorized.execution.enabled = true;J. Sompolski, M. Zukowski, P. Boncz. Vectorization vs. Compilation in Query Execution. 2011
![Page 53: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/53.jpg)
53 ©HortonworksInc.2011–2016.AllRightsReserved
Cost Based Optimizer
![Page 54: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/54.jpg)
54 ©HortonworksInc.2011–2016.AllRightsReserved
Cost Based Optimizer
à Apache Calciteを利⽤à 何をしてくれるもの?
– Ordering joins– Bushy Join Tree– Converting join algorithms
à Paper: https://cwiki.apache.org/confluence/display/Hive/Cost-based+optimization+in+Hive
à Anatomy: http://hortonworks.com/blog/hive-0-14-cost-based-optimizer-cbo-technical-overview/
![Page 55: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/55.jpg)
55 ©HortonworksInc.2011–2016.AllRightsReserved
MySQL
Splunk
Expression treeSELECT p.“product_name”, COUNT(*) AS cFROM “splunk”.”splunk” AS s JOIN “mysql”.”products” AS p ON s.”product_id” = p.”product_id”WHERE s.“action” = 'purchase'GROUP BY p.”product_name”ORDER BY c DESC
join
Key: product_id
group
Key: product_nameAgg: count
filter
Condition:action =
'purchase'
sort
Key: c DESC
scan
scan
Table: splunk
Table: products
![Page 56: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/56.jpg)
56 ©HortonworksInc.2011–2016.AllRightsReserved
Splunk
Expression tree(optimized)
SELECT p.“product_name”, COUNT(*) AS cFROM “splunk”.”splunk” AS s JOIN “mysql”.”products” AS p ON s.”product_id” = p.”product_id”WHERE s.“action” = 'purchase'GROUP BY p.”product_name”ORDER BY c DESC
join
Key: product_id
group
Key: product_nameAgg: count
filter
Condition:action =
'purchase'
sort
Key: c DESC
scan
Table: splunk
MySQL
scan
Table: products
![Page 57: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/57.jpg)
57 ©HortonworksInc.2011–2016.AllRightsReserved
Query preparation – Hive 0.13
SQL parser
Semantic analyzer
Logical Optimizer
Physical Optimizer
Abstract Syntax Tree
(AST)
Hive SQL
AnnotatedAST
Plan
Tez
Tuned Plan
![Page 58: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/58.jpg)
58 ©HortonworksInc.2011–2016.AllRightsReserved
Query preparation – Hive 0.14
SQL parser
Semantic analyzer
Logical Optimizer
Physical Optimizer
Hive SQL
AST with optimized join-
ordering
Tez
Tuned Plan
Translate to
algebra
Optiq optimize
r
![Page 59: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/59.jpg)
59 ©HortonworksInc.2011–2016.AllRightsReserved
Star schema
Sales Inventory
Time
Product
Customer
Warehouse
KeyFact tableDimension table Many-to-one relationship
![Page 60: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/60.jpg)
60 ©HortonworksInc.2011–2016.AllRightsReserved
Query combining two stars
SELECT product.id, sum(sales.units), sum(inventory.on_hand)FROM sales ON …JOIN customer ON …JOIN time ON …JOIN product ON …JOIN inventory ON …JOIN warehouse ON …WHERE time.year = 2014AND time.quarter = ̒Q1ʼAND product.color = ̒RedʼAND warehouse.state = ̒WA̓GROUP BY …
Sales InventoryTime
Product
Customer
Warehouse
![Page 61: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/61.jpg)
61 ©HortonworksInc.2011–2016.AllRightsReserved
Left-deep tree
“left-deep”ツリーすべてのジョインがシリアルに⾏われる。ジョインの順番は考慮されているが、ツリーの形は考慮されていない。
よくあるプラン:• 最⼤のテーブルを左下に置いてスタート• 絞り込みの⼤きいJoinから適⽤していく
Sales Customer
Time
Product
Inventory
Warehouse
![Page 62: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/62.jpg)
62 ©HortonworksInc.2011–2016.AllRightsReserved
Bushy tree (Bush:低⽊、茂み)
Joinがどこで⾏われるかに制約をかけない“Bushes” はファクトテーブル (Sales and Inventory)と関連するディメンションテーブルで形成されるディメンションテーブルがフィルターの役割を果たす結果としてデータの読み込み⾏数やネットワークを介してのやり取りを少なくしていける
Sales Customer
Time
Product
Inventory Warehouse
![Page 63: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/63.jpg)
63 ©HortonworksInc.2011–2016.AllRightsReserved
Cost variables
à Hr - This is the cost of Reading 1 byte from HDFS in nano seconds.à Hw - This is the cost of Writing 1 byte to HDFS in nano seconds.à Lr - This is the cost of Reading 1 byte from Local FS in nano seconds.à Lw - This is the cost of writing 1 byte to Local FS in nano seconds.à NEt – This is the average cost of transferring 1 byte over network in
the Hadoop cluster from any node to any node; expressed in nano seconds.
à T(R) - This is the number of tuples in the relation.à Tsz – Average size of the tuple in the relationà V(R, a) –The number of distinct values for attribute a in relation Rà CPUc – CPU cost for a comparison in nano seconds
![Page 64: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/64.jpg)
64 ©HortonworksInc.2011–2016.AllRightsReserved
Assumed values
à CPUc = 1 nano secà NEt = 150 * CPUc nano secsà Lw = 4 * Netà Lr = 4 * Netà Hw = 10 * Lwà Hr = 1.5 * Lr
![Page 65: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/65.jpg)
65 ©HortonworksInc.2011–2016.AllRightsReserved
Profile Hive queries
à hive.tez.exec.print.summary=true
←このへんで仕事してる
![Page 66: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/66.jpg)
66 ©HortonworksInc.2011–2016.AllRightsReserved
LLAP: Live Long And ProcessChallenge for Sub-Second
![Page 67: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/67.jpg)
67 ©HortonworksInc.2011–2016.AllRightsReserved
What is LLAP?• Hiveの処理実⾏のための常駐型プロセス• タスクの起動コストの低減• JITオプティマイザがより利きやすい
• プロセスではなくスレッド型のExecutor• メタデータやMapJoinのテーブルなどをタスク間で共
有できる
• IOの⾮同期化とキャッシュの導⼊• Query fragment API
Node
LLAP Process
Cache
Query Fragment
HDFS
Query Fragment
![Page 68: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/68.jpg)
68 ©HortonworksInc.2011–2016.AllRightsReserved
What LLAP isn't• Hive execution engine (like Tez, MR, Spark…)• Execution enginesは処理の組み⽴てやを⾏う
• Not a storage layer• LLAPデーモンはステートレスで、データはHDFSをsource of truth
として利⽤する• Does not supersede existing Hive• Containerベースの実⾏も引き続き進化していく
![Page 69: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/69.jpg)
69 ©HortonworksInc.2011–2016.AllRightsReserved
Example execution: MR vs Tez vs Tez+LLAP
M M M
R R
M MR
M M
R
M M
R
HDFS
HDFSHDFS
T T T
R R
R
T T
T
R
M M M
R R
R
M M
R
R
HDFSIn-Memorycolumnar cache
Map – ReduceIntermediate results in HDFS
TezOptimized Pipeline
Tez with LLAPResident process on Nodes
Map tasks read HDFS
![Page 70: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/70.jpg)
70 ©HortonworksInc.2011–2016.AllRightsReserved
LLAP in your cluster• LLAPデーモンはYARN上で実⾏される• Apache Sliderがデーモン⽤コンテナのプロビジョンとリ
カバリを⾏う• Resource management via YARN delegation model
(WIP)• LLAP and containers dynamically balance resource
usage (WIP)
![Page 71: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/71.jpg)
71 ©HortonworksInc.2011–2016.AllRightsReserved
Queryexecu6on
![Page 72: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/72.jpg)
72 ©HortonworksInc.2011–2016.AllRightsReserved
• DAGによる処理の組み⽴てはそのまま利⽤される。Tezのランタイムもそのまま利⽤される。
• フラグメント/タスクはLLAPもしくは通常のコンテナ、AM内のいずれでも実⾏可能
• どこで実⾏されるかはHive Clientによって決定される• Configurable – all in LLAP, none in LLAP, intelligent mix
• LLAPにタスクを割り当てるポリシー(in auto mode)• No user code (or only blessed user code)• Data source – HDFS• ORC and vectorized execution (for now)
• Others can still run in LLAP in "all" mode, w/o IO elevator and cache• Data size limitations (avoid heavy / long running processing within LLAP)
Tez + LLAP – overview
![Page 73: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/73.jpg)
73 ©HortonworksInc.2011–2016.AllRightsReserved
So…
M M M
R R
R
M M
R
R
Tez
![Page 74: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/74.jpg)
74 ©HortonworksInc.2011–2016.AllRightsReserved
AM
So…
T T T
R R
R
T T
T
R
M M M
R R
R
M M
R
R
Tez Tez with LLAP (auto)
auto
![Page 75: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/75.jpg)
75 ©HortonworksInc.2011–2016.AllRightsReserved
AM
AM
So…
T T T
R R
R
T T
T
R
M M M
R R
R
M M
R
R
Tez Tez with LLAP (auto)
T T T
R R
R
T T
T
R
Tez with LLAP (all)
allauto
![Page 76: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/76.jpg)
76 ©HortonworksInc.2011–2016.AllRightsReserved
Scheduling for LLAP in Tez AM• Greedy scheduling per query• クラスタ全体が利⽤可能な前提でスケジューリングが⾏われる
• Schedule work to preferred location (HDFS locality)• 同じデータにアクセスする複数のクエリ間で、preferred locationの設定に
よって同じデーモン上でタスクを実⾏させることができる
![Page 77: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/77.jpg)
77 ©HortonworksInc.2011–2016.AllRightsReserved
LLAP
Queue
Queuing fragments• LLAPデーモンはスレッドプールを使って
タスク/フラグメントを実⾏する
• 内部にキューを持っており、プラガブルな優先度付の仕組みもある
Executor Q1 Reducer 2
Executor Q1 Map 1
Executor Q1 Map 1
Executor Q3 Map 19
Q1 Reducer 2
Q1 Map 1
Q3 Map 19
Q1 Reducer 2
![Page 78: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/78.jpg)
78 ©HortonworksInc.2011–2016.AllRightsReserved
LLAP Scheduling – pipelining and preemption• フラグメントは⼊⼒データが揃いきって
いなくても実⾏開始できる• ⼊⼒データが揃った時点で”finishable”と
いうフラグが付与される
LLAP
Queue Executor
Executor
Interactive query map 1/3
…
Interactive query map 3/3
Executor
Interactive query map 2/3
Wide query reduce
Well,10mapperoutof100aredone!
![Page 79: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/79.jpg)
79 ©HortonworksInc.2011–2016.AllRightsReserved
LLAP Scheduling – pipelining and preemption• フラグメントは⼊⼒データが揃いきって
いなくても実⾏開始できる• ⼊⼒データが揃った時点で”finishable”と
いうフラグが付与される• finishableになるまでexecutorを解放はしない
LLAP
Queue Executor
Executor
Interactive query map 1/3
…
Interactive query map 3/3
Executor
Interactive query map 2/3
Wide query reduce
![Page 80: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/80.jpg)
80 ©HortonworksInc.2011–2016.AllRightsReserved
LLAP Scheduling – pipelining and preemption• フラグメントは⼊⼒データが揃いきって
いなくても実⾏開始できる• ⼊⼒データが揃った時点で”finishable”と
いうフラグが付与される• finishableになるまでexecutorを解放はしない
LLAP
Queue Executor
Executor
Interactive query map 1/3
…
Interactive query map 3/3
Executor
Interactive query map 2/3
Wide query reduce
![Page 81: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/81.jpg)
81 ©HortonworksInc.2011–2016.AllRightsReserved
LLAP Scheduling – pipelining and preemption• フラグメントは⼊⼒データが揃いきって
いなくても実⾏開始できる• ⼊⼒データが揃った時点で”finishable”と
いうフラグが付与される• finishableになるまでexecutorを解放はしない
• Non-finishableなフラグメントはプリエンプションされる
LLAP
Queue Executor
Executor
Interactive query map 1/3
…
Interactive query map 3/3
Executor
Interactive query map 2/3
Wide query reduce
![Page 82: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/82.jpg)
82 ©HortonworksInc.2011–2016.AllRightsReserved
IOelevatorandotherinternals
![Page 83: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/83.jpg)
83 ©HortonworksInc.2011–2016.AllRightsReserved
Asynchronous IO• これまでのHiveでは、IO
は同期的に⾏われていた• データの圧縮、⾮圧縮も
同期型だった
![Page 84: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/84.jpg)
84 ©HortonworksInc.2011–2016.AllRightsReserved
Asynchronous IO• LLAPでは、IOエレベー
タースレッドがディスクIO、圧縮、などを⾮同期に執り⾏う
• IO threads can be spindle aware (WIP)
• Depending on workload, IO and processing threads can balance resource usage (throttle IO, etc.) (WIP)
![Page 85: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/85.jpg)
85 ©HortonworksInc.2011–2016.AllRightsReserved
Caching and off-heap data• 解凍されたデータはoff-heapにキャッシュされる• キャッシュについてはGCを気にしないでいいように• HDFSのIOと解凍コストを排除。特にディメンションテーブ
ルに有効
• プラガブルなEviction Policy• 現在はFIFO, LRFUをサポート
![Page 86: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/86.jpg)
86 ©HortonworksInc.2011–2016.AllRightsReserved
Other benefits• ファイルのメタデータやインデックスもキャッシュされる• Predicate Pushdownの⾼速化
• MapJoin⽤のハッシュテーブルやフラグメントの実⾏計画もJVM内で共有される
• タスク/フラグメントごとに実⾏計画のデシリアライズのコストが減る• Better use of JIT optimizer• 起動しっぱなしのデーモンなので、JITが仕事をするための時間がよ
り⻑く取れる• Especially good with vectorization!
![Page 87: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/87.jpg)
87 ©HortonworksInc.2011–2016.AllRightsReserved
まとめ
![Page 88: Apache Hiveの今とこれから - 2016](https://reader033.vdocuments.mx/reader033/viewer/2022042600/58a5f2161a28aba5728b5ff1/html5/thumbnails/88.jpg)
88 ©HortonworksInc.2011–2016.AllRightsReserved
Sub-secondショートクエリで
1秒以下のレスポンスを⽬指す
à ~Hive1.2.1– Tez– Cost Based Optimizer(CBO)– ORC File format– Vectorization
à Hive2.0– LLAP
Stinger InitiativeHiveを100倍以上⾼速化
Already available on HDP!
最近のApache Hive: Key highlights