2

配布する必要がある小さなファイル (サイズ ~ 1MB) がたくさんあります。Hadoop と HDFS は大きなファイルを好むことが知られています。しかし、分散ファイルはローカル マシンに保存されるため、これが分散キャッシュにも適用できるかどうかはわかりません。

それらをマージする必要がある場合、HDFS でプログラムによってファイルをマージする最良の方法は何ですか?

もう 1 つの質問: symlink を使用する利点は何ですか? ありがとう

4

2 に答える 2

2

これは、小さなファイルの問題に関する Clouderaのブログです。

于 2013-04-08T13:51:30.850 に答える
2

You can create an archive (tar or zip) of all your small files and add it to the distributed cache as follows:

DistributedCache.addCacheArchive(new URI("/myapp/myzip.zip", job);

And get the files in your mapper/reducer as follows:

public void configure(JobConf job) {
         // Get the cached archives/files
         File f = new File("./myzip.zip/some/file/in/zip.txt");
       }

Read more here

于 2013-04-06T18:32:54.100 に答える