hadoop是一个大数据分布式存储和计算平台。

hadoop1包括hdfs和mapreduce两部分核心

hadoop2包括hdfs,yarn,mapreduce三部分核心,其中

  1. hdfs,hadoop分布式文件系统,可扩展,容错,高性能分布式文件系统,异步复制,一次写入多次读取,负责数据存储。包括namenode,datanode等部分。
  2. yarn,资源调度,管理调度任务,支持其他计算框架,如spark。任何yarn应用程序都可以在Hadoop集群上运行。
  3. mapreduce,分布式计算组件,包含map(映射)和reduce(规约)过程,负责在hdfs上计算。在hadoop2中作为yarn的应用程序。

hdfs

hdfs基本原理

相对于集中存储,分布式存储的优势:

集中存储

分布式存储

hdfs hadoop分布式文件系统基本原理是将大数据文件分块存储,提高文件的处理效率。

hdfs架构,如下图。

namenode,管理、存储文件元数据信息,元数据分两份,放在内存中一份,通过fsimage和edits文件将数据持久化到磁盘一份;data节点的日常维护。

  • 管理datanode,管理文件系统,包括目录树,文件目录元数据(文件名,文件块,文件大小),文件数据块列表。接受用户请求。
  • namenode把元数据信息加载到内存中,为了快速查询,同时也要持久化到磁盘中,来保证突发宕机的情况下数据不会丢失。
  • namenode不存储文件数据,只存储文件元数据,datanode负责存储块数据。

fsimage,edits

  • fsimage,记录元数据信息的文件
  • edits,记录元数据信息改动的文件,只要元数据改变,edits会增加相应的记录
  • fsimage和edits文件定期会合并,默认是3600s,fsimage根据edits中的改动记录进行元数据的更新。

元数据如果丢失的话,hdfs就不能正常工作了。hdfs namenode -format命令的作用是创建fsimage和edits的初始文件。

secondarynamenode,将fsimage和edits文件定期合并,将合并之后的fsimage和edits传给namenode,相当于namenode的辅助节点。

namenode创建fsimage和edits文件,并且做一次fsimage和edits的合并,应为上次停机的时候可能还没来得及合并,但是以后的合并工作都交给secondarynamenode去做。

以上是hadoop1.0时代机制,这种机制有单点故障问题,因为不是热备,所以当namenode挂了的时候,元数据还是可能会丢失。

datanode,用户存储文件块,为了datanode宕机造成文件快丢失,需要对文件块进行replication,一个文件快有三个副本。

rack,机架

client,可以通过API或者指令操作hdfs的入口,都可以看作客户端。

blocksize:数据块大小,hadoop1.0:64M,hadoop2.0:128M

块的大小问题,从大数据处理的角度看,块越大越好,所以从技术发展的角度,以后的块会越来越大,因为块越大,会减少磁盘寻址次数,减少寻址实践。但是块大的话,不适合存储小文件。

hadoop2为HDFS引入了Federation和HA

Federation,可以在多个NameNode主机间共享hdfs元数据,有助于hdfs扩展并提高数据隔离,允许不同应用程序或团队运行自己的NameNode,而不用担心影响同一集群上的其他NameNode。

HA,hadoop1中单点故障问题的解决方案,其中NameNode故障将导致集群中断,HDFS高可用性提供故障转移机制,备用节点从故障的主NameNode节点接管工作,来继续Hadoop集群的工作。

Yarn

Yarn是Hadoop分布式资源调度程序。YARN是Hadoop 2.0版本添加的功能,旨在应对Hadoop 1架构带来的如下问题:

  • 大于4,000个节点的部署遇到可伸缩性问题,添加其他节点并未产生预期的线性可伸缩性改进。

  • 仅支持MapReduce工作负载,这意味着不适合运行执行模型,例如通常需要迭代计算的机器学习算法。

在之后的Hadoop版本中,这些问题通过从MapReduce提取调度函数并将其重新编写为通用应用程序调度程序(称为YARN)来解决。通过此更改,Hadoop集群不再局限于运行MapReduce工作负载,YARN允许在Hadoop本地支持一组新的工作负载,并允许其他处理模型(如图处理和流处理)与MapReduce共存。

MapReduce

MapReduce是一个批量分布式计算框架。MapReduce允许并行处理大量原始数据,例如将Web日志与来自OLTP数据库的关系数据相结合,以模拟用户与网站的交互方式。使用传统串行编程技术可能需要数天或更长时间来完成这类工作,使用Hadoop集群上的MapReduce几分钟内便可完成。MapReduce模型通过抽象出使用分布式系统所涉及的复杂性(例如计算并行化、工作分配以及不可靠的硬件和软件)来简化并行处理过程,让开发人员更专注于业务的开发,而不是陷入分布式业务的复杂性中。

(完)(^_^)

Hadoop(一)基础概念相关推荐

  1. Hadoop之基础概念

    2019独角兽企业重金招聘Python工程师标准>>> 1. 什么是 Hadoop (1) Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构: (2) 主要解决 ...

  2. ELKElasticSearch5.1基础概念及配置文件详解【转】

    1. 配置文件 elasticsearch/elasticsearch.yml 主配置文件 elasticsearch/jvm.options jvm参数配置文件 elasticsearch/log4 ...

  3. TCP/IP基础概念及通信过程举例

    TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...

  4. Python+Dash快速web应用开发——基础概念篇

    作者:费弗里 来源:Python大数据分析 ❝本文示例代码与数据已上传至https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 这是我的新系 ...

  5. 理解 angular2 基础概念和结构 ----angular2系列(二)

    前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...

  6. 数据库基础笔记(MySQL)1 —— 基础概念

    (写算法题目把自己心态搞崩了,休息两天顺便把之前学的数据库手写笔记记录在网上方便查阅,因为只是自己学的时候做的笔记,如果有错误欢迎大家指正,过两天再重回算法的怀抱哈哈) 如何下载配置 这个感觉视频讲的 ...

  7. python 舍去小数_零基础小白Python入门必看——编程基础概念

    1. 程序的构成 程序由模块组成,一个模块对应python的源文件 ,一般后缀为:.py 模块由语句构成 语句是python程序的构造单元,用于创建对象.变量赋值.调用函数.控制语句等. 2. 对象 ...

  8. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  9. 机器学习的9个基础概念和10种基本算法总结

    https://blog.csdn.net/libaqiangdeliba/article/details/41901387 1.基础概念: (1) 10折交叉验证:英文名是10-fold cross ...

  10. UC伯克利教授Stuart Russell人工智能基础概念与34个误区

    来源:数据简化DataSimp 数据简化DataSimp导读:UC伯克利教授StuartRussell人工智能基础概念与34个误区,Russell是加州大学伯克利分校人工智能系统中心创始人兼计算机科学 ...

最新文章

  1. C/C++-style输入输出函数
  2. WPF代码模板-布局部分
  3. 成功解决win系统电脑中网络仅看到自己计算机图文教程
  4. SpringMVC学习笔记
  5. intellij中的required和found各指什么
  6. 使用c#操作IBM WebSphere MQ
  7. SSIS工具的ETL过程,全量ETL和增量ETL过程教程
  8. MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发
  9. 机器人肖恩百度云网盘_《探险活宝遥远国度》百度云(全4集完结版)网盘资源【1080p】完整无删减资源共享...
  10. [幽默网文]2009高考作文语录
  11. oracle中update,insert,delete的高级用法
  12. 手机兼容性测试--testin云测
  13. macbook黑屏_MacBook维修 苹果笔记本电脑进水不开机
  14. java获取时间的各种风格_Java8新特性之新日期API
  15. 第三十四届广东金融科技交流会顺利举行,墨云分享风险验证技术新思路
  16. hangfire mysql_Hangfire 后台日志 The underlying provider failed on Open 错误
  17. 连连看游戏的核心算法
  18. memset()和bzero()的使用和区别
  19. Windows系统发展史
  20. C++对象(懒得传图版)

热门文章

  1. 10-2-DBUtils工具
  2. java code_Alibaba Java Code Guidelines 插件使用教程
  3. 小米台灯底座接口很松_选购台灯发愁?这篇桌面照明方案助你一臂之力
  4. python语言pos_Python自然语言处理(二)--NLTK调用Stanford_NLP_Tools完成NLP任务
  5. python进阶训练营百度网盘_(在线观看)【完结】私域流量实战训练营(百度网盘分享下载)...
  6. devops开发运维一体化_进阶 | 中国电信系统集成公司:100% 应用 DevOps 理念,做好企业级行业应用...
  7. 自适应滤波器原理第四版计算机实验,自适应滤波器原理(中文第4版)答案
  8. 蓝色圆形门禁卡怎么模拟_手把手教你把门禁卡复制到手机,跟实体门禁卡说拜拜...
  9. 平面设计背景素材|打造超酷的炫彩光束光效海报!
  10. 智能贴图样机素材在手,海报逼格马上就有!