1 预备知识--Hadoop简介
1 预备知识--Hadoop简介
Hadoop是Apache的一个开源的分布式计算平台,以HDFS分布式文件系统和MapReduce分布式计算
框架为核心,为用户提供了一套底层透明的分布式基础设施
Hadoop框架中最核心设计就是:HDFS和MapReduce。 HDFS提供了海量数据的存储,MapReduce提供了对数据的计算。
Hadoop框架中最核心的设计就是: HDFS 和MapReduce
--HDFS是Hadoop分布式文件系统,具有高容错性、高伸缩性,允许用户基于廉价硬件部署,构建分布式存储系统,为分布式计算存储提供了底层支持
--MapReduce提供简单的API,允许用户在丌了解底层细节的情况下,开发分布式幵行程序,利用大规模集群资
源,解决传统单机无法解决的大数据处理问题
--设计思想起源于Google GFS、 MapReduce Paper
Hadoop的优势
弹性可扩展
--通过简单增加集群节点,线性扩展集群存储和计算资源
容错高健壮
--故障检测和自动回复,允许通用硬件失效而不影响整个集群可用性
成本低廉
--采用廉价通用硬件部署,无需高端设备
简单易用
--API简单,允许用户不了解底层情况下,写出高效的分布式计算程序
Hadoop核心项目
HDFS: Hadoop Distributed File System 分布式文件系统
MapReduce:幵行计算框架
文件切分
eg,block size = 64MB
文件由数据块集合组成
假设每块大小为 64MB
每个数据块在本地文件系统中是以单独的文件进行存储
eg, 复制因子 = 3
默认布局规则:
第一份拷贝写入创建文件的节点 (快速写入)
第二份拷贝写入同一个rack内的节点(减少跨rack的网络流量)
第三份拷贝写入位于不同rack的节点(应对交换机故障)
Hadoop1.0 架构解析之HDFS
HDFS分布式文件系统:
NameNode:
维护整个文件系统的文件目录树,文件目录的元信息和文件数据块索引
以FsImage和EditLog形式存储在本地
整个系统的单点,存在SPOF
SecondaryNameNode:
又名CheckPoint Node,定期合幵FsImage和EditLog
不接收客户端的请求,作为NameNode的冷备
DataNode:
实际存储数据的单元
以Block为单位
数据以普通文件形式保存在本地文件系统
Client:
与HDFS交互,进行读写、创建目录,创建文件、复制、删除等操作
HDFS提供了多种客户端:命令行Shell,Java API,Thrift接口,C library,WebHDFS等
HDFS容错机制
故障类型:
磁盘错误和故障
DataNode故障 :数据块自动复制到剩余的节点以保证满足复制因子,namenode侦测datanode故障
交换机/机架故障
NameNode故障 :备用namenode,冷备
数据中心故障
HDFS水平扩展与再平衡
添加datanode,namenode节点侦测到新的datanode加入集群内,数据块再均衡和在分发。
Hadoop1.0 架构解析之MapReduce
MapReduce分布式计算框架:
JobTracker:
负责集群资源监控和作业调度
通过心跳监控所有TaskTracker的健康状况
监控Job的运行情况、执行进度、资源使用,交由任务调度器负责资源分配
任务调度器可插拔:FIFO Scheduler、 Capacity Scheduler、 FIFO Scheduler
TaskTracker:
具体执行Task的单元
以slot为单位等量划分本节点的资源,分为Map Slot和Reduce Slot
通过心跳周期性向JobTracker汇报本节点的资源使用情况和任务运行进度
接收JobTracker的命令执行相应的操作(启动新任务、杀死任务等)
Client:
提交用户编写的程序到集群
查看Job运行状态
Hadoop2.0 架构
Hadoop2.0 架构解析之HDFS 2.0
HDFS 1.0的问题:
--NameNode SPOF,NameNode挂掉整个集群不可用
--内存受限,整个集群的size受限于NameNode的内存空间大小
HDFS 2.0:
--引入NameNode HA,Active/Standby NameNode,支持Auto-Failover
--引入HDFS Federation,支持多个NameNode,每个NameNode只负责一部分目录,多个NameNode协作达到水平扩展
NameNode HA
Active NameNode对外提供服务,Standby NameNode同步Active NameNode的元数据,以待切换
所有DataNode同时向两个NameNode汇报数据块信息
元数据信息存储在共享存储中,可选
--JournalNode(推荐):奇数个,基于Paxos协议
--NFS
支持auto failover和manual failover:
--auto-failover:基于ZooKeeper,zkfc监测NameNode的健康状况,并向ZooKeeper注册。
当NameNode挂掉时,进行锁竞争,获得锁的NameNode转换为Active NameNode
--manual failover:手工切换,适用于NameNode升级
HDFS Federation
--使用多个独立的namespace,每个DataNode要向集群中所有的NameNode注册,
且周期性地向所有NameNode发送心跳和块报告,并执行来自所有NameNode的命令
--一个block pool由属于同一个namespace的数据块组成,每个datanode可能会存储集群中所有block pool的数据块
优点:水平扩展,隔离
Hadoop2.0 架构解析之YARN
Yet Another Resource Negotiator
核心思想:
--将mrv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现
--ResourceManager:负责整个集群的资源管理和调度
--ApplicationMaster:负责应用程序相关的事务,比如任务调度,任务监控和容错
--NodeManager:每个节点的资源和任务管理器,定期向RM汇报本节点的资源使用情况和Container运行情况,接收和处理AM的请求(如启动和杀死Container)
--Container:资源划分的最小单位,动态的,由应用程序指定
双层调度的思想,使得多种计算框架能够共享一个集群的资源
--MapReduce on Yarn,Spark on Yarn,Storm on Yarn,HBase on Yarn(Hoya)
--每个应用程序对应自己的ApplicationMaster
Hadoop2.0 架构解析之MAPREDUCE
--MapReduce原理和运行流程不MRv1一样,API保持向后兼容
--不同的是,在2.0,mapreduce作为Hadoop Yarn的其中一种application
--一些概念的变化
mrv1 mrv2
JobTracker MRAppMaster
TaskTracker NodeManager
Slot Container
Hadoop 1.0 vs 2.0
|
1.0 |
2.0 |
|
只支持MapReduce一个Batch Processing计算框架 |
支持MapReduce、 Tez、 Spark、 Storm等多种计算框架,融合Batch Processing、 Interative Computing、 Realtime Computing |
|
集群管理受JobTracker限制, 很难扩展 |
引入了新的资源管理框架Yarn |
|
集群资源利用率低, 配置固定的Map/Reduce Slot数,不可复用 |
Container化, 没有固定的Map/Reduce Slot, 可动态资源分配, 可复用 |
|
JobTracker、 TaskTracker |
RM、 NM, mapreduce作为Yarn之上的一个app |
Hadoop 2.0 架构

Hadoop 生态圈
Common
A set of components and interfaces for distributed filesystems and general I/O
(serialization, Java RPC, persistent data structures).
Avro
A serialization system for efficient, cross-language RPC and persistent data storage.
MapReduce
A distributed data processing model and execution environment that runs on large clusters of commodity machines.
HDFS
A distributed filesystem that runs on large clusters of commodity machines.
Pig
A data flow language and execution environment for exploring very large datasets.
Pig runs on HDFS and MapReduce clusters.
Hive
A distributed data warehouse. Hive manages data stored in HDFS and provides a
query language based on SQL (and which is translated by the runtime engine to
MapReduce jobs) for querying the data
HBase
A distributed, column-oriented database. HBase uses HDFS for its underlying
storage, and supports both batch-style computations using MapReduce and point
queries (random reads).
ZooKeeper
A distributed, highly available coordination service. ZooKeeper provides primitives
such as distributed locks that can be used for building distributed applications.
Sqoop
A tool for efficient bulk transfer of data between structured data stores (such as
relational databases) and HDFS.
Oozie
A service for running and scheduling workflows of Hadoop jobs (including MapReduce, Pig, Hive, and Sqoop jobs).
1 预备知识--Hadoop简介的更多相关文章
- BBS - 预备知识
一.中介模型 四个项目: 苑昊 博客(BBS) (7-8) CRM 1.权限组件 (3) 2.start组件 -- admin (5) 1.使用 2.源码 django 源码 (面向对象) 以源码为导 ...
- 《C++ Primer Plus》学习笔记 第1章 预备知识
第一章 预备知识C++在C语言的基础上添加了对"面向对象编程"的支持和对"泛型编程"的支持.类 —— 面向对象模板 —— 泛型编程1.1 C++简介1.2 C+ ...
- WPF学习08:MVVM 预备知识之COMMAND
WPF内建的COMMAND是GOF 提出的23种设计模式中,命令模式的实现. 本文是WPF学习07:MVVM 预备知识之数据绑定的后续,将说明实现COMMAND的三个重点:ICommand Comm ...
- 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识
驱动开发读书笔记. 0.06 嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...
- 受限玻尔兹曼机(RBM)学习笔记(一)预备知识
去年 6 月份写的博文<Yusuke Sugomori 的 C 语言 Deep Learning 程序解读>是囫囵吞枣地读完一个关于 DBN 算法的开源代码后的笔记,当时对其中涉及的算法原 ...
- 学习Identity Server 4的预备知识
我要使用asp.net core 2.0 web api 搭建一个基础框架并立即应用于一个实际的项目中去. 这里需要使用identity server 4 做单点登陆. 下面就简单学习一下相关的预备知 ...
- JAVA面向对象-----面向对象(基础预备知识汇总)
终于整理好了面向对象基础预备知识,但是有点多,所以你们懂的,贴图,较长的代码我还是会排版出来的,我不想把时间浪费在排版上在word里排版一次已经很浪费时间了,所以请谅解. public class C ...
- Hadoop:Hadoop简介及环境配置
http://blog.csdn.net/pipisorry/article/details/51243805 Hadoop简介 下次写上... 皮皮blog 配置hadoop环境可能出现的问题 每次 ...
- 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) + 准备项目
上一部分预备知识在这 http://www.cnblogs.com/cgzl/p/9010978.html 如果您对ASP.NET Core很了解的话,可以不看本文, 本文基本都是官方文档的内容. A ...
随机推荐
- ZOJ 3541 The Last Puzzle(经典区间dp)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3541 题意:有一排开关,有个开关有两个值t和d,t是按下开关后在t秒后会自 ...
- zookeeper和Eureka对CAP理论的支持
著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡.在此Zookeeper保证 ...
- android平台蓝牙编程
Android平台支持蓝牙网络协议栈,实现蓝牙设备之间数据的无线传输. 本文档描述了怎样利用android平台提供的蓝牙API去实现蓝牙设备之间的通信,蓝牙设备之间的通信主要包括了四个步骤:设置蓝牙设 ...
- sshpass使用
sshpass的使用方法 应用范围:可以在命令行直接使用密码来进行远程连接和远程拉取文件. 使用前提:对于未连接过的主机.而又不输入yes进行确认,需要进行sshd服务的优化: # vim /etc/ ...
- 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- PHP:第五章——字符串输出函数
<?php header("Content-Type:text/html;charset=utf-8"); /*字符串输出函数*/ //1.echo 输出一个或多个字符 // ...
- 分析公司shareaholic报告:Chrome浏览器使用量居首
社交分析公司Shareaholic周四发布研究报告称,今年9月份,Chrome浏览器的使用量已经跃居行业榜首. 根据Shareaholic的数据,Chrome今年9月的使用量超过了火狐.IE和Oper ...
- cell 重用
1. 当单元格因滚屏而脱落表格可见区时,表格可以将其缓存到重用队列中. 用法:我们可标记单元格以备重用,然后根据需要从该队列中提取. 在分配新单元格时,必须检查重用单元格是否可用.如果表格对deque ...
- PHPCMS v9 二次开发_验证码结合Session开发
本文主要讲解了在V9中使用v9自带验证码并且需要使用session的情况下,多种问题的解决.:).如有问题或者更好的解决办法,希望不吝赐教. 1.前端调用验证码 pc_base::load_sys_c ...
- linux下部署tomcat服务器之安装tomcat
下载tomcat压缩包 apache-tomcat-7.0.82.tar.gz 在把包放到linux 的softwore文件夹下 自己选择文件夹 tar -zxvf apache-tomcat-7. ...