Hadoop(一)基础概念
hadoop是一个大数据分布式存储和计算平台。
hadoop1包括hdfs和mapreduce两部分核心
hadoop2包括hdfs,yarn,mapreduce三部分核心,其中
- hdfs,hadoop分布式文件系统,可扩展,容错,高性能分布式文件系统,异步复制,一次写入多次读取,负责数据存储。包括namenode,datanode等部分。
- yarn,资源调度,管理调度任务,支持其他计算框架,如spark。任何yarn应用程序都可以在Hadoop集群上运行。
- 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(一)基础概念相关推荐
- Hadoop之基础概念
2019独角兽企业重金招聘Python工程师标准>>> 1. 什么是 Hadoop (1) Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构: (2) 主要解决 ...
- ELKElasticSearch5.1基础概念及配置文件详解【转】
1. 配置文件 elasticsearch/elasticsearch.yml 主配置文件 elasticsearch/jvm.options jvm参数配置文件 elasticsearch/log4 ...
- TCP/IP基础概念及通信过程举例
TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...
- Python+Dash快速web应用开发——基础概念篇
作者:费弗里 来源:Python大数据分析 ❝本文示例代码与数据已上传至https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 这是我的新系 ...
- 理解 angular2 基础概念和结构 ----angular2系列(二)
前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...
- 数据库基础笔记(MySQL)1 —— 基础概念
(写算法题目把自己心态搞崩了,休息两天顺便把之前学的数据库手写笔记记录在网上方便查阅,因为只是自己学的时候做的笔记,如果有错误欢迎大家指正,过两天再重回算法的怀抱哈哈) 如何下载配置 这个感觉视频讲的 ...
- python 舍去小数_零基础小白Python入门必看——编程基础概念
1. 程序的构成 程序由模块组成,一个模块对应python的源文件 ,一般后缀为:.py 模块由语句构成 语句是python程序的构造单元,用于创建对象.变量赋值.调用函数.控制语句等. 2. 对象 ...
- J2EE学习笔记三:EJB基础概念和知识 收藏
J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...
- 机器学习的9个基础概念和10种基本算法总结
https://blog.csdn.net/libaqiangdeliba/article/details/41901387 1.基础概念: (1) 10折交叉验证:英文名是10-fold cross ...
- UC伯克利教授Stuart Russell人工智能基础概念与34个误区
来源:数据简化DataSimp 数据简化DataSimp导读:UC伯克利教授StuartRussell人工智能基础概念与34个误区,Russell是加州大学伯克利分校人工智能系统中心创始人兼计算机科学 ...
最新文章
- C/C++-style输入输出函数
- WPF代码模板-布局部分
- 成功解决win系统电脑中网络仅看到自己计算机图文教程
- SpringMVC学习笔记
- intellij中的required和found各指什么
- 使用c#操作IBM WebSphere MQ
- SSIS工具的ETL过程,全量ETL和增量ETL过程教程
- MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发
- 机器人肖恩百度云网盘_《探险活宝遥远国度》百度云(全4集完结版)网盘资源【1080p】完整无删减资源共享...
- [幽默网文]2009高考作文语录
- oracle中update,insert,delete的高级用法
- 手机兼容性测试--testin云测
- macbook黑屏_MacBook维修 苹果笔记本电脑进水不开机
- java获取时间的各种风格_Java8新特性之新日期API
- 第三十四届广东金融科技交流会顺利举行,墨云分享风险验证技术新思路
- hangfire mysql_Hangfire 后台日志 The underlying provider failed on Open 错误
- 连连看游戏的核心算法
- memset()和bzero()的使用和区别
- Windows系统发展史
- C++对象(懒得传图版)
热门文章
- 10-2-DBUtils工具
- java code_Alibaba Java Code Guidelines 插件使用教程
- 小米台灯底座接口很松_选购台灯发愁?这篇桌面照明方案助你一臂之力
- python语言pos_Python自然语言处理(二)--NLTK调用Stanford_NLP_Tools完成NLP任务
- python进阶训练营百度网盘_(在线观看)【完结】私域流量实战训练营(百度网盘分享下载)...
- devops开发运维一体化_进阶 | 中国电信系统集成公司:100% 应用 DevOps 理念,做好企业级行业应用...
- 自适应滤波器原理第四版计算机实验,自适应滤波器原理(中文第4版)答案
- 蓝色圆形门禁卡怎么模拟_手把手教你把门禁卡复制到手机,跟实体门禁卡说拜拜...
- 平面设计背景素材|打造超酷的炫彩光束光效海报!
- 智能贴图样机素材在手,海报逼格马上就有!