Hadoop入力データファイルに「レコード順可変長ファイル」を指定する場合、あらかじめレコード長情報ファイルを作成して、そのDFS上のパスをMapReduce設定ファイルに指定する必要があります。
レコード長情報ファイルは、MapReduceフレームワークによって分割されたレコード順可変長ファイルにアクセスするために使用されます。
レコード長情報ファイルは、以下のシェルを実行して作成します。
コマンド形式
cobgenrecinf.sh [-v|-p] -i レコード順可変長ファイル名 -o レコード長情報ファイル出力ディレクトリ名 -b blocksize [-t maptasks] [-n]
Hadoop入力データファイルのファイル形式を指定します。
Hadoop入力データファイルがレコード順可変長ファイルの場合、「-v」を指定します。
Hadoop入力データファイルが物理順ファイルの場合、「-p」を指定します。
ファイル形式の指定を省略した場合のデフォルト値は、「-v」です。
レコード順可変長ファイルまたは物理順ファイルを指定します。複数のレコード順可変長ファイルまたは物理順ファイルが格納されたディレクトリを指定することもできます。
レコード長情報ファイルが出力されます。このディレクトリ名を「MapReduce設定ファイル」のレコード長情報ファイルの指定に記述します。
Mapタスクに分割するデータサイズ(ブロックサイズ)をバイト単位で指定します。
Interstage Big Data Parallel Processing Serverと連携している場合
以下のプロパティと同じ値を指定してください。
pdfs.fs.local.block.size
Apache Hadoopと連携している場合
以下のプロパティと同じ値を指定してください。
dfs.block.size
Hadoop実行時にMapタスクの数を指定している場合、本引数にもMapタスクの数を指定します。Mapタスクの数はInterstage Big Data Parallel Processing ServerまたはApache Hadoopの以下のプロパティに指定されています。
mapred.map.tasks
レコード長情報ファイルの作成後に各入力ファイルのレコード件数を表示します。
注意
入力ファイルのサイズがブロックサイズより小さい場合、レコード長情報ファイルの作成処理が簡略化されるため件数は表示されません。処理を簡略化せずにレコード件数を表示したい場合、追加で「-C」オプションを指定してください。
参考
MapReduceフレームワークは、Hadoop入力データファイルをブロックサイズごとに分割しMapタスクに割り当てます。
Mapタスク数が指定されている場合は、Hadoop入力データファイルをMapタスク数で分割して割り当てます。
ただし、Mapタスク数を指定した場合でも、Mapタスク数で分割したサイズがブロックサイズを超える場合は、ブロックサイズごとにMapタスクに割り当てられ、Mapタスク数の指定は無視されます。