Hadoop HDFS

将会按照HDFS ,MapReduce, Yarn的顺序更新, 近期还会整理Zookeper, Hive, pig等相关

如果对您有帮助或者解决了您的问题, 就帮我点个赞或者评论关注支持吧, 您的鼓励是我写博客的最大支持, 感谢!

 

Hadoop的特点

  • 处理千兆字节(PB)数据
  • 可靠性
    • 自动地维护数据的多份副本
    • 任务失败后能自动地重新部署
  • 可以在数据所在的节点上并行地处理

 

一 核心 基本都是采用Master-Woker架构

  • HDFS 分布式文件系统
    • 通过分布式集群来存储文件
  • YARN 资源管理调度系统
  • Mapreduce 分布式运算框架
    • Map 本地局部结构
    • Reduce 通过网络汇总各个map的计算结果

二 HDFS的架构

主从结构

  • 主节点 nameNode
    • 接收用户的请求
    • 维护文件系统目录
    • 管理dataNode和block之间的关系
  • 从节点 dataNode
    • 存储文件
    • 把文件切成很多block默认是128M 放在不同机器上(C端访问时, 由Name解决抽象路径映射)
    • 文件有多个副本 保证可靠性和吞吐量
  • Secondary NameNode
    • 合并fsimage和edits文件来更新NameNode的metedata

2.1 NameNode

到有“写请求”到来时,NameNode首先会写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回

  • Meta Data : 元数据
  • fs image : 磁盘上的元数据镜像文件
  • edits log : 写满时, 就由secondary NameNode 将edits log 与 fsimage合并
  • fs time : 保持最近一次checkpoint 的时间点

 

2.2 SecondaryNameNode

从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage.默认在安装在NameNode节点上,但这样...不安全!

2.2.1 合并过程

 

2.3 DataNode

dfs.block.size = 128MB

Replication: 多复本。默认是三个

2.4 HDFS读过程

  1. 初始化DFS, 用open函数打开文件
  2. DFS访问NameNode获得块信息
  3. 客户端调用FSDinputstream读取数据
  4. FSD去读DataNode
  5. 读最近的DataNode,如果不是最后一块就读下一块
  6. 客户端读完了就调用close
  7. 在读取数据的过程中, 客户端与数据节点通信出现错误,则尝试连接其他备份

2.5 HDFS写过程

  1. 初始化FS, 调用create创建文件
  2. FS在NameNode创建新文件
  3. FS返回DFSOutputstream
  4. DFSOutputstream将数据分块
  5. 接受ack返回成功通知
  6. 写入完成调用close
  7. 如果数据节点在写入的过程中失败 .元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。

 

 

 

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值