How Cloudera Manager Makes Hadoop Troubleshooting Easy

[Cloudera Manager Advent Calendar 2015](http://qiita.com/advent-calendar/2015/cm)の9日目です。

去る11/10に開催されたCloudera World Tokyo 2015で、Troubleshooting Using Cloudera Managerと題して講演させていただきました。内容は、Clouderaサポートチームの拡大とCloudera Manager（以下CM）の変遷、ならびにClouderaのエンジニアがCMをどのようにトラブルシューティングに役立てているのか、というものでした。資料は以下で公開されているのですが、本ポストでは補足の意味合いも含めて簡単に内容を振り返ってみたいと思います（なお、画面ショットは発表当時最新のCM 5.4のものをとなっています）。

http://www.slideshare.net/Cloudera_jp/troubleshooting-using-cloudera-manager-cwt2015

# Cloudera Managerとは何であるか

CMは、Hadoop（Spark含む）クラスタを構築、運用するために開発されているGUIツールです。Cloudera社内には専任のUIチームもあるほどデザインには気を配っていますので、非常に統一感のあるUIになってます。加えて便利な機能もたくさん備えています。なぜCMがユーザや我々サポートエンジニアのトラブルシューティングを支えているのか、それはこの洗練されたUIと豊富な機能によるところが大きいと言えるでしょう。

![alt](https://lh3.googleusercontent.com/ULaO2vNzNzNwtToN7FWwsz5_E2ndCBGQ7G-ow9Xn8F9wHXFY3GKaKlRJ-UCbSTE4Dh1uzZaHjJ9urJ7zOEhz7sts5knuVsQW8iLP9Nan3hEJIjKl6V-c2o2WB6h_tATIQrforu1eZqOWbCbMNj6sICB_h23BI4MWeKbS76owkb7RICFnQl7pHSMjN-RlZy_wEo_QjViPNoCOiyCsGid6Xp5POZr17d4zmQS0X_2Ek-e_GUP_O5bS4oa1RRWqY-_WZV0aSsoHP1LL3O33A87DiU5nqXPaIx_7-tYx2lZZOR0kf5YcHRWjizpYoxM592ZuwlVE7l9R3olzRePivktDuN4_qpTopn5HEAbn7AiLsjRB1kWWEgAuvQuC4mQKJZlwwuOouWbIBWIBg2aFZLQW8SdGnBO6tcsVhPcgGix2Wvqf_o7AE04Qv82d6tFDTQs4m-YlQpWo3kmicU2AT0Qd-AmClcgD7JXrWFw6PlQULtkkS5LnmbrApfXLujNBpMYUc1nnX59UOwmnq-TVnIt4EVQhqn_qyylvmLpuyqw=w720-h405-no)

一方、CMを使いこなすには、CMではできないことを理解する必要があります。

# Cloudera Managerとは何でないか

CMはコマンドラインツールではありません。クラスタに対する操作は原則としてGUIから行います（内部的に実行されているコマンドはGUIから確認できますが）。また、CMはクエリを実行したり、ジョブのワークフローを管理するようなツールではありません。スレッドダンプの取得はしてくれますが、侍やスレッドダンプアナライザのような解析機能はありません。CMにもできることとできないことがあります。それらを理解して、CMでできることは任せてしまった方が運用や障害解析が楽になります。

![alt](https://lh3.googleusercontent.com/OMbCgnkfIPhEaU7Qbkh8sx-dkikh7MF5JgyNw8BDDLy4RuPXZEnR9tzipeFCHOxJrFuw6TIXGo5S0xe8m00TPJ1Ixa5lruZLvOVGiC9LU8WuDyi1Ohp4tLhCJEdUMy-AJMfForoHl6HY2VXVeN3pQzGYond5Sg_vfFlf7lTTBZ22-j5nX_tL1y4XPPnO7l105beoOMPrE-yx5S0cqZBVRFqvF1MXh8e5wR7kvhI472yQnmtbtZesS5z5R-BphZAsr7LuSLCTFrqPzGFXCfvnsqW6O0AmOskLqYhzzrv2VxKeyc1HH0WKoKLVcaeOKkTdtwj4CjQsx3W2T3XV3SqRzYEX4FrLkLruxhuGPyl-y1Z3knYF9hFw8AtUVFVL1NZcNERXgpCYs7EXXUl0-YTyVEVw3-d58-tIGHBX1e04mK0Ud2YGymVTMUWBj_RDRQARhmFBjwBwmH5I9RfkoF_MZk6W615gNpaffVSC_u-IppNYybD1FLuM7Z9AxcopkkZEaZ3LRBXvmkVU7jAgFKGB1SjXmB0Wz9XZRsOBmIg=w720-h405-no)

# Cloudera Managerとトラブルシューティング

世の中のトラブルシューティングの現場では、まず大まかに何が起こってるのか概要を把握して、自分の経験や観察したことをもとに少しずつドリルダウンしていくのが定石かと思います。Hadoopでも同じで、まず全体像を正確に把握する必要があります。その後、複数のホストから構成されるHadoopクラスタでは、「どこに」「どの順序で」ドリルダウンしていくか、が非常に重要です。これを見誤ると迷ってしまうのですが、CMは、その道しるべになるようなツールだと思ってます。

CMのホームページはこのような画面になっています。クラスタでどのようなサービスが稼働しているか、ヘルスに問題がありそうか、直近のメトリクスの時系列変化はどうなっているか（チャート）、をひと目で理解できるシンプルなデザインです。

![alt](https://lh3.googleusercontent.com/wefUb_NLBsMay1fZB1dvgv-I0DuGGrX3bGODadk0LXpz2WeRti13Vf6aodCDK143UCXLQiTxiEUuU1OrXSznxDqM0RSQ9f3Z_0EVECPOAXia-9QDbgX0fgiPmUJhur30VNYaqmm8iVeD8Iykb5FMGDJfath6XhSBeitmv4ugHhjxPp2T5cigs3MCUTGHiVd6OCQ3QSonAoQLp6704tn_5SHK7JaTYtqCZGFPbvwdS8km2s05CkFwnvTacAtkMzgpE5xD-Ao7-EDzp7uplH9CbGJYymRY4LDppEoxSvYvSZ4JI6Bj2sslNsUFCthkeHUuZC-p46AHJFTEdkztU0rap6gGgKwa1XXlZq9Gx-hZjvA7jH2YhCw2BenVmRn90rxtM-pm_SXb8zF1Z2fYWkInbkmciKLrzQQFQWKvFAEn8Kb2n5O5Q8EeQjT2jrAij9knMkiCLTTpNG2UCfHOk09-6kPRVZ6MtzKMtwfJ_QPhz_0jve9AeEzV7kpRtbxYSfgmYxla8o82QYwZ5yDcLnJHiNVv6LVi18VL3xw0QSI=w720-h405-no)

さて、ここではHDFSのサービスヘルスがオレンジ色（警告を意味する）になっています。HDFSのリンクをクリックすると、HDFSに特化した画面が表示されます。たとえば各NameNode WebUIへのリンクや、HDFSのチャート、直近のヘルステストの結果などが確認できることがわかるでしょう。

![alt](https://lh3.googleusercontent.com/3_oZNnays3pgs5c0CA1-Ds9RktTkrCrci3FDaI3QAe8sORPQl6Z0Uj-UZ2tdhmRM6ZBOKPZn2p02Unryg2NHrg30Fq8TKJnblM7I-vwME-RxQlfhno3AM7zGWNFzSzD4sSlL3kTnfsAVntaTesjV2An7JPKbYJrRZNLzFJqw9xmSibJcm1tbyH-Ns9tTWXtpXNaTCxi4eesyFkeHzjKYzl9Q48nRoMWzkoOy2nrr7WqtHCHh96VzPf4nTgi_RWHh9ejbK-q0WVlXxoutKwD_zhs4V3PAzJ94cE4IeTzqwY2wpDqSCBcMSexfsRqCb5Q7Nfkxz2qFro25cqFkiWm2f6tGGKowBolrKTOjjBLRQPd6eOBOJPft3QyLeKn58rIHiKa2y-Vyj900IApfX5fJqECWC2nwW6ZUCeZQ6_s9nUm4P-luCg2JCtN-y3MLGhGDhyCOCFFonig87XGG9UYUGj4waMKc-d_C9afFPE2zjWnuolq7-KV1xzuuPboQUVsPk4bU4lf2lYi725ijtQLNSPszWmLzzN0H-1cNsGQ=w720-h405-no)

ここでも問題がありそうな箇所は一目瞭然で、DataNodeとJournalNodeでスワップが発生していることがわかります。DataNodeで懸念とされているリンクをクリックしてみましょう。特定のDataNodeに特化した情報が確認できることがわかります。ログファイルやホストページへのリンク、このDataNodeに特化したチャートなどが表示されています。必要に応じてブラウザ上でログを開いて確認することも可能です。

![alt](https://lh3.googleusercontent.com/kbwgj0GL3QCDm2fbsgbeY0Onq8gA34V1V33H13Bm3ziliLhpHLKbNYnTgfJFQj3bNpc1CpyhyAMEOgqz2pARMs_7I19zSjTqNU4KyHicDOJFlKmL2G9ZnZyOHyuO_dERlXjOjsX9AnNOQt_0POCkBvaOj5lR-zHoqWyoS8LJFIEs_DFA7Aqt_9bBKw0WTof2SuX_uUxVXMfucXqgc605gdjLvaE8Ug_Lbq5SKloKa-hAWf8XraJOfpWU_KLO30MO6qTtoTrD_raUroto0-ybgIxyjXs2As3X4NEmJX5tH2yrG4LWeimPNPX07o2Yy_dmWk1cJA-nN3QND70j6tM-cFwsDAetol8pMqcwVdA0eOtxScSRQmHVTkEfkpG6ZmkxMpW1cVnEPqDhNgPu3o5P_yBWeix4_cWR6i0b1rXVG6AZvjNnX5Jp0UyMXy3l3SFEzvylkHw2_3w5eA--KhjYAcpor7PWrNY5zzM7TGol6T6CRKwCnL_f8qjsrhut40ZrNg3dZD7KZ2gIR_80FoqkyJE_JeH5CKaHzYHfhks=w720-h405-no)

以上、非常にシンプルな例ですが、全体を俯瞰し、ひとつずつドリルダウンする様子を紹介しました。問題が複雑になっても、トラブルシューティングの基本方針は変わりません。また、デザインが洗練されているため、すべての操作に統一感があります。

# 最後に

CMはクラスタ管理者のためだけのツールと思われがちですが（実際に管理者に嬉しいツールなのですが）、アプリ開発者やHadoopエコシステムのコミッタであっても、検証のために簡単にCDHクラスタを構築したいときには使わない手はないでしょう。

CMは以下からダウンロード可能になっています。

http://www.cloudera.com/content/www/en-us/downloads/manager.html

また、インストール方法もいくつか選択肢があるので、要件にあわせて選ぶとよいでしょう。

http://www.cloudera.com/content/www/en-us/documentation/enterprise/latest/topics/installation_installation.html