`
wingmzy
  • 浏览: 13838 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hadoop 各类key value分隔符参数

阅读更多
hadoop中的map-reduce是处理<key,value>这样的键值对,故指定<key,value>的分割符等参数可以分成三类:

map输出时分割符

分桶时的分隔符

reduce输出时的分割符



下面分别叙述:

1. map输出时分割符

参数:

stream.map.output.field.separator

作用:

指定map输出时的分割符

stream.num.map.output.key.fields

指定输出按照分隔符切割后,key所占有的列数



举例:

input数据:

2,2,c,c,c,c

参数配置:

-mapper "cat" # map 为分布式的cat命令

-reducer ""  #reduce为空 /

-jobconf stream.map.output.field.separator=','  /

-jobconf stream.num.map.output.key.fields=2 /

即按照','逗号分隔后,去前2列作为key

output数据:

2,2     c,c,c,c  #其中key为2,2  value为c,c,c,c



2. 分桶时的分隔符

map.output.key.field.separator

指定map输出<key,value>对之后,其中key内部的分割符

num.key.fields.for.partition

指定分桶时,按照分隔符切割后,用于分桶key所占的列数



举例:

map的output数据:

2,2     c,c,c,c

参数配置:
-jobconf map.output.key.field.separator=',' /
-jobconf num.key.fields.for.partition='1'   /
-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner /

output数据:

这样用于partition分桶的key就为:2

注意,这里分桶不应该用默认的HashPartitioner



3. reduce输出时的分割符

这个与map类似,分别用于reduce输出时分隔符以及key占有的列数

stream.reduce.output.field.separator

stream.num.reduce.output.key.fields
分享到:
评论

相关推荐

    mapreduce 自定义分隔符源码

    1. 在构造函数中,接收自定义分隔符作为参数。 2. 覆盖`nextKeyValue()`方法: - 首先,调用父类的`nextKeyValue()`获取一行文本。 - 使用自定义分隔符对行内容进行分割。可以使用Java的`String.split()`方法,...

    hadoop课后题带答案

    21. Sqoop参数:使用`--fields-terminated-by`参数可以指定字段分隔符,例如在从数据库导入HDFS时,若字段分隔符为制表符,可以设置`--fields-terminated-by '\t'`。 以上内容是对Hadoop及其生态系统相关知识的概述...

    Hadoop Streaming 编程

    - `-D`:设置作业属性,如 map 和 reduce 任务的数量,以及字段分隔符等。 **Hadoop Streaming 编程** 编程时,开发者需要考虑如何处理输入和输出格式,以及如何在 mapper 和 reducer 中实现业务逻辑。例如,实现...

    HadoopStreaming编程.doc

    在编写程序时,需注意数据分隔符的设置,以及如何正确地读写标准输入输出。 **5. 常见问题与高级编程** 在实践中,可能会遇到数据格式问题、性能优化(如Combiner的使用)以及错误处理等挑战。高级编程涉及到更...

    第5章:Hive函数重要应用案例1

    【Hive函数重要应用案例1】本章主要探讨在Hive中处理特殊数据格式的技巧,特别是涉及多字节分隔符和字段内包含分隔符的问题。在Hive中,通常使用单字节分隔符(如逗号、制表符)来加载文本数据,但在实际场景中,...

    尚硅谷大数据技术之Hadoop(MapReduce)1

    通常,这包括数据预处理,如按指定分隔符切分记录。 - Map任务的输出是中间键值对,这些键值对需要经过分区(Partitioning)、排序(Sorting)和组合(Shuffle)的过程,以便后续的Reduce任务处理。 2. **Reduce...

    Hadoop控制输出文件命名.docx

    `multipleOutputs.write(key, value, baseOutputPath)`方法的第三个参数`baseOutputPath`用于指定输出文件的目录。如果`baseOutputPath`不包含文件分隔符"/",那么输出的文件格式为`baseOutputPath-r-nnnnn`;如果...

    sqoop常用命令参数-中文1

    - `--mysql-delimiters`:使用 MySQL 的默认分隔符设置,字段间用逗号,行间用换行符。 - `--optionally-enclosed-by`:对于包含双引号或单引号的字段,前后添加指定字符。 3. **export 命令参数**: - `--input...

    Hadoop数据迁移--从Hadoop向HBase

    首先,通过`split`方法将输入的文本数据按逗号分割成数组,然后使用`Bytes.toBytes`方法将字符串转换为字节数组,构建`ImmutableBytesWritable`对象,最后使用`KeyValue`对象封装数据,准备输出给Reduce阶段处理。...

    hadoop之map/reduce

    在给定的描述中,提到输入数据是从HDFS导入并通过Sqoop的,通常这些数据是以行格式存储,字段之间用制表符分隔。因此,在编写MapReduce程序时,需要将每一行数据解析成一个对象,以便在Mapper中更方便地访问和处理...

    Hadoop技术-MapReduce工作原理.pptx

    2. **数据读取**:RecordReader对象(默认为LineRecordReader)将split内容逐行读取,以换行符为分隔符,生成键值对,其中key是行的起始字符偏移量,value是整行文本内容。 3. **Mapper执行**:用户自定义的Mapper...

    大数据与云计算培训学习资料 Hadoop的MapReduce中多文件输出 共9页.pdf

    `LineRecordWriter`包含了写入数据流、设置键值分隔符等功能,确保输出格式的正确性。 接下来,我们需要创建自定义的`MultipleOutputFormat`类,它继承自`org.apache.hadoop.mapreduce.OutputFormat`。在这个类中,...

    Hadoop MultipleOutputs输出到多个文件中的实现方法

    需要注意的是,`multipleOutputs.write(key, value, baseOutputPath)`方法的第三个参数表示了该输出所在的目录(相对于用户指定的输出目录)。如果`baseOutputPath`不包含文件分隔符“/”,那么输出的文件格式为`...

    MapReduce技术深入理解.pptx

    - KeyValueTextInputFormat:每一行由指定的分隔符(默认是制表符)分为key和value,两者都是Text类型。 - NLineInputFormat:允许用户指定每N行作为一个记录。 理解MapReduce的这些基本概念对于开发和优化大数据...

    实验3MyJoin1

    - **内容要求**:实验报告应包含Map和Reduce的设计思路,包括Key和Value类型的选择;MapReduce的伪代码或实际代码(带有注释);Hive查询结果的截图;以及YARN Resource Manager的WebUI执行报告,以证明作业在集群...

    hive inputformat

    默认情况下,Hive将所有数据视为TextFile格式,这意味着每个行被视为一个记录,每一行由制表符或逗号等分隔符拆分成字段。在我们的例子中,"按照空格对日志文件进行拆分"意味着我们将使用TextFile InputFormat,...

    【MapReduce篇03】MapReduce之InputFormat数据输入1

    2. **KeyValueTextInputFormat**:此格式允许用户自定义分隔符(默认为制表符`\t`)将每行拆分为key-value对。例如,如果输入数据是: ``` Rich learning form\tIntelligent learning engine ``` 那么键值对将...

Global site tag (gtag.js) - Google Analytics