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
0
230
[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
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
2.1k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
60
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
48
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
0
220
あうもんと学ぶGenAIOps
gree_tech
PRO
0
36
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
54
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
71
コンテンツモデレーションにおける適切な監査範囲の考察
gree_tech
PRO
0
35
新サービス立ち上げの裏側 - QUANT for Shopsで実践した開発から運用まで
gree_tech
PRO
0
45
Other Decks in Technology
See All in Technology
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
3
130
データ戦略部門 紹介資料
sansan33
PRO
1
3.8k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
8.9k
Microsoft 365 の認証と承認を理解する / Understanding Microsoft 365 Authentication and Authorization
karamem0
0
110
旅で応援する✈️ NEWTが目指すコミュニティ支援とあたらしい旅行 / New Travel: Supporting by NEWT on Your Journey
mii3king
0
140
ハノーファーメッセ2025で見た生成AI活用ユースケース.pdf
hamadakoji
0
370
AI時代、“平均値”ではいられない
uhyo
8
2.1k
現場データから見える、開発生産性の変化コード生成AI導入・運用のリアル〜 / Changes in Development Productivity and Operational Challenges Following the Introduction of Code Generation AI
nttcom
1
430
Node.js 2025: What's new and what's next
ruyadorno
0
990
CoRL 2025 Survey
harukiabe
1
240
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
940
AWS UG Grantでグローバル20名に選出されてre:Inventに行く話と、マルチクラウドセキュリティの教科書を執筆した話 / The Story of Being Selected for the AWS UG Grant to Attending re:Invent, and Writing a Multi-Cloud Security Textbook
yuj1osm
1
120
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Making Projects Easy
brettharned
120
6.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
990
It's Worth the Effort
3n
187
28k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
570
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Balancing Empowerment & Direction
lara
5
700
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Scaling GitHub
holman
463
140k
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