Hadoop(一)基础概念

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模型通过抽象出使用分布式系统所涉及的复杂性(例如计算并行化、工作分配以及不可靠的硬件和软件)来简化并行处理过程,让开发人员更专注于业务的开发,而不是陷入分布式业务的复杂性中。

(完)(^_^)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值