我在 java 中使用 mapreduce 来读取由“:”分隔的键值类型文件。我想出了如何解析文件(使用 getConf().set("mapreduce.input.keyvaluelinerecordreader.key.value.separator", ":");)。我试图找出存储这些参数的位置但找不到。我在 hadoop 安装上做了一个 grep,但是没有设置这些参数的 xml 文件。根据documentation配置类,我试图在 mapred-default.xml 中找到该值,但没有成功。
我在哪里可以找到这些值?其他一些参数也是如此。
谢谢。
最佳答案
这应该出现在 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");
关于java - mapreduce.input.keyvaluelinerecordreader.key.value.separator参数在hadoop安装中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36657826/