1

HDFS 内のファイルの場所を値としてマッパーに渡して、実行可能ファイルを実行して処理できるようにすることはできますか?

4

2 に答える 2

0

これにアプローチする別の方法は、FileSplit を介してファイル名を取得することです。これは、次のコードを使用して行うことができます。

     FileSplit fileSplit = (FileSplit) context.getInputSplit();
 String filename = fileSplit.getPath().getName(); 

お役に立てれば

于 2011-08-01T02:15:29.907 に答える
0

はい、HDFS でファイル名を使用してファイルを作成し、それを map/reduce ジョブの入力として使用できます。各マッパーに複数のファイル名を提供するには、カスタム スプリッターを作成する必要があります。デフォルトでは、入力ファイルはブロックごとに分割され、おそらくファイル リスト全体が 1 つのマッパーに渡されます。
別の解決策は、入力を分割不可として定義することです。この場合、各ファイルはマッパーに渡され、独自の InputFormat を自由に作成できます。この InputFormat は、ファイルを処理する必要があるロジック (たとえば、外部実行可能ファイルの呼び出しなど) でいつでも使用できます。このようにすると、Hadoop フレームワークがデータの局所性を処理します。

于 2011-02-26T12:53:16.687 に答える