前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop核心学习之MapReduce编程入门

Hadoop核心学习之MapReduce编程入门

作者头像
成都加米谷大数据
修改2020-10-19 14:24:40
4980
修改2020-10-19 14:24:40
举报
文章被收录于专栏:大数据开发大数据开发

在IT技术领域,大数据是热点,大数据技术也是热点,以Hadoop为例,作为主流的第一代大数据技术框架,可以说是入门必学。而学习Hadoop,通常从核心框架HDFS和MapReduce学起,今天我们就主要来讲讲Hadoop MapReduce编程入门。

MapReduce入门简介

MapReduce是Hadoop的核心框架之一,主要负责分布式并行计算。MapReduce 既是计算框架,也是编程模型,主要基于Java语言来编程,这也是为什么Hadoop学习要求要有一定的Java基础。

当然,在这几年的发展当中,MapReduce的计算性能受到诟病,取而代之受到重用的是Spark。但是作为初代计算框架,MapReduce的学习仍然是有必要的,也对于同样基于MapReduce计算模型的Spark学习,有很好的引入。

MapReduce编程入门

MapReduce运行过程,通常涉及到input、split、map、shuffle、reduce、output几个阶段,其中shuffle过程包括sort、copy、combine操作,reduce之前有时涉及二次排序。

MapReduce编程,主要有三种方式:

  • Hadoop streaming执行mapreduce
  • Hive执行mapreduce
  • Java MR编程

①Hadoop streaming执行MapReduce

优点:

可以用大多数语言开发;

代码量少,开发速度快;

方便本地调试。

不足:

只能通过参数控制MR框架,控制性较弱,比如定制partitioner、combiner;

支持的数据类型和数据结构有限,不适合做复杂处理,处理字符型较多;

②Hive执行MapReduce

将类SQL转换成MapReduce,定位于数据仓库。

优点:

开发速度快,易调试,易理解;

易于构建数据仓库模型;

内置函数功能齐全,比如rownumber等窗口函数;

可扩展性好,比如自定义存储格式、自定义函数UDF;

多接口,比如JDBC、Thrift、Rest等。

缺点:

不能用于复杂计算,比如涉及时序处理的数据;

可控制性较弱,比如partition、关联等操作。

③Java MR编程

用Java编写MR,可以说是最“原始”的一种方式,Java面向对象编程,设计模式成熟,通用性好,并且Java方面第三方类库非常丰富。

优点:

定制性强,比如定制partitioner、定制combiner等;

数据类型和数据结构丰富,队列、堆栈、自定义类等使用方便;

控制性非常高,包括MR运行过程的一些控制,Map端join等;

可以方便使用Hadoop组件类库中的类或工具,比如HDFS文件操作类等。

缺点:

相比Hive、Hadoop streaming或Pyspark,开发代码量较大,对开发环境要求高且不易调试;

通常每个操作都要写一个MR类;

不如Spark执行效率高。

关于Hadoop核心学习,MapReduce编程入门,以上就是今天的内容分享了。在大数据当中,Hadoop在基础架构上还是占据着重要的地位,而Hadoop MapReduce的学习,也仍有其意义所在,还是应该有相应的学习和掌握。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MapReduce入门简介
  • MapReduce编程入门
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、Presto、Iceberg、Elasticsearch、StarRocks 等,以快速构建企业级数据湖仓。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档