Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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.4k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
27
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.4k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
160
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
150
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.5k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
270
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
290
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
210
Other Decks in Technology
See All in Technology
Database イノベーショントークを振り返る/reinvent-2025-database-innovation-talk-recap
emiki
0
250
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
1
350
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
100
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
170
【開発を止めるな】機能追加と並行して進めるアーキテクチャ改善/Keep Shipping: Architecture Improvements Without Pausing Dev
bitkey
PRO
1
110
AIBuildersDay_track_A_iidaxs
iidaxs
4
940
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
4
1.7k
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
160
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
160
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.5k
特別捜査官等研修会
nomizone
0
520
Identity Management for Agentic AI 解説
fujie
0
340
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
31
BBQ
matthewcrist
89
9.9k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
31
Typedesign – Prime Four
hannesfritz
42
2.9k
Done Done
chrislema
186
16k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
34
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.3k
First, design no harm
axbom
PRO
1
1.1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Scaling GitHub
holman
464
140k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5k
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