Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

HBase Across the World #LINE_DM

825 views

Published on

2018.03 に https://line.connpass.com/event/80490/ で発表した内容です

Published in: Engineering
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

HBase Across the World #LINE_DM

  1. 1. 1© Cloudera, Inc. All rights reserved. 1© Cloudera, Inc. All rights reserved. HBase Across the World ⼩林⼤輔 (d1ce_)
  2. 2. 2© Cloudera, Inc. All rights reserved. • ⼩林⼤輔 (d1ce_) • Cloudera ⼊社 6 年⽬ • Hadoop エコシステムの顧客サポート • 社内の技術トレーニング、技術⽀援 Who am I?
  3. 3. 3© Cloudera, Inc. All rights reserved. • ⼩林⼤輔 (d1ce_) • Cloudera ⼊社 6 年⽬ • Hadoop エコシステムの顧客サポート • 社内の技術トレーニング、技術⽀援 Who am I?
  4. 4. 4© Cloudera, Inc. All rights reserved. • ⼩林⼤輔 (d1ce_) • Cloudera ⼊社 6 年⽬ • Hadoop エコシステムの顧客サポート • 社内の技術トレーニング、技術⽀援 Who am I? We are hiring!
  5. 5. 5© Cloudera, Inc. All rights reserved. • ⼩林⼤輔 (d1ce_) • Cloudera ⼊社 6 年⽬ • Hadoop エコシステムの顧客サポート • 社内の技術トレーニング、技術⽀援 Who am I? We are hiring!
  6. 6. 6© Cloudera, Inc. All rights reserved. • Cloudera と HBase • HBase のサポート体制 • ⾟かった話 Agenda
  7. 7. 7© Cloudera, Inc. All rights reserved. クラウドにも最適化された 機械学習と分析のための 最先端の基盤を提供する企業 Cloudera とは
  8. 8. 8© Cloudera, Inc. All rights reserved. クラウドにも最適化された 機械学習と分析のための 最先端の基盤を提供する企業 HBase is a part of the infrustructure! Cloudera とは
  9. 9. 9© Cloudera, Inc. All rights reserved. データエコノミー • データは最も価値のある資源である • より価値あるデータを持つ企業が 強い時代がこれからも続く 出典: The Economist https://www.economist.com/news/briefing/21721634-how-it- shaping-up-data-giving-rise-new-economy https://www.economist.com/news/leaders/21721656-data- economy-demands-new-approach-antitrust-rules-worlds-most- valuable-resource なぜ分析基盤が必要なのか?
  10. 10. 10© Cloudera, Inc. All rights reserved. • 2008 年、以下 4 社出⾝の社員により設⽴ • 2017 年 5 ⽉、ニューヨーク証券取引所に上場 • 従業員数 世界全体で 1,600 ⼈以上 • 世界 28 カ国 に事業展開 • 世界中のミッションクリティカルシステムに導⼊ • ⾦融、⼩売、通信、メディア、ヘルスケア、エネルギー、政府 • 最⼤のエコシステム 3,000 社以上のパートナー • Cloudera University 45,000 ⼈ 以上がトレーニングを受講 About Cloudera - 会社概要
  11. 11. 11© Cloudera, Inc. All rights reserved. Cloudera と HBase 8 5 10~2000+
  12. 12. 12© Cloudera, Inc. All rights reserved. Cloudera と HBase 2010年のサポート 開始から 8 年 8 5 10~2000+
  13. 13. 13© Cloudera, Inc. All rights reserved. Cloudera と HBase 2010年のサポート 開始から 8 年 8 5 10~2000+ 問い合わせ数 Top 5 コンポーネント
  14. 14. 14© Cloudera, Inc. All rights reserved. Cloudera と HBase 2010年のサポート 開始から 8 年 8 5 10~2000+ 問い合わせ数 Top 5 コンポーネント サポートするクラスタは ⼗数から千ノード単位 までさまざま
  15. 15. 15© Cloudera, Inc. All rights reserved. HBase のサポートは⼤変か?
  16. 16. 16© Cloudera, Inc. All rights reserved. はい
  17. 17. 17© Cloudera, Inc. All rights reserved. • ログの収集が⼤変 • お客様ごとにアプリケーションやスキーマの設計が違う • お客様ごとにノード数もハードウェアも設定も違う • 併⽤しているコンポーネントが様々 • MapReduce • Impala • Spark • Solr • Phoenix • Custom Application HBase のサポートは⼤変
  18. 18. 18© Cloudera, Inc. All rights reserved. • 多機能化する HBase • MOB: 中規模サイズ (~10MiB) のデータの読み書き • リードレプリカ: 読み込み HA • Multi WAL • 複数クラスタ間レプリケーション • セルレベルのアクセスコントロール • 透過的暗号化 • マイナーバージョン毎に変わる製品挙動 • ユーザビリティは後⽅互換性があるので変わらない • 変わるのはコア部分の挙動 à 障害対応する際には厄介 HBase のサポートは⼤変
  19. 19. 19© Cloudera, Inc. All rights reserved. かつて HBase を⽕⼭と呼んだ⼈がいた 2012 年頃
  20. 20. 20© Cloudera, Inc. All rights reserved. もう HBase は⽕⼭じゃないと主張した⼈がいた 2014 年頃
  21. 21. 21© Cloudera, Inc. All rights reserved. あれから 4 年
  22. 22. 22© Cloudera, Inc. All rights reserved. HBase は⽕⼭か?
  23. 23. 23© Cloudera, Inc. All rights reserved. いいえ
  24. 24. 24© Cloudera, Inc. All rights reserved. (たぶん)
  25. 25. 25© Cloudera, Inc. All rights reserved. • ⽕⼭ではないが、、、 • アプリケーション/スキーマ/クラスタ設計を怠るとトラブル多発 • 新機能を使い込めばバグは⾒つかる • データが増えればコーナーケースにハマる à どのソフトウェアにもあること • お客様環境を把握し、早急な解決に導く必要がある • 新規サポートメンバーへの効率的な技術⽀援 HBase サポートのチャレンジ 2018 年
  26. 26. 26© Cloudera, Inc. All rights reserved. Cloudera の取り組み
  27. 27. 27© Cloudera, Inc. All rights reserved. • 診断データ • クラスタ運⽤ツールから設定、ログを⼀括で取得 • ノード数、ハードウェア/ソフトウェア構成など環境固有の情報も取得 Cloudera の取り組み お客様 Cloudera Cloudera Manager (Enterprise) Cluster 1 master worker worker worker Cloudera Manager が、クラスタの構成、 各種設定値、ログ、メトリクスなどを 収集し、サポートシステムに送信 サポートシステム サポート担当お客様 サポート問い合わせ/対応 クラスタの各種 情報を確認 診断データの分析
  28. 28. 28© Cloudera, Inc. All rights reserved. • ドッグフーディング • 診断データを HBase クラスタに投⼊し、分析環境の基盤として運⽤ • マイナーバージョンのリリース前に必ずアップグレードし、しばらく運⽤ してからリリース Cloudera の取り組み
  29. 29. 29© Cloudera, Inc. All rights reserved. • Cluster Validation • ドッグフーディングクラスタで診断データを分析し、既知のバグや パフォーマンス劣化を及ぼす兆候を⾃動的に検知 • 緊急性の⾼いものについてはお客様に通知する Cloudera の取り組み
  30. 30. 30© Cloudera, Inc. All rights reserved. • トラブルシューティングを神業にしない • 経験のあるメンバーのナレッジを定期的に共有 • ツール化することで再現性を⾼める • hbck の結果を⾃動で分析するツール • ログから傾向を⾃動で分析するツール Cloudera の取り組み
  31. 31. 31© Cloudera, Inc. All rights reserved. • Close Loop Reason • クローズしたケースを分析し、問い合わせの傾向を把握 • プロダクトロードマップへ反映 • サポータビリティの向上 • 原因特定がしやすいログメッセージの出⼒ • 混乱を招く製品挙動の変更 • 障害対応に必要なコマンドの⾃動実⾏と取得 • ドキュメントの改善 Cloudera の取り組み
  32. 32. 32© Cloudera, Inc. All rights reserved. それでも⾟いことはある
  33. 33. 33© Cloudera, Inc. All rights reserved. • hbck で不整合が直らない • 理屈では直るはずが、hbck 実⾏後新たな不整合ができている • 無限ループ ⾟かったこと①
  34. 34. 34© Cloudera, Inc. All rights reserved. 160 箇所の不整合が検出 😥 ⾟かったこと①
  35. 35. 35© Cloudera, Inc. All rights reserved. 重複しているリージョンが 160 個 😰 ⾟かったこと①
  36. 36. 36© Cloudera, Inc. All rights reserved. -fixHdfsOverlaps -fixMeta -fixAssignments Region A と B が重複しているとする 1. と のクローズ 2. の作成 3. と のhfile を に移動 4. と のディレクトリを削除 5. hbase:meta から と のエントリを削除 6. と のリージョンディレクトリが復活(中⾝は空) 7. がオンラインにならない 8. が重複した状態となる Region A Region C Region B Region A Region B Region C Region A Region B Region A Region B Region A Region B Region C Region A Region B Region C
  37. 37. 37© Cloudera, Inc. All rights reserved. • と に実データがない ( .regioninfo のみ) • に実 hfile が存在 1. と を HDFS ディレクトリごと強制退避 2. をベースにリージョン情報を強制更新することで修正 -fixEmptyMetaCells -fixMeta -fixAssignments <table name> 3. ログを⾒て問題が再発していないことを確認 対処 Region A Region B Region C Region A Region B Region C
  38. 38. 38© Cloudera, Inc. All rights reserved. • 材料 • Read Replica を使⽤している • リージョン merge が発⽣している • HBASE-18025 • Read Replica 使⽤時に、split/merge した古いリージョンの 情報がマスターに残り続け、実データを持たないリージョン ディレクトリを再作成してしまう 原因
  39. 39. 39© Cloudera, Inc. All rights reserved. • HBase レプリケーションが進まない • ターゲットクラスタでレプリケーションが滞留 • ソース ‒ ターゲット間のラグが埋まらない ⾟かったこと②
  40. 40. 40© Cloudera, Inc. All rights reserved. • ダイレクトバッファのメモリリーク • RegionServer のログ、ヒープダンプ、メトリクスよりリークを確認 • 参考 • http://www.evanjones.ca/java-bytebuffer-leak.html • https://bugs.openjdk.java.net/browse/JDK-8147468 • アプリケーションのバッドデザイン • 1 GiB 近くの WAL を⽣成するような書き込みの設計 原因 java.io.IOException: com.google.protobuf.ServiceException: java.lang.OutOfMemoryError: Direct buffer memory on XXX,60020,1518078103721
  41. 41. 41© Cloudera, Inc. All rights reserved. • リークの対処 • -Djdk.nio.maxCachedBufferSize=262144 • レプリケーションラグ 1. ターゲットクラスタのテーブルを削除 2. ソースクラスタで HBase スナップショットを取得 3. ターゲットクラスタにクローン • アプリケーション設計 • WAL の中⾝から問題となっているキーを指摘 • アプリケーション、スキーマの再設計を依頼 or • お客様⾃⾝でできない場合はコンサルティングサービスの提案(有償) 対処
  42. 42. 42© Cloudera, Inc. All rights reserved. Thank you daisuke@cloudera.com
  43. 43. 43© Cloudera, Inc. All rights reserved. Appendix
  44. 44. 44© Cloudera, Inc. All rights reserved. • -repair オプションは使わないこと • 計 10 個のオプションが⾃動実⾏される à それぞれが何をするものか理解しているか? à 全てのオプションが必要なケースを⾒たことがない • 重複しているリージョンを /hbase/data の外側に退避してしまう à ⼀時的にデータロストの状態になる à 再ロードするのは⼤変 hbck 実⾏時の注意
  45. 45. 45© Cloudera, Inc. All rights reserved. • -fixHdfsHoles/-fixHdfsOverlaps 実⾏時のリージョンサイズ • リージョン merge が⾛る • merge 後のリージョンが hbase.hregion.filesize を越えると リージョン split が⾃動的に⾛る à hbck による修正と衝突すると新たな不整合を招く hbck 実⾏時の注意

×