Advertisement
Advertisement

More Related Content

Recently uploaded(20)

Advertisement

NIIで いろいろな Hadoop環境(だけじゃないけど)を 作ったり壊したり 動かし続けたりしている話

  1. NIIで いろいろな Hadoop環境(だけじゃないけど)を 作ったり壊したり 動かし続けたりしている話 谷沢智史(株式会社ボイスリサーチ)
  2. 誰? 谷沢智史 ◦ 株式会社ボイスリサーチ エンジニア ◦ GitHub/Twitter: @yacchin1205 昔: オンラインゲームとか映像コンテンツとか 今: クラウド運用とかロボットとか 国立情報学研究所(NII)でプライベートクラウドの運用支援
  3. 国立情報学研究所には… 所内研究者向けベアメタルクラウドサービス ◦ 研究クラウド / アカデミックインタークラウド 授業や研究のため、 ここでHadoopを動かしてます
  4. 学術機関 … 要求が多様 教材用途: VMベースにして自由に壊せるようにしたい / それを1週間だけほしいー Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN Baremetal VM VM VM VM VM NN ZK NN ZK ZK DN DN DN …
  5. 学術機関 … 要求が多様 分析用途: ログ集約にはFluentdがいいなあ / 認証つけて / OpenTSDBってのを使いたいよね / しばらく維持し続けたい / etc… Baremetal DN Region Server Baremetal DN Region Server Baremetal DN Region Server Baremetal DN Region Server Baremetal DN Region Server Baremetal DN Region Server Baremetal DN Region Server Baremetal DN Region Server… Baremetal NN ZK Baremetal NN ZK Baremetal Master ZK Baremetal Fluentd Baremetal Fluentd Open TSDB KDC Master KDC Slave KDC Slave Hadoopエコシステムは広大・・・!
  6. 構築・運用をどうやろう? Hadoopの管理ツールを使う? ◦ ディストリビューションで完結できれば、とても便利なツールがあるが… ◦ 管理ツールがサポートするソフトウェアに利用を絞れれば使えそう 構成管理ツールを使う? ◦ 例えばAnsibleとか… 多くのRoleが公開されている ◦ 構築: うまくパラメータ化し、Playbookにまとめれば構成管理ツールで完結できそう ◦ 運用: 知識「どういうときに、何をやるべきか? 」の表現・共有は構成管理ツールで は難しそう
  7. Literate Computing for Reproducible Infrastructure Jupyter(旧IPython) + Ansible 実行コード 実行結果 説明 をNotebookとして、 ひとまとめに
  8. 構築・運用作業を Ansible Playbookとして抽象化 インストールとか … 現在はHDP 2.3ベース / NTTデータさんのご協力
  9. 構築・運用作業を Ansible Playbookとして抽象化 フォーマットとか
  10. 手順・説明をNotebookに
  11. 作業をAnsible経由で 特定のノードで何かコマンドをたたきたいとか ◦ 運用 … Decommissionに必要なコマンド実行/パッケージのアップデート…
  12. 手順だけでなく経緯の説明も 操作とともに説明を書いたりとか
  13. Hadoop以外のものも Hadoop以外のものも同じ枠組みでまとめられる ◦ Xenのインストールとか、Fluentdのインストールとか…
  14. 1年試してみた感触… 過去やったことを簡単に再現できる ◦ 状態を持っているものはダメだったりする – 事前条件のチェックなどを書き足す 「どうやればいいの?」に対して、Notebookを渡して「これ見て」で済む ◦ 済まない場合もある – 説明を書き足す 構築・運用作業のリファクタリングが大変 ◦ 同じような操作をどうパラメータ化して、次以降に楽をするか? ◦ 作業の実施そのものが楽になる分… 操作や説明の継続的改善に取り組む必要 運用作業にもJupyter使ってみましょ!!!!!!!!!

Editor's Notes

  1. (タイトル)という題で、ボイスリサーチの谷沢が発表させていただきます。
  2. 自分はここ最近クラウド運用やロボットのお仕事をやらせていただいているのですが、この中でおこなっている、国立情報学研究所(NII)でのプライベートクラウド上でのHadoopの構築・運用について、お話しさせていただこうと思います。
  3. NIIには、プライベートクラウドとしてOpenStackベースのベアメタルクラウドを持っています。 授業や、研究目的でこのクラウド上でHadoop環境を構築、運用しています。
  4. 学術機関ならではかもしれないのですが、いろいろな要求があります。 たとえば、授業での教材としてHadoop環境がほしくなる場合があります。このように、ベアメタル1台当たり、XenでVMを立ち上げて、そのVM上にHadoopクラスタを1つずつ作ってほしい、なんてことがあったります。演習としてVMをつぶしてみたりとか実験をしてみるという目的に使うわけです。 他にも、
  5. 研究用途で複数のベアメタルでHadoopクラスタを構築するということもあるのですが、この際はKerberosもあわせて設定してよとか、Hadoop以外のソフトウェアも組み合わせてねということもあります。 今日のセッション、LTもさまざまな話題があるわけですが、Hadoopエコシステムは広大で、
  6. これをどのように構築・運用していくのかはなかなか悩ましいわけです。 例えばHadoopの管理ツールを使うという手がありますが、うまく管理ツールでカバーできる範囲に絞れればよいのですが、なかなかそれもうまくいかない場合があります。 また、構成管理ツールもいろいろあっていい感じなのですが、構築についてはPlaybookとしてうまくまとめられればそこで完結できるわけですが、運用については「どういうとき、何をすべきか」という部分をすべて書き下して構成管理ツールに閉じ込めるのはちょっと難しいのかなと思います。 そこで、
  7. NIIでは、IPython、今はJupyterと呼ばれていますが、このようなNotebookの環境を使って、Ansibleの能力を組み合わせながら、実行コード、実行結果、説明をひとまとめに管理しながら構築、運用作業をおこなう、ということをやってみています。
  8. 例えば構築の場面では、AnsibleのPlaybookとして、インストールに必要な処理とか、
  9. フォーマットに必要な処理をまとめて、これらのPlaybookを実行するコマンドをNotebookのセルに記述し、実行できるようにしています。実行結果はこのようにセルの下に表示されます。
  10. 個々の説明にはMarkdownが書けて、このように見出しを入れつつ、手順に沿って、説明を加えながら記述する、ということをやっています。実行可能な手順書という感じです。
  11. Playbookのほかに、コマンドを直接書いたりですとかも可能です。運用に必要なコマンド実行などはコマンドで書く場合が多いです。
  12. 個々のコードのすぐそばに経緯などもかけるので、あとでなんでこれやったんだっけ?みたいなことも割と少なくて済む気がします。
  13. 当然Hadoop以外の、仮想化基盤やアプリケーションもこのような形でまとめていけます。たとえば、Fluentd設定前、HDFSにアーカイブ先のディレクトリを準備する、とか、必要なKerberos設定を作るとかそんなこともまとめられます。
  14. こんな感じで、1年試してみました。コンセプトの詳しい説明は、続く政谷さんのLTにお願いしますが、いいことつらいことを簡単に書いてみます。 まず、簡単に過去やったことを実行できることは非常に楽です。ただ、当然操作対象の状態が、Notebook実行時とは異なっている可能性がありますから、そこは事前条件のチェックなどを加えることで工夫しています。 次に、説明が楽です。何かこんなときどうすればよいの?と聞かれたときは、「このNotebook見て」で済ませられます。ここでわからない範囲があれば、説明不足な点など書き足していってみています。最後にこれはつらいことですが、 構築、運用作業のリファクタリングがちょっと大変です。Notebookのセルの実行を、どこまで自動的にできるようにするか、例えば条件のチェックや出力のチェックを人手に頼るかなどの点で、「ここ面倒だよね」というところは随時自動化なりするようにしています。大変ですが、このように継続的に手順を見直して改善していくことで、より賢い運用ができるのではないかなーと思っています。 ということで、運用作業にもJupyter、いいですよ、ということで自分のLTは終わりにさせていただきます。どうもありがとうございました。
Advertisement