我是靠谱客的博主 留胡子斑马,最近开发中收集的这篇文章主要介绍hadoop 自定义OutputFormat,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

在某些业务场景下,需要对原始的数据进行合理的分类输出,减少后续的程序处理数据带来的麻烦,其实这也属于ETL中的一种,比如,我们收集到了一份原始的日志,主体字段为区域编码,需要根据这个编码将这份日志分割输出到不同的文件中

在前面的一篇自定义分区中,可以将原始的文件在自定义的Partioner类中结合实际业务需求,将数据最终输出到不同的分区文件下,这属于一种解决方案,但使用这种方式也有一定的弊端,因为分区数量增大了,必然带来MapTask 数量的增加,带来的是服务器资源的更多开销

与分区输出不同的是,自定义OutputFormat更加灵活,相当于是MapReduce之外的扩展,可以在自定义OutputFormat中编写更复杂的业务逻辑定制化业务场景,同时,更重要的是,真正做到按照业务字段,将原始的文件最终输出到不同的文件中去。

OutputFormat使用场景

输出数据到中间件,例如mysql,es,hbase等

自定义OutputFormat步骤

  • 自定义一个OutputFormat类
  • 重写里面的RecordWriter方法,具体改造输出数据的write方法

业务场景

有下面的一个日志文件

最后

以上就是留胡子斑马为你收集整理的hadoop 自定义OutputFormat的全部内容,希望文章能够帮你解决hadoop 自定义OutputFormat所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部