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. JS导出、导入EXCEL(案例)

    插件下载地址:http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js 1.导出excel <!DOCTYPE html> <html> ...

  2. request请求生命周期

    request请求生命周期 一.request请求分析 1.1. request数据请求 # views.py from rest_framework.views import APIView fro ...

  3. 怎么通过scanf读取一个空白前的字符

    /************************************************************************* > File Name: scanf2.c ...

  4. 1.Jenkins基本安装及插件离线安装

    Jenkins基本安装 Jenkins官方地址:https://jenkins.io/zh/,下载最新版本,需要依赖对应的jdk版本才可以正常运行. dockerfile文件构建docker镜像 FR ...

  5. springboot+solr基本使用

    接着上一篇的搭建 首先需要的pom节点有 <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data ...

  6. spring 方法注入、方法替换

    spring 提供了很多的注入方式,set注入.构造注入.p命名空间.c命名空间.字段注入等等,这些没啥可说的了. 方法注入 因为开发时我需要spring管理一个实例,但是这个实例并非单例,应该每一次 ...

  7. IMX6开发板Qtopia2.2.0开发环境搭建以及编译镜像

    搭建 Qtopia2.2.0 开发环境,需要先搭建 Android 的编译环境,然后在 Android 编译环境的基础上,再搭建 Qtopia2.2.0 编译环境.以下内容基于迅为-iMX6开发板.Q ...

  8. 一个简单的jQuery回调函数例子

    jQuery回调函数简单使用 比如说,我们想要点击某个按钮后触发事件, 先把一些指定内容给隐藏掉, 然后跳出相关信息的对话框. 如果使用普通的方法, 不用回调函数的话, 会有怎么样的效果呢? 效果是先 ...

  9. F. Rhyme scheme

    题: https://nanti.jisuanke.com/t/41414 #include<bits/stdc++.h> using namespace std; typedef __i ...

  10. 代码审计中的SQL注入

    0x00 背景 SQL注入是一种常见Web漏洞,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.本文以代码审计的形式研 ...