首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hadoop核心学习之MapReduce编程入门

在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的学习,也仍有其意义所在,还是应该有相应的学习和掌握。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201019A03ZYE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券