Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
0
260
[Livesence Tech Night] グリーにおけるHiveの運用
グリーにおけるHiveの運用
グリー株式会社 ⻑谷川 貴之
※2015/05/26 LIVESENSE TechNightでの発表資料です
gree_tech
PRO
June 02, 2015
Tweet
Share
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
2.2k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
25
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.4k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
150
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
150
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.3k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
260
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
290
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
210
Other Decks in Technology
See All in Technology
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
220
LLM-Readyなデータ基盤を高速に構築するためのアジャイルデータモデリングの実例
kashira
0
240
regrowth_tokyo_2025_securityagent
hiashisan
0
230
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
280
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
320
5分で知るMicrosoft Ignite
taiponrock
PRO
0
360
AWS Trainium3 をちょっと身近に感じたい
bigmuramura
1
140
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
120
第4回 「メタデータ通り」 リアル開催
datayokocho
0
130
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
130
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
490
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
180
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.4k
Designing for humans not robots
tammielis
254
26k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
KATA
mclloyd
PRO
32
15k
Balancing Empowerment & Direction
lara
5
800
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Optimizing for Happiness
mojombo
379
70k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
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