2016-03-01 6 views
7

私は現在のバージョンのHadoopを使用しており、デフォルトのファイルシステムがHDFSの場合とデフォルトのファイルシステムの場合を比較するために、TestDFSIOベンチマーク(v.1.8) S3バケット(S3aで使用)です。YARNはどのようにいくつのコンテナを作成することにしますか? (S3aとHDFSの違いは何ですか?)

のS3aとして、デフォルトのファイルシステムと100×1メガバイトファイルを読むとき、私はYARNのWeb UIでの最大のコンテナの数はデフォルトとしてHDFSのためのケースよりも小さく、S3aをは程度4倍遅い観測。

のS3aとして、デフォルトのファイルシステムとファイル1000×10キロバイトを読んだとき、私はYARNのWeb UIでの最大のコンテナの数はデフォルトとしてHDFSのためのケースよりも少なくとも10倍以下である、とのS3aが観察約16倍遅い。 (例:HDFSデフォルトのテスト実行時間が50秒で、デフォルトのS3aを使用したテスト実行時間がの場合

実行されたマップタスクの数は、どちらの場合も期待どおりですが、 。しかしなぜがYARNであるか少なくとも10倍少ないコンテナ数(HDFSでは117、S3aでは8)?クラスタのvcores、RAM、およびジョブの入力分割、および起動されたマップタスクがと同じである場合、YARNはコンテナの数をどのように作成するかを決定します。 ストレージバックエンドのみが異なるのですか?

同じTestDFSIOジョブを実行しているときに、HDFSとAmazon S3(S3a経由)のパフォーマンスの違いが予想されるのはもちろんですが、YARNが起動中の最大コンテナの数を決定する方法を理解しています現在デフォルトのファイルシステムがS3aの場合、YARNは並列性の90%をほとんど使用していない(これは通常、デフォルトのファイルシステムがHDFSの場合に行われる)ため、デフォルトのファイルシステムだけが変更されるジョブは、 。

クラスタは、1つのNameNode、1つのResourceManager(YARN)、および13のDataNodes(ワーカーノード)を持つ15ノードクラスタです。各ノードには128 GBのRAMと48コアのCPUが搭載されています。これは専用のテストクラスタです.TestDFSIOテストの実行中は、クラスタ上で何も実行されません。 HDFS、dfs.blocksizeについて

256mであり、4台のHDD(dfs.datanode.data.dirfile:///mnt/hadoopData1,file:///mnt/hadoopData2,file:///mnt/hadoopData3,file:///mnt/hadoopData4に設定されている)を使用します。

S3aの場合、fs.s3a.block.size268435456に設定されます。これは256mで、HDFSのデフォルトブロックサイズと同じです。

Hadoopのtmpディレクトリは

性能差(デフォルトはHDFS、スイッチS3aに設定されたデフォルトに対して)以下に要約されている(core-site.xml/mnt/ssd1/tmphadoop.tmp.dirを設定し、またmapred-site.xml/mnt/ssd1/mapred/localmapreduce.cluster.local.dirを設定することによって)SSD上にあります:

TestDFSIO v. 1.8 (READ)  

fs.default.name    # of Files x Size of File Launched Map Tasks Max # of containers observed in YARN Web UI Test exec time sec 
============================= ========================= ================== ===========================================  ================== 
hdfs://hadoop1:9000   100 x 1 MB     100     117            19 
hdfs://hadoop1:9000   1000 x 10 KB    1000     117            56 
s3a://emre-hadoop-test-bucket 100 x 1 MB     100     60            78 
s3a://emre-hadoop-test-bucket 1000 x 10 KB    1000     8            1012 

100 x 1 MB - default FS HDFS versus default FS S3a

1000 x 10 KB - default FS HDFS versus default FS S3a

+0

あなたのHadoopのバージョンは何ですか?シャッフルバックエンドは何を使用していますか? –

+0

また、あなたのjvm再利用設定は何ですか? –

+0

あなたの仕事は "Uber"モードで走っていたのですか? –

答えて

1

要するに、重要な基準の1つであるYARNは、作成するコンテナの数を決定するために、データローカリティに基づいています。 などのHDFS以外のファイルシステムを使用してAmazon S3または別のS3互換オブジェクトストアに接続する場合、データのローカリティに関する情報を与えるのはファイルシステムの責任です。データはノードに対してローカルであり、各ノードはネットワークからデータを取得する必要があり、別の観点からは、各ノードは同じデータローカリティを持ちます。

上記の段落では、S3aファイルシステムを使用してAmazon S3に対してHadoop MapReduceジョブを実行したときに見たコンテナの作成動作について説明します。問題を修正するために、私はパッチを作成し始め、開発はHADOOP-12878で追跡されます。

また、以下を参照してください。

関連する問題