Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >北大Hadoop实践教程精要笔记

北大Hadoop实践教程精要笔记

作者头像
葆宁
发布于 2019-04-28 12:34:38
发布于 2019-04-28 12:34:38
69900
代码可运行
举报
文章被收录于专栏:FREE SOLOFREE SOLO
运行总次数:0
代码可运行

Hadoop目前是Apache旗下的顶级项目之一, 是Google在2004年提出的“MapReduce分布式计算框架的一个Java实现。

¤ “MapReduce”是一种简化的分布式编程模型, 让程序自动分布到一个由普通机器组成的超大集群上并发执行。 MapReduce的run-time系统会解决输入数据的分布细节, 跨越机器集群的程序执行调度, 处理机器的失效, 并且管理机器之间的通讯请求。 这样的模型允许程序员可以不需要有什么并发处理或者分布式系统的经验, 就可以处理超大的分布式系统 的资源。

Google提出的“MapReduce”分布式计算框架,主要分为以下几个部分

Hadoop与Google MapReduce的对应关系

Hadoop 原理

Hadoop core Hadoop的核心子项目, 提供了一个分布式文件系统(HDFS)和支持MapReduce的分布式计算。 HBase 建立在Hadoop内核之上, 提供可靠的, 可扩展的分布式数据库ZooKeeper 一个高效的, 可扩展的协调系统。 分布式应用可以使用ZooKeeper来存储和协调关键共享状态。 PIG 建立于Hadoop内核之上, 是一种支持并行计算运行框架的高级数据流语言。

Hadoop最主要的就是Core, 它又分为HDFS和MapReduce两个部分, 前者提供分布式数据存储,后者提供任务的分发和归拢。 其他组件都是围绕着这两个核心进行工作。

HDFS的设计初衷:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
一次写入多次读取	
不支持文件并发写入	
不支持文件修改	

HDFS的适用范围:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
存储并管理PB级数据	
处理非结构化数据	
注重数据处理的吞吐量, 对延时不敏感	
应用模式为一次写入多次读取存取模式	

HDFS上传文件流程:

当客户端上传数据时, 先向NamaNode请求创建文件, 然后NameNode会返回存储的 DataNode节点和位置信息。随后客户端先通过管道将文件传到本地硬盘,每凑满指定大小(默认是64M) , 再一起上传到一个DataNode, DataNode收到文件后会返回确认信息, 并以4K为单位传到下一DataNode。该文件上传方式被称为“流水式。

MapReduce原理

MapReduce来源于函数式编程语言。 它由两个动词Map和Reduce组成, “Map(展开) ” 就是将一个任务分解成为多个任务, “Reduce”就是将分解后多任务处理的结果汇总起来, 得出最后的分析结果。不论是现实社会, 还是在程序设计中, 一项工作往往可以被拆分成为多个任务, 任务之间的关系可以分为两种: 一种是不相关的任务,可以并行执行; 另一种是任务之间有相互的依赖, 先后顺序不能够颠倒, 这类任务是无法并行处理的。   MapReduce理念:处理海量数据(>1TB)上百/上千CPU实现并行处理简单地实现以上目的移动计算比移动数据更划算。

MapReduce特性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
自动实现分布式并行计算
容错
提供状态监控工具
模型抽象简洁, 程序员易用	

Reduce处理数据时, 为了提高速度, 并不是把结果直接写入硬盘, 而是先在内存中进行缓存和排序, 才会一起写入硬盘。缓冲区的默认大小是100M, 当数据量达到设定的阀值(默认0.8) 后, 会开始向硬盘导出数据,导出过程中数据将继续写入缓存区。 如果导出 数据比计算数据慢, 则当缓存用满时, Map进程将被阻塞。

Yarn的出现

随着Hadoop使用的规模和负荷逐渐增长, 旧有的MapReduce架构弊端逐渐显现: JobTracker单点故障、 JobTracker资源占用、 任务分配逻辑过于简单、 源码class功能复杂、 升级维护麻烦等, Hadoop推出了新的分布式计算框架MapReduceV2, 又名Yarn。

Yarn的理念:

将资源管理(ResourceManager) 和任务调度监控(NodeManager) 分开。 每个任务都有各自的ApplicationMaster负责资源调度和协调。ResourceManager负责基于应用对资源池进行总体调度, 会监控ApplicationMaster的存活状态并重启失败进程, 但不对任务进程进行监控和跟踪, 也不负责重启失败的任务进程。

NodeManager是每一台机器框架的代理, 是执行应用程序的容器, 监控应用程序的资源使用情况并且向调度器汇报。ApplicationMaster负责向调度器索要适当的资源容器, 运行任务, 跟踪应用程序的状态和监控它们的进程, 处理任务的失败原因。

Hadoop 配置

** Hadoop的配置文件在Hadoop安装目录的etc/hadoop下, 核心是core-site、 hdfs-site、 mapredsite、 yarn-site四个xml文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
core-site.xml包含Hadoop的全局配置。
hdfs-site.xml包含HDFS部分的具体配置。
mapred-site.xml包含MapReduce部分的具体配置。
yarn-site.xml包含Yarn部分的具体配置。

Hadoop 监控

Hadoop启动后会在各节点启动WEB-UI, 管理员可以通过浏览器访问指定端口来查看集群或各节点的基本信息。 NameNode的默认监听端口是50070, DataNode的默认监听端口是50075,Yarn资源管理器的默认监听端口是8088。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年04月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hadoop的前世今生
HADOOP DISTRIBUTED FILE SYSTEM,简称HDFS,是一个分布式文件系统。它是谷歌的GFS提出之后出现的另外一种文件系统。它有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案。
week
2018/08/24
4450
Hadoop的前世今生
Hadoop(一)Hadoop核心架构与安装
大白话,Hadoop是个存储数据,计算数据的分布式框架。核心组件是HDFS、MapReduce、Yarn。
Chester Chen
2022/08/18
6720
Hadoop(一)Hadoop核心架构与安装
大数据学习之路05——Hadoop原理与架构解析
Hadoop 是 Apache 开源组织的一个分布式计算开源框架,是一个可以更容易开发和运行处理大规模数据的解决方案,它提供了一套分布式系统基础架构,允许使用简单的编程模型跨大型计算机的大型数据集进行分布式处理。
汪志宾
2019/05/24
8.6K0
大数据学习之路05——Hadoop原理与架构解析
Hadoop的概念
Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,它可以使用户在不了解分布式底层细节的情況下开发分布式程序,充分利用集群的威力进行高速运算和存储。
我脱下短袖
2019/12/23
1.2K0
Hadoop的概念
Hadoop基础知识及部署模式
在开始Hadoop的部署之前需要了解其基础知识及部分原理,由于本文以部署的介绍为主,篇幅有限,因此只会对这部分内容作简单的阐述,后面有机会会撰写专门的Hadoop原理及基础系列文章。
数人之道
2022/01/07
13.9K0
Hadoop基础知识及部署模式
简单介绍 Hadoop三大核心组件 的 架构思想和原理
大家好,我是 梦想家Alex 。之前实际上我也写了不少关于大数据技术组件的文章,例如:
大数据梦想家
2021/10/22
2.1K0
Hadoop极简入门
其实Hadoop诞生至今已经十多年了,网络上也充斥着关于Hadoop相关知识的的海量资源。但是,有时还是会使刚刚接触大数据领域的童鞋分不清hadoop、hdfs、Yarn和MapReduce等等技术词汇。
王知无-import_bigdata
2019/04/24
7810
Hadoop极简入门
hadoop(2.6)集群搭建
http://mirrors.hust.edu.cn/apache/hadoop/common/
胡齐
2019/09/23
1.2K0
hadoop(2.6)集群搭建
Hadoop体系_集团架构
自从大数据的概念被提出后,出现了很多相关技术,其中对大数据发展最有影响力的就是开源分布式计算平台Hadoop,它就像软件发展史上的Window、Linux、Java一样,它的出现给接下来的大数据技术发展带来了巨大的影响。很多知名公司都加入Hadoop相关项目的开发中,如Facebook、Yahoo等,围绕大数据Hadoop技术产生了一系列大数据的相关技术
全栈程序员站长
2022/11/03
1.1K0
Hadoop体系_集团架构
Hadoop 2.0:主流开源云架构(三)
  Common的定位是其他模块的公共组件,定义了程序员取得集群服务的编程接口,为其他模块提供公用API。降低Hadoop设计的复杂性,减少了其他模块之间的耦合性,增强了Hadoop的健壮性。
Francek Chen
2025/01/23
1580
Hadoop 2.0:主流开源云架构(三)
深入浅出学大数据(五)Hadoop再探讨High Availability(HA)集群搭建及YARN原理介绍
此系列主要为我的学弟学妹们所创作,在某些方面可能偏基础。如果读者感觉较为简单,还望见谅!如果文中出现错误,欢迎指正~ 本文主要介绍了Hadoop再探讨High Availability(HA)及YARN原理介绍,除此之外还有High Availability(HA)集群搭建的具体搭建过程。
不温卜火
2021/11/24
1.3K0
深入浅出学大数据(五)Hadoop再探讨High Availability(HA)集群搭建及YARN原理介绍
hadoop|计算框架从MapReduce1.0到Yarn
01 — HDFS 前面介绍了hadoop的分布式存储框架(HDFS),这个框架解决了大数据存储的问题,这是第一步。知道海量数据如何存储后,脚步不能停留,下一步要设计一个框架,用来玩(计算)这些数据时,资源(计算机集群)该如何调度,比如已知1PB的数据存储在了集群(1000台电脑组成)中的10台计算机(DataNode)中,现在要对这些数据进行Map和Reduce计算,该如何做呢? 在理解以下知识前,需要理解一些知识点。任何应用,比如打开一个word文档,打开QQ,都会占用一定的系统资源(CPU,内存,网
double
2018/04/02
1.5K0
hadoop|计算框架从MapReduce1.0到Yarn
从Hadoop1.0到Hadoop2.0架构的优化和发展探索详解
Hadoop1.0即第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中HDFS由一个NameNode和多个DateNode组成,MapReduce由一个JobTracker和多个TaskTracker组成。
fanstuck
2024/11/05
2.6K2
从Hadoop1.0到Hadoop2.0架构的优化和发展探索详解
一文读懂Hadoop、HBase、Hive、Spark分布式系统架构
机器学习、数据挖掘等各种大数据处理都离不开各种开源分布式系统,hadoop用户分布式存储和map-reduce计算,spark用于分布式机器学习,hive是分布式数据库,hbase是分布式kv系统,看似互不相关的他们却都是基于相同的hdfs存储和yarn资源管理,本文通过全套部署方法来让大家深入系统内部以充分理解分布式系统架构和他们之间的关系 本文结构 首先,我们来分别部署一套hadoop、hbase、hive、spark,在讲解部署方法过程中会特殊说明一些重要配置,以及一些架构图以帮我们理解,目的是为后
用户1257215
2018/01/30
3.3K0
【Hadoop研究】YARN:下一代 Hadoop计算平台
Apache Hadoop 是最流行的大数据处理工具之一。它多年来被许多公司成功部署在生产中。尽管 Hadoop 被视为可靠的、可扩展的、富有成本效益的解决方案,但大型开发人员社区仍在不断改进它。最终,2.0 版提供了多项革命性功能,其中包括 Yet Another Resource Negotiator (YARN)、HDFS Federation 和一个高度可用的 NameNode,它使得 Hadoop 集群更加高效、强大和可靠。在本文中,将对 YARN 与 Hadoop 中的分布式处理层的以前版本进行
陆勤_数据人网
2018/02/27
1.2K0
【Hadoop研究】YARN:下一代 Hadoop计算平台
一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
根据文章内容总结的摘要
别先生
2018/01/02
1.7K0
一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
搭建Hadoop3集群
强烈建议再搭建hadoop集群之前体验一下单机模式和伪分布式模式的搭建过程,可以参考以下链接:
职场亮哥
2020/10/10
1.2K0
Hadoop学习笔记—21.Hadoop2的改进内容简介
Hadoop2相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要的变更:
Edison Zhou
2018/08/20
7290
Hadoop学习笔记—21.Hadoop2的改进内容简介
大数据技术笔试题库
12、在MapTask的Combine阶段,当处理完所有数据时,MapTask会对所有的临时文件进行一次()。
杨校
2022/05/14
3.1K0
MapReduce分布式编程
MapReduce是一个分布式运算程序的编程框架,用于大规模数据集的并行处理,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 MapReduce将一个数据处理过程拆分为Map和Reduce两部分:Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。开发人员只需通过编写Map和Reduce函数,不需要考虑分布式计算框架内部的运行机制,即可在Hadoop集群上实现分布式运算。引入MapReduce框架后,开发人员可将精力集中在业务逻辑的开发上,分布式计算的复杂性交由框架来处理。MapReduce把对数据集的大规模操作分发到计算节点,计算节点会周期性地返回其工作的最新状态和结果。如果节点保持沉默超过一个预设时间,主节点则标记该节点为死亡状态,并把已分配给这个节点的数据发送到别的节点重新计算,从而实现数据处理任务的自动调度。
Francek Chen
2025/01/22
1650
MapReduce分布式编程
相关推荐
Hadoop的前世今生
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验