当前位置: 首页 > news >正文

广州万户网站公司河南省建设执业资格中心网站

广州万户网站公司,河南省建设执业资格中心网站,中国电信 网站备案,无锡网站广优化公司Hadoop之MapReduce 1. MapReduce是什么 MapReduce是一个分布式运算程序的编程框架#xff0c;旨在帮助用户开发基于Hadoop的数据分析应用。它的核心功能是将用户编写的业务逻辑代码与自带的默认组件整合#xff0c;形成一个完整的分布式运算程序#xff0c;并并发运行在一…Hadoop之MapReduce 1. MapReduce是什么 MapReduce是一个分布式运算程序的编程框架旨在帮助用户开发基于Hadoop的数据分析应用。它的核心功能是将用户编写的业务逻辑代码与自带的默认组件整合形成一个完整的分布式运算程序并并发运行在一个Hadoop集群上。 2. MapReduce的优点 1) 易于编程 MapReduce框架只需实现几个简单的接口用户便可以快速开发出一个分布式程序。这使得编写分布式程序的复杂性大大降低从而促进了MapReduce的普及。 2) 良好的扩展性 随着计算需求的增加用户只需简单地增加机器即可提升计算能力Hadoop会自动将任务分配到新增的节点上。 3) 高容错性 Hadoop设计时考虑到了在廉价PC机器上运行的需求因此具备高容错性。如果某个节点宕机Hadoop会自动将计算任务转移到其他节点上无需人工干预。 4) 适合PB级以上海量数据的离线处理 Hadoop可以实现大规模服务器集群的并发工作提供高效的数据处理能力。 3. MapReduce的缺点 1) 不擅长实时计算 MapReduce无法像MySQL或Oracle那样在毫秒或秒级内快速返回查询结果适合批处理场景而非实时应用。 2) 不擅长流式计算 MapReduce的输入数据集是静态的无法处理动态输入数据因此不适合流式计算场景。 3) 不擅长DAG有向无环图计算 对于存在依赖关系的多个应用程序MapReduce在处理时会导致大量的磁盘IO影响性能。 4. MapReduce核心思想 以统计单词出现次数为例MapReduce程序通常分为两个阶段Map阶段和Reduce阶段。 Map阶段 读取输入数据并按行处理。按空格切分每一行生成键值对KV对。将KV对按键分区分发到不同的Reduce任务。 Reduce阶段 每个Reduce任务接收并处理来自Map阶段的输出数据。统计以特定字母开头的单词数量。将结果输出到文件。 案例流程 输入数据一个包含多个单词的文本文件。Map阶段将这些单词分为不同的分区例如 分区1以a-p开头的单词分区2以q-z开头的单词 Reduce阶段统计每个分区的单词数量输出结果到文件。 假设我们有一个文本文件内容如下 apple banana grape orange kiwi banana apple orange peach kiwi banana zebra grape orange1. InputFormat InputFormat 将读取这个文本文件并将其分割成多个Splits。假设每行作为一个Split。 Split 1: apple banana grapeSplit 2: orange kiwi bananaSplit 3: apple orange peachSplit 4: kiwi banana zebraSplit 5: grape orange 2. Map阶段 在Map阶段Mapper会处理每个Split并将每个单词映射为键值对KV对。 2.1 Mapper处理 对于每个Split中的每一行Mapper会按空格分隔单词并生成中间的KV对。例如 对于Split 1: apple banana grape 生成 KV 对 (apple, 1)(banana, 1)(grape, 1) 对于Split 2: orange kiwi banana 生成 KV 对 (orange, 1)(kiwi, 1)(banana, 1) 对于Split 3: apple orange peach 生成 KV 对 (apple, 1)(orange, 1)(peach, 1) 对于Split 4: kiwi banana zebra 生成 KV 对 (kiwi, 1)(banana, 1)(zebra, 1) 对于Split 5: grape orange 生成 KV 对 (grape, 1)(orange, 1) 2.2 生成的中间KV对 经过Mapper处理所有中间的数据可能如下所示 (apple, 1) (banana, 1) (grape, 1) (orange, 1) (kiwi, 1) (banana, 1) (apple, 1) (orange, 1) (peach, 1) (kiwi, 1) (banana, 1) (zebra, 1) (grape, 1) (orange, 1)3. Shuffle阶段 Shuffle阶段负责将这些中间的KV对根据键进行分组和排序。 3.1 分区逻辑 将相同键的所有中间KV对聚集到一起并根据字母范围进行分区 分区1a-q: apple: (apple, 1), (apple, 1)banana: (banana, 1), (banana, 1), (banana, 1)grape: (grape, 1), (grape, 1)kiwi: (kiwi, 1), (kiwi, 1)orange: (orange, 1), (orange, 1)peach: (peach, 1) 分区2r-z: zebra: (zebra, 1) 4. Reduce阶段 Reduce阶段会有两个Reducer分别处理这两个分区的数据。 4.1 ReduceTask处理 ReduceTask 1处理分区1 a-q 输入(apple, 1) (apple, 1) (banana, 1) (banana, 1) (banana, 1) (grape, 1) (grape, 1) (kiwi, 1) (kiwi, 1) (orange, 1) (orange, 1) (peach, 1)处理统计数量输出apple: 2 banana: 3 grape: 2 kiwi: 2 orange: 2 peach: 1ReduceTask 2处理分区2 r-z 输入(zebra, 1)处理输出zebra: 15. 输出 最终结果将被写入到HDFS中的指定文件格式如下 apple: 2 banana: 3 grape: 2 kiwi: 2 orange: 2 peach: 1 zebra: 15. MapReduce运行三大进程 MapReduce运行时的进程包括 MrAppMaster负责整体程序的调度和状态协调。MapTask负责Map阶段的数据处理流程。ReduceTask负责Reduce阶段的数据处理流程。
http://www.hkea.cn/news/14520684/

相关文章:

  • 晋州做网站的联系电话公众平台网站开发哪家好
  • 如何让做的网站自动适应浏览器做网站需要哪些知识
  • 盛世阳光-网站建设小程序推广怎么赚钱
  • 企业服务网站制作天津做网络推广公司有哪些
  • 太原网站建设找山西云起时网站建设需要使用哪些设备
  • 石材网站源码品牌设计和vi设计有什么区别
  • 著名网站建设wordpress 评论显示头像
  • 网站前端开发培训资料wordpress报500
  • wordpress修复关键词优化怎么弄
  • 北京网站设计定制开发建设公司有没有做网页的兼职网站
  • HTML电影订票网站开发wordpress页码颜色不变
  • 用php做网站的优势wordpress子页面不显示不出来
  • 北京朝阳建站优化怎么做淘宝网站
  • 广州建设高端网站漯河网页设计
  • 网站的目标客户是佳木斯城乡建设局网站
  • 哪个网站做免费广告好蓟门桥网站建设
  • 天津网站模板建站秀米官网登录入口
  • 烟台电商网站建设网站主要内容
  • 网站超级链接怎么做中国十大企业培训公司
  • 网站首页关键词ppt代做网站
  • 建设部网站官网建筑施工合同浙江省城乡和建设厅网站首页
  • 用美图秀秀做网站图片海口建站软件
  • 打开上次浏览的网站企业信息填报系统登录
  • 免费网站建站百度云鄂州seo
  • 建站需要哪些东西重庆软装设计公司官网
  • 网站建设属于什么科别wordpress安装数据库端口
  • 网站会员系统wordpress青岛软件公司排名
  • 网站问题分析北京seo公司优化网络可见性
  • 做外汇网站卖判刑多少年成品网站的安装教程
  • 湛江市网站建设青海旅游的网站建设