首页 > 其他分享 >Hadoop MapReduce

Hadoop MapReduce

时间:2022-10-31 11:37:39浏览次数:63  
标签:map 程序 hadoop Hadoop MapReduce 阶段 mr mapreduce


Hadoop MapReduce

  • 理解mapreduce思想
  • 核心:分而治之 先分再合
  • 两个阶段
  • map阶段(分):如果任何可以拆分并且没有依赖 那么就把复杂的任务拆分成小任务
    拆分成小任务之后 可以并行计算 提高处理效率
  • reduce阶段(合):把map阶段的各个局部结果进行汇总 得到最终的结果
  • 来源:来源于生活 包括Google和hadoop团队在内 都是把这种思想提炼处理 应用于大数据处理
  • Hadoop MapReduce设计构思
  • 如何面对大数据的处理场景:分而治之
    如果大数据没有依赖可以拆分 那么就把大的数据拆分若干个小的数据 以并行计算提高处理效率
  • 函数式编程的模型
  • map 分的阶段数据处理
  • reduce 合的阶段数据处理

在mapreduce中,数据都是以**<key,value> 键值对**形式存在.

  • 隐藏系统底层细节 把做什么 和怎么做进行拆分
  • 做什么:业务问题 ---->用户负责 10%
  • 怎么做:技术问题----->mr框架 90%

必须用户的代码根据其编程规范合起来才能构成mr程序。

  • mapreduce的编程规范和结构
  • 从代码层面看
类1---->继承Mapper     该类负责mr中map阶段的业务逻辑处理
类2---->继承Reducer 该类负责mr中Reduce阶段的业务逻辑处理
类3 (客户端类 main) 该类是mr程序的运行的客户端 用于各种组件参数的拼接提交mr程序

把上述3个类打成一个jar包 就是mr程序
  • 从执行层面看
maptask     map阶段运行的task  负责处理map阶段的业务逻辑---->类1
reducetask reduce阶段运行的task 负责处理reduce阶段的业务逻辑---->类2
MrAppMaster 程序运行的老大 负责mr程序内部的调度监督执行
  • 案例:wordcount
  • 需求:统计指定文件中每个单词的总次数
hadoop hive allen 
itcast hadoop
hadoop
  • mr实现思路
  • map
把数据变成一个个的键值对输出   <单词,1><单词,1><单词,1><单词,1><单词,1>
  • reduce
把kv中k相同的v加起来就是单词的总次数   <单词总次数>
  • 开发环境的搭建
  • jar版本的选择
  • 理论上个应该开发的版本和服务器搭建的版本一致 hadoop2.6.0–cdh-5.14.0
  • 推荐使用apache 2.7.4版本
  • 优点:
  • 两个版本的api 逻辑一样
  • 官方版本中 源码注释清晰 便于解读源码
  • hadoop从2.6 到2.7的过程 中 本地执行环境做了调整 2.6.0不利于本地开发调试
  • 注意:如果使用cdh版本 需要在pom文件中 手动添加cloudera的maven仓库地址
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
  • hadoop数据类型
    为了提高网络传递数据的高效性 hadoop自己封装了一套数据类型 实现了自己的序列化机制
    hadoop序列化机制是一个接口 Writable
* long----->longWritable
* String--->Text
* int------>intWritable
* Double--->DoubleWritable
* null----->nullWritable
  • mapreduce的运行模式
  • 概念:所谓的运行模式指的是由谁给mr程序提供运算时候所需要的硬件资源
  • 两种模式:
  • 集群模式:程序计算的资源由yarn分配 分布式计算的效果 生产环境线上环境的模型
  • 本地模式:程序计算的资源由程序所在的机器本地系统模拟出 单机计算的效果 开发测试环境
  • 决定什么模式运行
mapreduce.framework.name  = local  本地模式
mapreduce.framework.name = yarn 集群模式

如果不配置 默认是local模式 但是要注意该集群的环境中是否配置了hadoop 如果有覆盖默认的
识别出mared-site.xml中配置
  • 注意事项
    要想本地运行mr程序 需要解决hadoop native library问题 winutils.exe 程序
  • mapreduce执行注意事项
  • 输出路径问题
FileAlreadyExistsException: Output directory file:/D:/wordcount/output already exists

如果输出路径已经存在 mr执行报错

  • 输入路径问题
    如果输入路径指向的是一个文件 mr程序就处理该文件
    如果输入路径指向的是一个文件夹(目录),mr程序就处理该目录下所有的文件
  • 识别mr程序运行模式的技巧
程序执行ID编号
yarn: job_1563690819511_0001
local: job_local333614689_0001


标签:map,程序,hadoop,Hadoop,MapReduce,阶段,mr,mapreduce
From: https://blog.51cto.com/u_12277263/5808897

相关文章

  • 一、Hadoop企业优化
    MapReduce跑的慢的原因Mapreduce程序效率的瓶颈在于两点:1)计算机性能  CPU、内存、磁盘健康、网络2)I/O操作优化(1)数据倾斜(2)map和reduce数设置不合理(3)map运行时间太长,导......
  • hadoop hdfs
    hadoophdfshdfs特性首先,它是一个文件系统用于存储文件的提供统一命名空间的目录树结构便于用户操作文件系统其次,它是一个分布式文件系统分布式意味着多台机器当中......
  • Hadoop之初识MapReduce
    (初识MapReduce)1.MapReduce计算模型介绍1.1.理解MapReduce思想MapReduce的思想核心是<fontcolor=red>“分而治之”</font>。所谓“分而治之”就是把一个复杂的问题按一......
  • 图解mapreduce原理和执行过程
    说明:下面的南京大学计算机系黄宜华老师开设的mapreduce课程的课件,这里稍作整理和总结。本文旨在对接触了mapreduce之后,但是对mapreduce的工作流程仍不是很清楚的人员,当然包......
  • hadoop 日志存放位置
    初学者运行MapReduce作业时,经常会遇到各种错误,由于缺乏经验,往往不知所云,一般直接将终端打印的错误贴到搜索引擎上查找,以借鉴前人的经验。然而,对于hadoop而言,当遇到错误时,第......
  • Mapreduce中Combiner的使用及误区
    问题提出: 众所周知,Hadoop框架使用Mapper将数据处理成一个<key,value>键值对,再网络节点间对其进行整理(shuffle),然后使用Reducer处理数据并进行最终输出。  在上述过程......
  • 大数据Hadoop之——Apache Hudi 与 Presto/Trino集成
    目录一、概述二、Trino环境部署1)安装JDK2)安装python3)安装Trino1、下载解压并配置环境变量2、修改配置3、启动服务4、测试验证三、在Hive中创建表关联Hudi表1)添加jar包2)创......
  • 大数据处理架构Hadoop
    Hadoop可以支持多种编程语言HDFS分布式文件系统MapReduce分布式并行编程框架这两大核心组件用于解决怎么实现海量数据的分布式存储和怎么实现海量数据分布式处理Hiv......
  • Hadoop之HDFS的集群之间的数据复制、归档机制和安全模式
    (HDFS的数据数据复制、归档机制和安全模式)1.不同集群之间的数据复制在我们实际工作当中,极有可能会遇到将测试集群的数据拷贝到生产环境集群,或者将生产环境集群的数据拷......
  • 【实战】Hadoop安装01-伪分布式-Pseudo
    Hadoop安装-伪分布式-Pseudo〇、所需资料一、前置环境安装1、包含内容(1)安装虚拟机安装、系统安装(2)配置ip、host、主机名配置关闭防火墙及selinuxSSH免密登录(2)基......