hadoop - Hadoop Map函数 "key"参数未使用

标签 hadoop mapreduce

我一直在努力学习hadoop。在我看到的例子中(比如字数统计的例子)根本没有使用map函数的关键参数。映射函数仅使用该对的值部分。所以看起来key参数是不必要的,但其实不应该。我在这里缺少什么?您能给我使用 key 参数的示例 map 函数吗?

谢谢

最佳答案

要了解 key 的使用,您需要了解 Hadoop 中可用的各种输入格式。

  1. 文本输入格式 - 纯文本文件的输入格式。文件被分成行。换行或回车用于表示行结束。 键是文件中的位置,值是文本行。

  2. NLineInputFormat- NLineInputFormat 将 N 行输入分割为一个分割。 在许多“愉快的”并行应用程序中,每个进程/映射器处理相同的输入文件,但计算由不同的参数控制。 (称为“参数扫描”)。实现此目的的一种方法是指定一组参数(每行一组)作为控制文件中的输入(这是 Map-Reduce 应用程序的输入路径,其中输入数据集是通过配置变量指定的)就业 session )。 NLineInputFormat 可用于此类应用程序,它会分割输入文件,默认情况下,会将一行作为值提供给一个映射任务,而键是偏移量。即 (k,v) 是 (LongWritable, Text)。 位置提示将跨越整个mapred集群。

  3. KeyValue TextInputFormat - 纯文本文件的输入格式。文件被分成行。 换行或回车用于表示行结束。乙 每行由分隔符字节分为键和值部分。 如果不存在这样的字节,则键将为整行,值为空。

  4. SequenceFileAsBinaryInputFormat- InputFormat 以二进制(原始)格式从 SequenceFiles 读取键、值。

  5. SequenceFileAsTextInputFormat- 该类与 SequenceFileInputFormat 类似,但它生成 SequenceFileAsTextRecordReader 来转换输入键和值 通过调用 toString() 方法将其转换为字符串形式。

关于hadoop - Hadoop Map函数 "key"参数未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31663500/

相关文章:

hadoop - 在 hadoop streaming mapreduce 中使用组合器(使用 mrjob)

python - “集合”对象不可调用。如果你打算在 'mapReduce' 对象上调用 'Collection' 方法,它会失败,因为不存在这样的方法

hadoop - Hadoop Pig-优化字数

hadoop - 在Hadoop中按时间顺序排序

hadoop - 生成数千张 map 的 pig 脚本

hadoop - 在运行映射作业时,根据请求杀死了容器

java - 如何为 KeyValueTextInputFormat 使用整数输入键

java - apache.hadoop.mapred.JobClient.runJob失败

hadoop - HBase mapReduce TableOutputFormat如何使用Flush和WAL

hadoop - 即使删除了数据库,Hive CLI 也会显示数据库使用情况