Hadoop Distributed File System:分布式文件系统。 HDFS基于流数据模式访问和处理超大文件需求开发,具有高容错性,高可靠性,高可扩展性,多部署在低成本的硬件上。HDFS提供对应用程序数据的高吞吐量访问,便利了海量数据的处理

介绍

  • 假设和目标
    • 硬件故障:检测故障并从中快速恢复
    • 流式数据访问
      • HDFS设计用于批处理而非用户的交互使用
      • 重点是数据访问的高吞吐量而非低延迟
    • 大数据集
      • HDFS上运行的应用程序具有大型数据集,支持大文件
      • 应为单个集群中的数百个结点提供高聚合数据带宽和扩展
      • 应在单个实例中支持数万个文件
    • 一致性模型
      • write-one-read-many
      • 除了追加和截断之外,无需更改创建,写入和关闭的文件
      • 支持将内容附加到文件末尾,但是无法在任意点更新
      • MapReduce应用程序和Web爬虫程序完全适用于此模型
    • 移动计算而非移动数据
      • 好的做法是将计算迁移到更靠近数据所在的位置(HDFS提供接口)
      • 应用程序在其操作的数据附近执行,效率更高
      • 最大限度减小网络拥塞和提高系统吞吐量
    • 跨异构硬件和软件平台的可移植性

大专栏  BeWhatevererlink" title="HDFS 架构 – 主从架构(master/slave)">HDFS 架构 – 主从架构(master/slave)

  • 架构图
  • Client
    • 文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block进行存储
    • 与 NameNode 交互,获取文件的位置信息
    • 与 DataNode 交互,读取或者写入数据
    • Client 提供命令来管理 HDFS,启动或者关闭HDFS
    • Client 可以通过一些命令来访问HDFS
  • NameNode(master)
    • 管理系统命名空间
    • 管理客户端对文件的访问(读写请求)
    • 管理数据块映射信息
    • 配置副本策略
  • DataNode(slave)
    • 确定块 – DataNode的映射
    • 提供来自Client的读写请求
    • 块创建/删除
  • Secondary NameNode
    • 当NameNode挂掉的时候,并不能马上替换 NameNode 提供服务
    • 辅助 NameNode,分担其工作量
    • 定期合并 fsimage和fsedits,并推送给NameNode
    • 在紧急情况下,可辅助恢复 NameNode

参考资料

BeWhatever的更多相关文章

随机推荐

  1. python-day6爬虫基础之会话、Cookies、代理

    由于前几天看电脑时间过长,在昨天的时候,两个眼睛就有点疼痛感觉,所以昨天晚上就没有学习,博客也没有跟着写,今早去校医院买了点药,上午把老师要求的电路板画完了,已经发出去做了,现在闲来无事,看了一会关于 ...

  2. 如何把word文档导入到数据库中——java POI

    本文方法借鉴于https://www.cnblogs.com/ljysy/p/10574197.html 在经过朋友的指导下,在处理文档的方式上有所不同. 我的数据库使用的是SQL server,这篇 ...

  3. Python—守护进程管理工具(Supervisor)

    一.前言简介 1.Supervisor 是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程.可以很方便的用来启动.重启.关闭进程(不仅仅是 ...

  4. python画图例子代码

    matplotlib包,使得python可以使用类似matlab的命令 双坐标,子图例子 fig, axes = plt.subplots( 2,1, figsize=(14, 14) ) ax = ...

  5. 爬虫—文件存储—CSV存储

    一,简介 CSV,全称Comma—Separated Values,可以称为逗号分隔或者字符分隔值,其文件以纯文本形式存储表格数据.该文件是一个字符序列,可以有任意的数目记录组成,记录间已某种换行符分 ...

  6. 【lca+输入】Attack on Alpha-Zet

    Attack on Alpha-Zet 题目描述 Space pirate Captain Krys has recently acquired a map of the artificial and ...

  7. K3CLOUD日志目录

    业务站点安装目录\K3Cloud\WebSite\App_Data\Log下面找

  8. 48)PHP,工厂模式

    为啥需要工厂模式啊: (原来是生产类的工具——————————) 工厂类的代码格式: <?php class factory{ //Instance表示“实例”,“对象” static func ...

  9. 吴裕雄--天生自然 JAVA开发学习:MySQL 连接

    CREATE TABLE `websites` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL DEFAULT '' ...

  10. mac用python读取文件常见问题(未完成)

    python读取文件常见问题(mac版) 让python的默认编码,和文件的编码保持一致