入力ファイルがブロックに分割され、Hadoop 分散ファイル システムに保存される方法を変更したいと考えています (たとえば、ブロック サイズに基づいてファイルを分割しますが、私のアプリケーションではファイルの内容に基づいてファイルを分割する必要があります)。そこで、HADOOP のブロック サイズ プロパティに基づいてファイルをブロックに分割するクラスを正確に知りたいと思います。
質問する
470 次
1 に答える
1
ブロックは HDFS の抽象化であり、InputSplits は MapReduce の抽象化です。デフォルトでは、1 つの HDFS ブロックが、変更可能な 1 つの InputSplit に対応します。
HDFS はデフォルトでブロックを正確に 64MB ブロックに分割し、レコード境界を越えて分割することもあります。ファイル入力形式の場合、データのブロックから InputSplits を作成するのは、InputFormat 次第です。各 InputSplit は、個別のマッパーによって処理されます。
たとえば、ブロックサイズに基づいてファイルを分割しますが、私のアプリケーションではファイルの内容に基づいてファイルを分割する必要があります
InputSplits の観点から考え、アプリケーションの要件に従って新しい InputFormat を作成します。新しい InputFormat の作成に関するチュートリアル ( 1、2、および3 ) を次に示します。
于 2013-01-03T13:00:16.093 に答える