前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >北大Hadoop实践教程精要笔记

北大Hadoop实践教程精要笔记

作者头像
葆宁
发布2019-04-28 20:34:38
5720
发布2019-04-28 20:34:38
举报
文章被收录于专栏:FREE SOLOFREE SOLO
在这里插入图片描述
在这里插入图片描述

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
复制
一次写入多次读取	
不支持文件并发写入	
不支持文件修改	

HDFS的适用范围:

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

HDFS上传文件流程:

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

MapReduce原理

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

MapReduce特性:

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

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
复制
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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hadoop 原理
  • MapReduce原理
  • Hadoop 配置
  • Hadoop 监控
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档