MapR(GreenPlumHD)の中身説明会に参加しました。「HadoopのC++実装らしい。」程度の予備知識しかない状態で参加したので、知らないことが多くて面白かったです。
思ったことなど
- MapRはEMCと提携していたのか。知らなかった。
- MapR-FSは普通のファイルシステムは経由せずに、ブロックデバイスをそのまま使っている。 へー。
- ビルトイン圧縮は拡張子で判断して圧縮の有効/無効を切り替えているのが面白い。jarやpptxをはじめ、最近はほとんど実態はzipな気がするので、ちゃんとフォーマットを見ないとダメでしょう。全然詳しくないけど、普通最初の4バイトくらいで判別できるんじゃないの?
- 実機デモのサクサク感がすごかった!WebUI※1とNFSマウントしたときの操作※2。
- 「すげー速いよ。品質いいよ。」とは言っているけど、デモがサクサクなの以外は言っているだけだった。NTTデータ濱野さんの「どういうテストをしてるのか公開できないの?」という質問にも答えていなかった。
- NFSマウントしたときは部分書き換えなどのMapReduceでは不要な操作まで実装しているように見えて、HDFSの別実装と言う割にはオーバースペックな気がした。
- 以下のブログ記事が読みやすくて参考になる。
http://d.hatena.ne.jp/nagixx/20111216/1324006829
※1 ノード数が増えたら重くなりそうなUIだったけど。
※2 hadoopコマンドと比較したら圧倒的だったけど、FUSEマウントしたものと比べないと不公平だとも思った。
会場で記入したメモ
- いろいろ
- 日時:2012年1月19日 18:30~20:30
- 主催はノーチラスの神林さん。
- 40人くらい?もっといた?
- これ、EMCだったのか。(不勉強すぎる・・・)
- 日本人の人
- 5分ほど遅刻したので名前を聞き逃した。
- SunでJava関連の何かをやっていた人らしい。
- MacなのにPowerPointって・・・
- デモ
- 3台の小さなPCを持ち込んで、管理画面のデモをしている。
- WebUI、とてもサクサク動いている。Hadoopのと全然違ってかっこ良い。
- ジョブの投入はコマンドラインなのか。動作中のジョブをGUIで見るのはHadoopのと同じ見せ方をしている。かっこ悪い。
- Gangliaを見ている。GUIにグラフはあんまりきれいには組み込まれていない。
- 解説
- なぜかPowerPointをプレゼンテーション表示にせずに説明を進めている。図中の文字がつぶれて読めないよ。
- MapRは主にHDFS部分を置き換えている。上のAPIは100%互換にしている。
- Q:DirectShuffleとは?
- データ転送をHTTPではなくRPCを使ってオーバーヘッドを減らしている。
- Apache Hadoop:Mapの結果をローカルのHDDに置いてHTTPの転送
- MapR:中間データ用のボリュームをローカルに作って、そこに対してRPCで処理する。メリットとしては中間ファイル領域の設計が不要なこと。←あんまり分からなかった。転送量自体は減らないのでは?
- Apache Hadoopが中間ファイルをローカルに置いているのは、タスクが増えたときにHDFSに置いているとメタデータが増えて集中管理が大変だから。MapRではメタデータが中央管理ではないので中間データも普通のデータと同じ場所に置ける。
- Q:中間データを分散ファイルシステムに置いたらレプリケーションの負荷がかかるのでは?
- さっきローカルに置くって言ってなかったっけ?
- MapRはファイルシステムは使わずにブロックデバイスをそのまま使っている。へえ。★
- CLDBは全体で1つ。ネームコンテナは各ノードにある。ネームコンテナがApache HadoopのNameNode相当の役割。
- CLDBはZooKeeperではなく独自の実装。
- ネームコンテナのレプリカはフォーク型、データコンテナのレプリケーションはチェイン型の絵があった。ネームコンテナでは1個でも書ければ成功とみなすらしい。←よく分からなかった。
- ボリュームごとにネームコンテナがみつ、データコンテナが図にいっぱいあって理解できない。
- Q:ノードが追加されると、参照関係は作り直される?
- デフォルトでは20%の利用率の違いがあれば移されはじめ、均等になる。
- ボリュームごとに、データが分散されるノードの範囲を限定できる。ツリーになっていて、特定のサーバや特定のラック、などが指定できる。限定もできるし、単一障害点を考慮して分散させることもできる、と言っていた。
- Q:権限はどのくらい細かく設定できる?
- ボリューム管理の権限がある。全部 or notしかなさそう。
- データアクセスはボリューム単位で設定可能だけど、トポロジはあんまり細かくできない。このラックはこのユーザが管理可能、などはなさそう。
- データアクセスのパーミッションはPOSIXと言っていた。
- スナップショットの機能がある。
- .snapshot/ができる。
- Copy-on-writeの普通のやり方。
- 圧縮の機能がある。
- ファイルシステムの内部で圧縮する。
- 拡張子で圧縮を除外している。ェ…★
- アプリのレイヤで圧縮した方が良いんじゃないのかな?あんまりメリットが分からない。
- .dfs_attributeファイルにディレクトリごとの設定が平文で書かれている。
- HAについて
- ZooKeeperでノードの死活情報をやり取りしている。
- CLDB HAは最大3ノードで構成可能。
- NFSv3相当の機能がある。
- Apache Hadoopはデータのインポート/エクスポートが大変。MapRはNFSとしてマウントできるので使いやすい。
- でもローカルのファイルをインポートするとき、通信量は同じよね?
- デモ、レスポンスがとても高速!Hadoopのコマンドだと何をするにも2秒くらいかかる。確かに。★
- 実際のデータアロケーションは8KiB単位。細かいファイルがたくさんあっても64MiB使うわけではない。ほう。
- 圧縮も8KiBの単位で圧縮している。
- クライアント側にNFSサービスだけをインストールすることもできる。こっちの方が性能が良い。でも1ノード分ライセンスがかかってしまう。
- Q:NFS更新とMapReduceの読み込みの排他は?
- 整合性は自分で取らないといけない。うーん・・・。
- スナップショットを使えば?と。ジョブ開始時に透過的にスナップショットをとってくれるわけではない。
- リバランスはデータ量のみ。
- アプリケーションの互換性
- 基本的にはJava APIは100%互換
- hdfs://→maprfs://に書き換える必要がある。
- QA(ほとんどSusheelさんが答えてる。)
- HDFSを再実装した動機は?運用性?速度?スケーラビリティ?
- 今挙げられた全部。
- ログ解析など、再実行できるものはApache Hadoopで良いだろう。企業の基幹システムなど、夜間バッチが終わらないと大変なことになるところでは信頼性が大事。
- 性能、リソースを効率的に使う方が良いよね?←ハードウェアと電気代よりライセンスの方が高いんじゃ?
- エンタープライズでは実績重視だろう。どういう試験をしているのを公開する予定はある?現状では機能だけだろう。EMCと同じ試験をしているとか、何か言えないの?(NTTデータの濱野さん)★
- HDFSはシンプル。4年の実績がある。MapRは6か月だけど、データロストはまだない。なんじゃそれww
- 答える気がなさそう。
- 今日のプレスリリースでApache Hadoopに対してもテストをしますよ、とあった。具体的に中身は何なの?(ノーチラスの神林さん)
- http://japan.emc.com/about/news/press/japan/2012/20120119-3.htm
- EMCで1000ノードを用意してApache Hadoopコミュニティに開放してテストして良いよ、という意味。環境を提供するだけ。
- ところで、このノーチラスとMapRが協業するという今日のプレスリリースと今回の勉強会は関係あるのかな?
http://www.nautilus-technologies.com/topics/20120119.html
- ところで、このノーチラスとMapRが協業するという今日のプレスリリースと今回の勉強会は関係あるのかな?
- 今の実装はApache HadoopとのAPI互換性を目指しているが、下のファイルシステムが変わればもっと適しているものがあると思うが、考えている?
- やりたくない。標準準拠が大事。(Susheelさん、早口できつい…)
- Q: Apache HadoopのAPIもどんどん変わっていく。追随するのは大変では?
- いいや。頑張る。Hadoopは標準だから。
- 全部のストレージ製品はHDFSプロトコルを実装するべきだと思っている。(会場笑)
- (今は既存ユーザを奪う方が大事よね。。。)
- 上でMapReduceを動かす必要はない。他のアプリケーションも考慮する?
- いい質問ですね。
- いっぱいしゃべっていたけど、あんまり理解できなかった。
- マルチストリームとか云々
- 質問の意味が理解できない。
- ディスクアクセスを特殊なスケジューリングにしているのかが聞きたいらしい。
- そりゃJava実装とは違うよ、という答え。
- 安価で冗長なストレージとしてのHDFSの需要が(向いてはいないが)大きい。MapReduceを使わない前提として容量の大きいストレージとして使うのはお勧めできる?
- 良いと思う。←でもライセンスお高いんでしょ?
- HDFSよりも格納効率が良いので、ハードウェアが少なくて済む。
- ライセンスはノード数あたりだけ?変える予定ある?
- 今はノード数ライセンスだけ。
- マルチテナントについて。テナントをまたいでファイルを見たりはできない?
- そんなことはない。設定次第。
- MapRをパブリッククラウドでサポートする予定はある?マルチテナントはそういうところに有効だろう。
- エンタープライズをターゲットにしている。企業はパブリッククラウドにデータを置くのを極端に怖がっている。
- スケジュールの部分は手を入れている?
- No. データの物理位置は考慮できていない。へえ。ノード名を答えるAPIなかったっけ?★
- MapRに直接オリジナルのデータを放り込む人が出てくるだろう。それは良い?どっちがおすすめ?
- 基本的にはお勧め。
- EMCが発表したIで始まるなんとかの中身は何?(ノーチラスの神林さん)
- (何のこと?)
- あれはMapRとは別物。
- 昔やってたアイシロンの位置づけはどうなるの?
- MapRはMapReduce向け。アイシロンはそれ以外。OLTP、Web、バックアップなど。別でしょう。
- HDFSを再実装した動機は?運用性?速度?スケーラビリティ?
- Susheelさんの話(やっぱり早口できつい・・・)
- 大量データの解析の話をしている。
- たくさん解析できるとイノベーションが速くなるよね、と普通のことを言っている。
- Mahout(マホウトと発音した!)の話。以前からNTT docomo向けに別の製品を出していた。もう今はMahoutで良いよね、というニュアンス?
- コラボレーションツールがどうとか。あんまり理解できない。