Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[Livesence Tech Night] グリーにおけるHiveの運用
Search
gree_tech
PRO
June 02, 2015
Technology
380
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[Livesence Tech Night] グリーにおけるHiveの運用
グリーにおけるHiveの運用
グリー株式会社 ⻑谷川 貴之
※2015/05/26 LIVESENSE TechNightでの発表資料です
gree_tech
PRO
June 02, 2015
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
4.9k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
68
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.8k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
460
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
450
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
2.4k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
570
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
600
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
480
Other Decks in Technology
See All in Technology
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
760
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
300
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
650
知らん間に、回ってる
ming_ayami
0
380
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
1k
product engineering with qa
nealle
0
160
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
4.2k
AI時代における最適なQA組織の作り方
ymty
3
500
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
200
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
150
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
840
地域 SRE コミュニティ最前線 / SRE NEXT 2026 Discussion Night Track C
muziyoshiz
0
190
Featured
See All Featured
Abbi's Birthday
coloredviolet
3
8.6k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
260
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Music & Morning Musume
bryan
47
7.3k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
340
A designer walks into a library…
pauljervisheath
211
24k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
410
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
180
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
280
The agentic SEO stack - context over prompts
schlessera
0
840
Paper Plane (Part 1)
katiecoart
PRO
0
9.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Transcript
グリーにおけるHiveの運⽤用 ⻑⾧長⾕谷川 貴之 2015/05/26 LIVESENSE TechNight 1
⾃自⼰己紹介 グリー株式会社 / データエンジニアリングG Hive/Prestoを含むHadoop周りの保守 – ツールの開発/改善 • Job管理理コンソール, ジョブスケジューラ,
… – 利利⽤用者のサポート • データ投⼊入の準備, 使い⽅方の説明 2015/05/26 LIVESENSE TechNight 2
グリーにおける分析基盤 (簡略略版) 2015/05/26 LIVESENSE TechNight 3 Game SNS
グリーにおける分析基盤 (簡略略版) 2015/05/26 LIVESENSE TechNight 4 Game SNS
Hive Hadoop上のデータをSQL-likeに扱える 弊社ではv0.12, v0.13, v0.14を利利⽤用中(!?) 2015/05/26 LIVESENSE TechNight 5 select
page, count(distinct(uid)) uu, count(1) pv from access where day = ʻ‘2015-‐‑‒05-‐‑‒26ʼ’ group by page ページごとのUUとPVを算出
マルチバージョンなHive • v0.12 – 今動いてる中で1番古いバージョン – 最も安定、ただし遅い • v0.13.1 –
最も利利⽤用されているバージョン – v0.12から移⾏行行する場合はクエリの書き換えが必要 • UDFがそのままだと動かない • v0.14 – 単純なバッチしか流流していないバージョン – 速いが… 2015/05/26 LIVESENSE TechNight 6
運⽤用でありそうな話 • 異異常により再起動せざるおえない • ストレージが圧迫される • データに型の違う値がある • バグでそもそも違う値が返ってくる 2015/05/26
LIVESENSE TechNight 7 hard
運⽤用でありそうな話 • 異異常により再起動せざるおえない • ストレージが圧迫される • データに型の違う値がある • バグでそもそも違う値が返ってくる 2015/05/26
LIVESENSE TechNight 8 hard
⼀一時ファイルが消えず… /tmpにできる⼀一時ファイルが消えず定期的に再起 動をしている 2015/05/26 LIVESENSE TechNight 9 $ ls -lt
/tmp total 3721552 drwxr-xr-x 2 hive hive 4096 May 25 10:57 1826d22e-cbbf-4e7b-8e9a- e5d1a300994e_resources drwxr-xr-x 2 hive hive 4096 May 25 10:08 08df2afb-779e-425c-9cf3- cedca2cc051a_resources drwxr-xr-x 2 hive hive 4096 May 25 10:04 4d1edc92- ddd4-4aa2-904b-4b19182adf4f_resources Disk Usage 再起動
Hive Serverの冗⻑⾧長化 再起動時にRUNNINGのクエリを殺さない 負荷がかかり過ぎた場合に切切り替えられる 2015/05/26 LIVESENSE TechNight 10 API Server
Clients Web UI
運⽤用でありそうな話 • 異異常により再起動せざるおえない • ストレージが圧迫される • データに型の違う値がある • バグでそもそも違う値が返ってくる 2015/05/26
LIVESENSE TechNight 11 hard
⻑⾧長期保存に向けデータの⼊入れ直し 定期的に列列指向フォーマットでデータを⼊入れ直す – ファイル数を減らしNameNodeの負担を減らす – 効率率率の良良いディスク利利⽤用 2015/05/26 LIVESENSE TechNight 12
RCFile, ORCFile JSON.gz INSERT hourly, daily
運⽤用でありそうな話 • 異異常により再起動せざるおえない • ストレージが圧迫される • データに型の違う値がある • バグでそもそも違う値が返ってくる 2015/05/26
LIVESENSE TechNight 13 hard
データに型の違う値がある Hiveはschema-on-read – それに対しMySQLはschema-on-write 弊社ではExternal tableの利利⽤用が多い – Fluentd → HDFSに保存したJSONを参照している
– このJSONが不不正な状態で作成されている 全部 PHP のせいだ(嘘です、ごめんなさい 2015/05/26 LIVESENSE TechNight 14
2015/05/26 LIVESENSE TechNight 15 CREATE EXTERNAL TABLE `item_consume`( `time` bigint,
`uid` int, `device` string, `request_status` int ) {“time”: 1432134000, “uid”: “22275”, “device”: “android”, “request_status”: 1} {“time”: 1432167000, “uid”: 22275, “device”: “iphone”, “request_status”: false} 例例)テーブル定義 データ(JSON)
2015/05/26 LIVESENSE TechNight 16 CREATE EXTERNAL TABLE `item_consume`( `time` bigint,
`uid` int, `device` string, `request_status` int ) {“time”: 1432134000, “uid”: “22275”, “device”: “android”, “request_status”: 1} {“time”: 1432167000, “uid”: 22275, “device”: “iphone”, “request_status”: false} 例例)テーブル定義 データ(JSON)
2015/05/26 LIVESENSE TechNight 17 _⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人_ > ClassCastException <  ̄Y^Y^Y^Y^Y^Y^Y^Y^ ̄ ※
NumberFormatExceptionが起きるケースもある
違う型のデータへの取り組み • できるだけ変換、出来ない場合はNULL – SerDeの箇所に変更更を加える – “22275”→22275, false → 0,
“” → NULL • Schemaの変更更をしてもらう – intのカラムにfloatが⼊入ってるケースなど – 変更更しないとNULLしかでてこない 2015/05/26 LIVESENSE TechNight 18
運⽤用でありそうな話 • 異異常により再起動せざるおえない • ストレージが圧迫される • データに型の違う値がある • バグでそもそも違う値が返ってくる 2015/05/26
LIVESENSE TechNight 19 hard
そもそも違う値が返ってくる(1/2) [HIVE-9753] Wrong results when using multiple levels of Joins.
When table alias of one of the table is null with left outer joins. 何回かJOINするクエリを投げたときに発覚 異異なるaliasがなぜか同じaliasになってた このチケットは放置されたまま… 2015/05/26 LIVESENSE TechNight 20
そもそも違う値が返ってくる(2/2) [HIVE-9743] Incorrect result set for vectorized left outer join
正しくJOINできてなくて0になるカラムが多数 EXPLAINを⾒見見ると明らかにおかしくなってた v1.2.0で修正済み (実際に投げて確認済み 2015/05/26 LIVESENSE TechNight 21
まとめ • Hiveはバギーなので運⽤用する際は要注意 – 特にアップグレードは⼗十分な検証が必要 – パッチを当てる運⽤用も覚悟 – v1.2.0は多くのバグが直っているので期待 •
ログはちゃんとした形式で出⼒力力しましょう – どこかに困る⼈人達がいます • ⼈人数が多くない場合、⾃自社運⽤用はやめましょう – Redshift, BigQuery, TreasureDataを使おう – バグはその⼈人達が直してくれる 2015/05/26 LIVESENSE TechNight 22
2015/05/26 LIVESENSE TechNight 23 HAPPY HACKING