お使いの SSD(ioDrive Duo)ですが、PCI Express x8
接続で転送速度が最大1.5Gバイト/秒になってますので、
SAS HDDの30~40台分くらいのスループットがあるというこ
とでしょうか?
HDFSではレプリケーションを行いますので、SSDに書き込むのと同
じ量のデータが、パケットに入れられた状態でネットワークを流れます。
各ノードのCPUとネットワークスイッチにかなりの負荷がかかるの
ではないでしょうか? 1.5GB/sという数字だけ見ても、Ethernet
の10Gbpsを超えています。
つまり、16ノード x レプリカ数 3 ですと、ネット
ワークスイッチのキャパシティを超えて、輻輳しているのかもしれませ
ん。または、TCP/IPあたりの設定のチューニングが必要なのかもし
れません。
もし、まだ試されてなければ、2ノード x レプリカ数 1
くらいから測定を始め、徐々にノード数を増やしていって、どこで性能が
飽和するか確認してはどうでしょう。レプリカ数 1で16ノー
ドまで測定したら、レプリカ数を2に増やして、再度、2ノー
ドから測定し直します。
このような方法で進めれば、原因の切り分けがしやすくなると思います。
--
河野 達也
Tatsuya Kawano
On Jun 1, 2010, at 3:45 AM, maru <kiyoshi....@gmail.com> wrote:
> はじめて投稿させていただきます。
> 表題の件について詳しい方にアドバイスを頂戴したく、メールを書いて
> おります。
>
> 現在NameNode x1台 + DataNode x16台の環境にHadoop
> (Cloudera版)を導入していろいろと
> 評価を行っておりまして、その中で私たちが興味のある項目のひとつに
> 分散されたデータの
> 入出力にかかる時間そのものを短縮したらシステム全体としてどの程度
> の性能向上が得られ、
> その場合のボトルネックはどこに出てくるのだろうかというものがあり
> ます。
>
> いまはアプリケーションを特定せずHadoopの配布物に含まれてい
> るTestDFSIOを使用して
> 分散ファイルシステムとしての性能を見ているのですが、HDFSを
> 構成している物理的な
> ファイルが各ノードにローカルに接続されている一般的なSASの
> 上にあるHadoopインスタンスと、
> 同じく各ノードにローカルに接続されているFusion-io社製
> ioDrive Duoの上にあるHadoopの
> インスタンスとで顕著な違いが見られず、ベンチマーク実行時のパラ
> メータによっては
> むしろSAS上に構築したHadoopの方がioDrive上に構
> 築したHadoopよりも高いスループットを
> 叩き出すような状況です。
>
> 既に同様の性能評価を実施された方、あるいは評価した結果が公開され
> ているサイトを
> ご存知の方がいましたらどういった傾向が得られたか情報をいただけま
> せんでしょうか。
>
> シングルノード上でNameNode, DataNode, JobTracker, TaskTracker
> すべてを稼働させると
> ioDriveの方がSASよりもよい結果を出してくるのですが、複数
> ノードにプロセスを分散させると
> 傾向がまったく安定せず試行の度に結果がバラバラになるのでどこから
> 手を付けてよいものか
> わからないでいる状態です。各ノード間は10GbEスイッチを介し
> て接続してあります。
>
> どんなことでも結構ですので、アドバイスをいただけましたら幸いで
> す。
たつやです
こんにちは。
お使いの SSD(ioDrive Duo)ですが、PCI Express x8 接続で転送速度が最大1.5Gバイト/秒になってますので、SAS HDDの30〜40台分くらいのスループットがあるということでしょうか?
HDFSではレプリケーションを行いますので、SSDに書き込むのと同じ量のデータが、パケットに入れられた状態でネットワークを流れます。各ノードのCPUとネットワークスイッチにかなりの負荷がかかるのではないでしょうか? 1.5GB/sという数字だけ見ても、Ethernetの10Gbpsを超えています。
つまり、16ノード x レプリカ数 3 ですと、ネットワークスイッチのキャパシティを超えて、輻輳しているのかもしれません。または、TCP/IPあたりの設定のチューニングが必要なのかもしれません。
もし、まだ試されてなければ、2ノード x レプリカ数 1 くらいから測定を始め、徐々にノード数を増やしていって、どこで性能が飽和するか確認してはどうでしょう。レプリカ数 1で16ノードまで測定したら、レプリカ数を2に増やして、再度、2ノードから測定し直します。
このような方法で進めれば、原因の切り分けがしやすくなると思います。
--
河野 達也
Tatsuya Kawano
On Jun 1, 2010, at 3:45 AM, maru <kiyoshi....@gmail.com> wrote:はじめて投稿させていただきます。
表題の件について詳しい方にアドバイスを頂戴したく、メールを書いております。
ノード数の増加に伴って性能がそのままスケールするはずとの指摘については
Hadoop/HDFSの設計思想上そのようになるはずだと期待しているのですが、まだ
納得のいく結果が得られていない状況です。
Hadoopがストレージとしてどのディスクを使用するかが問題とのことですが
これはdfs.name.dir, dfs.data.dir, hadoop.tmp.dirに指定するディレクトリをそれぞれの
インスタンスでioDrive上のファイルシステム、SAS上のファイルシステム、に作った
ディレクトリに設定、実際のファイルも設定したディレクトリ配下に生成される
ことから大丈夫だろうと認識しています。
-nFilesについてはあえて1, 10といった半端な数字とノード数の16の倍数をいくつか
試していますが物理的なストレージデバイスだけの違いで他の条件が同じであれば
ioDriveの方がSASより優位な数値を出すはずだと考えていました。
負荷のバランスを取ることと教えていだたいたモニタリングツールを導入して
再度計測してみたいと思います。
最期の「メモリの2, 3倍以上書き込んで」はmapred.child.java.optsで-Xmx4096mの
ようにして指定しているマッパータスクに与えているメモリ量ということで間違い
ないでしょうか?TestDFSIO.javaにあるWriteMapper#doIOメソッドでは書き込み
完了後にHDFS上のファイルをきちんとcloseしていて、O'ReillyのHadoop: The
Definitive GuideによればHDFS上のファイルがcloseされるときにはsync動作となる
との記述があるので-writeのときにはメモリに載っけただけで返ってくることは
ないのだろうと思っていました。もし誤りであればご指摘ください
(Hadoopのコードを通読してないのでまだまだ理解が足りない部分が多いです)。
参考になるお返事をありがとうございました。
ブログの方もじっくり拝見させていただきます。
--
Kiyoshi Mizumaru <kiyoshi....@gmail.com>
2010/6/1 Shun0102 <shun...@gmail.com>:
ご指摘いただいたネットワークでの輻輳の可能性についてはこちらでも疑っていまして、
現在テストしているHadoopインスタンスはすべてレプリカ数を1にしてテストしています。
ただ正直なところネットワークに関してはそれほど専門的な知識を持ち合わせてないため
どのような調査を行うべきかの指針が明確にわからないでいる状態です。お恥ずかしい。
ただベンチマーク実行時に各ノード(8コア Xeon, HTオフ, 48GBメモリ)でtopコマンドで
見た負荷はスカスカでしたのでどこがボトルネックになってるのか、をどうやって調べて
いこうかで悩んでいました。
まずはご指摘いただいたように少ないノード数から順に増やして行く形で計測を進めて
みたいと思います。
2010/6/1 Tatsuya Kawano <tatsu...@gmail.com>:
>
> たつやです
> こんにちは。
>
> お使いの SSD(ioDrive Duo)ですが、PCI Express x8 接続で転送速度が最大1.5Gバイト/秒になってますので、SAS
> HDDの30~40台分くらいのスループットがあるということでしょうか?
>
> HDFSではレプリケーションを行いますので、SSDに書き込むのと同じ量のデータが、パケットに入れられた状態でネットワークを流れます。各ノードのCPUとネットワークスイッチにかなりの負荷がかかるのではないでしょうか?
> 1.5GB/sという数字だけ見ても、Ethernetの10Gbpsを超えています。
>
> つまり、16ノード x レプリカ数 3
> ですと、ネットワークスイッチのキャパシティを超えて、輻輳しているのかもしれません。または、TCP/IPあたりの設定のチューニングが必要なのかもしれません。
>
> もし、まだ試されてなければ、2ノード x レプリカ数 1
> くらいから測定を始め、徐々にノード数を増やしていって、どこで性能が飽和するか確認してはどうでしょう。レプリカ数
> 1で16ノードまで測定したら、レプリカ数を2に増やして、再度、2ノードから測定し直します。
>
> このような方法で進めれば、原因の切り分けがしやすくなると思います。
>
> --
> 河野 達也
> Tatsuya Kawano
>
>
>
> On Jun 1, 2010, at 3:45 AM, maru <kiyoshi....@gmail.com> wrote:
>
>> はじめて投稿させていただきます。