2016-04-15 6 views
0

私は、javaのmapreduceを使って、 ':'で区切られたKey-Valueタイプファイルを読み込んでいました。私はファイルを解析する方法を考え出しました(getConf()。set( "mapreduce.input.keyvaluelinerecordreader.key.value.separator"、 ":");)を使ってファイルを解析しました。私は、これらのパラメータが格納されている場所を見つけようとしましたが、できませんでした。 hadoopのインストールでgrepを実行しましたが、これらのパラメータを設定したxmlファイルはありませんでした。 Configurationクラスのdocumentationによると、mapred-default.xmlでその値を見つけようとしましたが、運はありませんでした。hadoopインストールのmapreduce.input.keyvaluelinerecordreader.key.value.separatorパラメータの位置

これらの値はどこにありますか。これは他のいくつかのパラメータの場合も同様です。

ありがとうございました。

答えて

1

これは、mapred-site.xmlに存在する必要があります。しかし、デフォルトではXMLファイルには追加されません。すべてのジョブについて、同じ区切り文字を使用している場合は、このパラメータをHadoopインストールのmapred-site.xmlファイルに追加できます。

このパラメータのこの設定はコードで処理されます。

org.apache.hadoop.mapreduce.lib.input.KeyValueLineRecordReader.java(チェックKeyValueLineRecordReader.java)の値は、デフォルトでタブ( "\ t")に設定されています。

public static final String KEY_VALUE_SEPERATOR = 
"mapreduce.input.keyvaluelinerecordreader.key.value.separator"; 

値はKeyValueLineRecordReaderクラスのコンストラクタで設定されている:

String sepStr = conf.get(KEY_VALUE_SEPERATOR, "\t"); 
関連する問題