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 ...
随机推荐
- bzoj1211: [HNOI2004]树的计数 prufer序列裸题
一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di ...
- HDU-4035-概率dp-期望-公式化简
Maze Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Submis ...
- 黑暗世界的搜索引擎 https://fofa.so/ https://www.shodan.io https://www.zoomeye.org 查找设备漏洞
from:http://www.freebuf.com/sectool/121339.html 什么是 Shodan? 首先,Shodan 是一个搜索引擎,但它与 Google 这种搜索网址的搜索引擎 ...
- PLSQL 触发器
触发器权限 数据库创建用户时想要在本用户下使用触发器,需要给用户触发器的权限 使用DBA用户执行 GRANT CREATE TRIGGER TO user_name; 如果想在当前用户下创建其他用户 ...
- MMAP文件内存映射
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- VS2013命令行界面查看虚函数的内存布局
内存布局可能使用vs的界面调试看到的旺旺是一串数字,很不方便,但是vs的命令行界面可以很直观的显示出一个类中具体的内存布局. 打开命令行.界面如下所示: 测试代码如下所示: class Base1 { ...
- New Concept English Two 14 34
recently busy a lot ,just practices every morning. $课文32 购物变得很方便 324. People are not so hone ...
- Java 异常Exception e中e的getMessage()和toString()方法的区别
示例代码1: public class TestInfo { private static String str =null; public static void main(String[] arg ...
- Ethereum部署私有合约常见问题汇总
常见问题 问题1 问题描述: callback contain no result Error: authentication needed: password or unlock 这里的问题是当前所 ...
- Server JRE 简介
Server JRE, 服务器版JRE JRE安装包, JDK安装包, 以及 Server JRE 压缩包, 在 Java SE Download 页面都可以下载: http://www.oracle ...