Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
[Livesence Tech Night] グリーにおけるHiveの運用
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
gree_tech
PRO
June 02, 2015
Technology
470
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
多彩なデータに負けないデータ分析パイプライン構築
gree_tech
PRO
0
130
AI駆動で挑むプロダクト刷新 ── アーキテクチャ設計とワークフロー最適化の実践事例 ──
gree_tech
PRO
0
130
『ヘブンバーンズレッド』のリグレッションテストにおけるストーリーの自動プレイ
gree_tech
PRO
0
150
REALITYにTAチームができるまでの軌跡〜ミッション:ガチャ本数5倍に対応せよ!〜
gree_tech
PRO
0
89
イベント続きでもミスらないライブサービスゲーム公式サイト運用システム開発
gree_tech
PRO
0
100
20年間 SNS サービス「GREE」 を支えた技術の刷新と、長期運用サービスの Kubernetes へのリアーキテクト
gree_tech
PRO
0
200
グラフ基盤ワークフローで実現するLLMによる自動ゲームプレイ
gree_tech
PRO
0
150
AIエージェントに脆弱性診断の仕事を奪われかけた ークローリングからコード全診断までの限界突破ー
gree_tech
PRO
0
130
アバター使っておもろいものを作り続けたい
gree_tech
PRO
0
120
Other Decks in Technology
See All in Technology
顧客合意を取りながら進めるAWSコスト削減の実践
optim
0
150
コードレビューをなくして見えたもの
henteko
0
140
MCPでAIが自分で調べに行く
cdataj
0
130
Kiro IDE 入門 (画面の各部から、頼み方、任せ方、戻し方まで) | 目指せ Kiro マスター 02
inariku
PRO
4
180
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
3.2k
生成AI時代のIAMのマニアックな話
takuros
6
2.9k
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
450
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
200
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
5
3.3k
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
4
1.7k
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
7
3.8k
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
2
350
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Facilitating Awesome Meetings
lara
57
7.2k
Thoughts on Productivity
jonyablonski
76
5.5k
A designer walks into a library…
pauljervisheath
211
25k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Everyday Curiosity
cassininazir
0
400
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
890
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Claude Code のすすめ
schroneko
67
230k
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