SequenceFilesへの追加が非常に遅いようです。私たちは、小さなファイルを含むフォルダをファイル名をキーとして、内容を値としてSequenceFilesに変換しています。ただし、スループットは約2MB /秒(約2〜3ファイル/秒)と非常に低いです。私たちはMioを持っています。小さなファイルと最大3つのファイル/秒の私たちの目的のために信じられないほど遅いです。私たちがやっていることSequenceFileへのHDFSの追加が遅い
は単純です:
for(String file : files) {
byte[] data = Files.readAllBytes(Paths.get(dir.getAbsolutePath()
+ File.separatorChar + file));
byte[] keyBytes = l.getBytes("UTF-8");
BytesWritable key = new BytesWritable(keyBytes);
BytesWritable val = new BytesWritable(data);
seqWriter.append(key, val);
}
任意のヒント、物事をスピードアップする方法についてのアイデア?
ファイルまたはHDFSを実行しているマシンでローカルに使用できます。私たちは圧縮を使用するので、私はそれを無効にしようとし、それなしでいくつかのベンチマークを行います。 – mroman
いいえ、圧縮は実際のボトルネックではないようです。 – mroman
@mromanその後、プロファイラをつかんで、何が長くかかるのか把握してください;) –