大数据技术原理与应用

在mooc上学的该课程,目前进度一半多。包括sql、hive、hbase、hdoop等。

5大数据技术原理与应用数据库RDBMS 关系型数据库MySQL、Oracle、DB2、SQL sever…关系型数据库 全是表NoSQL 非关系型数据库项目结构YARN 资源管理和调度器Tez 运行在YARN之上的下一代Hadoop查询处理框架HBase Hadoop上的非关系型的分布式数据库Pig 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig LatinSqoop 用于在Hadoop与传统数据库之间进行数据传递Oozie Hadoop上的工作流管理系统Zookeeper 提供分布式协调一致性服务Storm 流计算框架Flume 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统Ambari Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控Kafka 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据Spark 类似于Hadoop MapReduce的通用并行框架大数据概述时代第三次信息浪潮:云计算、物联网、大数据 2010技术支撑存储容量增加CPU处理能力提升网络带宽不断增加计算网络数据产生的方式运营式系统阶段用户原创内容阶段感知式系统阶段概念、影响特性:4Vvolume 大量化数据摩尔定律数据类型:10%结构化数据、90%非结构化数据variety 多样化web 1.0:文本、图像、视频web 2.0:查询日志/点击流、wiki、twitter企业应用:email、文档文件;应用日志;交易记录科学研究:基因组;LHC加入器;地球与空间探索velocity 快速化eg:Google Dremelvalue 价值密度低影响科学:第四范式,实验-理论-计算-数据思维模式改变:全样而非抽样;效率而非精确;相关而非因果。应用eg:拍电视剧、google预测流感关键技术&模式技术层面基础架构支持云计算平台云存储虚拟化网络技术资源监控技术数据采集数据总线ETL工具*数据存储和管理分布式存储分布式数据库big table分布式文件系统GFS*数据处理与分析分布式处理分布式并行处理技术MapReduce数据隐私与安全2大核心技术分布式存储GFS\HDFSBigTable\HBaseNoSQL(键值、列族、图形、文档数据库)NewSQL(如:SQL Azure)分布式处理MapReduce计算模式批处理计算MapReduceSpark流计算S4StormFlume图计算Pregel (google )查询分析计算Dremel(google )HiveCassandraImpala大数据、云计算、物联网关系云计算关键技术虚拟化Linux:hadoopWindows:虚拟机硬件分布式存储分布式计算多租户3种模式公有云eg:百度云私有云eg 电信、联通混合云3种云服务Iaasaws:EC2;salesforcePaassina app engineSaas数据中心冷、电力丰富;地质结构稳定;凉爽舒适。应用政务云、教育云、医疗云、中小企业云物联网概念应用层处理层网络层感知层技术识别与感知(二维码、RFID等)网络与通信数据挖掘与融合联系云计算为大数据提供了技术基础 大数据为云计算提供用武之地云计算为物联网提供海量数据存储能力 物联网为云计算技术提供了广阔的应用空间物联网是大数据的重要来源 大数据技术为物联网数据分析提供支撑大数据处理架构Hadoop概述简介Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力2大核心HDFS:Hadoop Distributed File SystemMapReduce发展简史源自始于2002年的Apache Nutch项目特性高可靠性高效性高可扩展性高容错性成本低运行在Linux平台上支持多种编程语言应用现状互联网领域是其应用的主阵地Apache Hadoop版本演变Hadoop 1.00.20.x最后演化成1.0.x0.21.x0.22.xHadoop 2.00.23.x2.xHadoop各种版本Apache HadoopHortonworksCloudera(CDH:Cloudera Distribution Hadoop)MapR包括HDFS:存储数据MapReduce:处理数据Hbase:分布式数据库安装与使用集群的安装与使用分布式文件系统HDFS简介集群HDFS把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群。物理结构主节点Master Node/名称节点NameNode从节点Slave Node/数据节点DataNode目标兼容廉价的硬件设备流数据读写大数据集简单的文件模型强大的跨平台兼容性局限性不适合低延迟数据访问无法高效存储大量小文件不支持多用户写入及任意修改文件概念大小一个块64MB优点支持大规模文件存储简化系统设计适合数据备份2大组件主节点/名称节点数据结构Fslmage:用于维护文件系统树以及文件树中所有的文件和文件夹的元数据。EditLog:记录了所有针对文件的创建、删除、重命名等操作。第二名称节点SecondaryNameNode名称节点的冷备份对Editlog处理从节点/数据节点体系结构命名空间目录文件通信协议构建在TCP/IP协议基础之上的客户端客户端是用户操作HDFS最常用的方式,HDFS在部署时都提供了客户端局限性命名空间限制名称节点是保存在内存中的,因此,名称节点能够容纳的对象(文件、块)的个数会受到内存空间大小的限制性能瓶颈整个分布式文件系统的吞吐量,受限于单个名称节点的吞吐量。隔离问题由于集群中只有一个名称节点,只有一个命名空间,因此,无法对不同应用程序进行隔离。集群的可用性一旦这个唯一的名称节点发生故障,会导致整个集群变得不可用。存储原理冗余数据保存方式:多副本具体:通常一个数据块的多个副本会被分布到不同的数据节点上。多副本的优点加快数据传输速度容易检查数据错误保证数据可靠性数据存取策略存放读取就近读取。HDFS提供了一个API可以确定一个数据节点所属的机架ID,客户端也可以调用API获取自己所属的机架ID.数据错误与恢复名称节点出错备份机制,第二名称节点数据节点出错每个数据节点会定期向名称节点发送“心跳”信息,向名称节点报告自己的状态。数据出错网络传输和磁盘错误等因素,都会造成数据错误。客户端在读取到数据后,会采用md5和sha1对数据块进行校验,以确定读取到正确的数据。读写过程读数据的过程写数据的过程实践分布式数据库HBase概述从BigTable说起HBase简介HBase与传统关系数据库的对比分析访问接口Native Java APIHBase ShellThrift GatewayREST GatewayPigHive数据模型概述概念坐标概念视图物理视图面向列的存储实现原理HBase功能组件表和RegionRegion的定位运行机制HBase系统架构Region服务器工作原理Store工作原理HLog工作原理应用方案HBase实际应用中的性能优化方法HBase性能监视在HBase之上构建SQL引擎构建HBase二级索引编程实践安装与配置常用Shell命令常用Java API及应用实例NoSQL数据库简介特性兴起原因关系数据库已经无法满足Web2.0的需求数据模型的局限性。“One size fits all”模式很难适用于截然不同的业务场景Web2.0关系型数据库的关键特性(完善的事务机制、高效的查询机制)没有发挥。NoSQL与关系数据库的比较具体总结四大类型键值数据库列族数据库文档数据库图形数据库三大基石CAPBASE最终一致性从NoSQL到NewSQL数据库数据库发展NewSQL文档数据库MongoDB简介特点概念访问MongoDB云数据库概述背景云计算是云数据库兴起的基础概念部署和虚拟化在云计算环境中的数据库优点增强数据库的存储能力,消除人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。特性动态可扩展高可用较低使用代价易用性高性能免维护安全云数据库是个性化数据存储需求的理想选择大企业:海量数据需求中小企业:低成本数据存储动态变化数据存储与其他数据库的关系云数据库没专属的数据模型,RDBMS、NoSQL的数据模型都有。云数据库并非一种全新的数据库技术,而只是 以服务的方式 提供数据库功能许多公司在开发云数据库时,后端数据库都是 直接使用现有的 各种关系数据库或NoSQL数据库产品产品概述AWSDynamo、SimpleDB、RDSGOOGLEGoogle Cloud SQLMicrosoftMicrosoft SQL AzureOracleOracle CloudYahoo!PNUTSVerticaAnalytic Database v3.0 for the CloudEnerpriseDBPostgres Plus in the Cloud阿里阿里云RDS腾讯腾讯云数据库AWSRDS关系数据库SimpleDB键值数据库DynamoDBNoSQL数据库Redshift数据仓库ElastiCache分布式内存缓存GOOGLEGoogle Cloud SQLMicrosoftSQL Azure系统架构概述简介低成本&高性能的MySQL云数据库方案设计原则保持单一的系统对外入口,并为系统内部维护单一的资源池消除单点故障,保证服务的高可用性保证系统具有良好的可伸缩,能够动态地增加、删减计算与存储节点保证分配给用户的资源也是 弹性可伸缩的,资源之间相互隔离,确保应用和数据安全架构角色Controller服务器管理。实现集群成员管理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容等功能UMP系统中部署了多台Controller服务器,然后,由Zookeeper的分布式锁功能来帮助选出一个“总管”,负责各种系统任务的调度和监控Proxy服务器提供访问MySQL数据库的服务功能Agent服务器-部署在运行MySQL进程的机器上-来管理每台物理机上的MySQL实例。功能Web控制台提供系统管理界面日志分析服务器存储、分析 Proxy服务器传入的 用户访问日志,并支持实时查询 一段时间内的慢日志和统计报表信息统计服务器定期将[采集到的用户的连接数、QPS数值以及MySQL实例的进程状态]用RRDtool进行统愚公系统全量复制 结合bin-log分析 进行增量复制的工具可在不停机的情况下 动态扩容、缩容和迁移开源组件Mnesia简介特性LVS简介作用RabbitMQ工业级的消息队列产品节点间消息通讯ZooKeeper简介作用功能容灾读写分离分库分表资源管理资源调度资源隔离数据安全Amazon AWS和云数据库AWSAWS Global InfrastructureNetworkingComputeStorageDatabaseApplication ServiceDeployment & Admin云数据库Amazon RDSAmazon SimpleDBAmazon DynamoDBAmazon RedshiftAmazon ElastiCache微软云数据库SQL Azure逻辑模型概念只支持同一个行组内的事务,同一个行组的数据逻辑上会分布到一台服务器,以此规避分布式事务通过 主备复制 将数据复制到多个副本,保证高可用性物理模型what体系架构SQL Server实例全局分区管理器协议网关Fabric 分布式基础部件虚拟机簇实践MapReduce概述分布式并行编程why?MapReduce & 传统的并行计算框架 对比MapReduce模型简介函数策略:分而治之理念:计算向数据靠拢架构Map和Reduce函数MapReduce体系结构Client提交 用户编写的MapReduce程序 到JobTracker端通过Client提供的一些接口 查看作业运行状态JobTracker资源监控作业调度TaskTracker1、周期性地 通过“心跳” 将本节点上资源的使用情况&任务的运行进度 汇报给JobTracker;2、接收JobTracker 发送过来的命令,并执行相应的操作(如启动新任务、杀死任务等)1、用“slot”等量划分 本节点上的资源量(CPU、内存等)。2、一个Task 获取到一个slot 后才有机会运行,而Hadoop调度器的作用就是将各个TaskTracker上的空闲slot分配给Task使用。TaskMap TaskReduce Task工作流程工作流程提交初始化分配执行更新完成Shuffle过程详解inputmap阶段partitionsortcombine实例分析:WordCount具体应用关系代数运算分组与聚合运算矩阵-向量乘法矩阵乘法编程实践Hive概述Data Warehouse(数据仓库)概念一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。传统数据仓库缺点无法满足快速增长的海量数据存储需求无法有效处理不同类型的数据计算和处理能力不足Hive简介构建于Hadoop顶层的数据仓库工具特点Hive与(Hadoop生态系统中其他组件)的关系•Hive依赖于HDFS 存储数据•Hive依赖于MapReduce 处理数据•在某些场景下Pig可以作为Hive的替代工具•HBase 提供数据的实时访问Hive与传统数据库的对比分析数据插入数据更新索引分区执行延迟扩展性Hive在企业中的部署和应用系统架构用户接口CLIJDBC/ODBCWebGUIHWIDriver 驱动模块-包括解释器、编译器、优化器、执行器。-负责把HiveSQL语句 转换成 一系列MapReduce作业Metastore 元数据存储模块-独立的关系型数据库(自带derby数据库,或MySQL数据库)-Hive将元数据(表的名字,列和分区及其属性,属性,所在目录等。)存储在数据库中。Hive基本原理SQL语句 转换成 MapReducejoin的实现原理group by的实现原理Hive中SQL查询转换成MapReduce1、将SQL转换成抽象语法树2、将抽象语法树转换成查询块3、将查询块转换成逻辑查询计划4、重写逻辑查询计划5、将逻辑计划转成物理计划6、选择最佳的优化查询策略输出Hive HA(High Availability)基本原理由多个Hive实例进行管理的,这些Hive实例被纳入到一个资源池中,并由HAProxy提供一个统一的对外接口Impala简介查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase上的PB级大数据,在性能上比Hive高出3~30倍运行依赖Hive的元数据参照 Dremel系统设计采用了与商用并行关系数据库类似的分布式查询引擎,可直接与HDFS和HBase进行交互查和Hive采用相同的SQL语法、ODBC驱动程序和用户接口系统架构ImpaladState StoreCLI查询执行过程0 注册&订阅1 提交查询2 获取元数据与数据地址3 分发任务4 汇聚结果5 返回结果与Hive的比较区别相同总结实践
本文由MindMaster用户 - 发布,不代表亿图软件立场,如转载,请注明出处:https://mm.edrawsoft.cn/community/
立即使用
分享 |
收藏
|
2

相关模板推荐

《骆驼祥子》思维导图 中小学必读名著之《骆驼祥子》思维导图
《骆驼祥子》思维导图
16204 134
MindMaster 免费
《稻草人》读书笔记 中小学必读文章之《稻草人》读书笔记,一起来看下吧!
《稻草人》读书笔记
1748 4
MindMaster 免费
《西游记》思维导图 中小学必读书目《西游记》思维导图,一起来看一下吧!
《西游记》思维导图
5016 64
MindMaster 免费
查看全部模板专题
  • 5大数据技术原理与应用 —— 作品大纲

    • 大数据概述
      • 时代
        • 第三次信息浪潮:云计算、物联网、大数据 2010
          • 第一次信息浪潮:个人计算机 1980第二次信息浪潮:互联网 1995
          • 技术支撑
            • 存储
              • 容量增加
                • 个人、企业数据越来越多
              • CPU处理能力提升
                • 4c 8c 16c…
              • 网络带宽不断增加
                • 2M 10M 100M
            • 计算
            • 网络
          • 数据产生的方式
            • 运营式系统阶段
            • 用户原创内容阶段
            • 感知式系统阶段
      • 概念、影响
        • 特性:4V
          • volume 大量化
            • 数据摩尔定律
            • 数据类型:10%结构化数据、90%非结构化数据
              • 结构化:非结构化:图像图形
          • variety 多样化
            • web 1.0:文本、图像、视频
            • web 2.0:查询日志/点击流、wiki、twitter
            • 企业应用:email、文档文件;应用日志;交易记录
            • 科学研究:基因组;LHC加入器;地球与空间探索
          • velocity 快速化
            • eg:Google Dremel
              • 相关分析http://www.yankay.com/google-dremel-rationale/
          • value 价值密度低
            • 商业价值高
        • 影响
          • 科学:第四范式,实验-理论-计算-数据
            • jim gray提出,第三个图灵获得者
          • 思维模式改变:全样而非抽样;效率而非精确;相关而非因果。
      • 应用
        • eg:拍电视剧、google预测流感
      • 关键技术&模式
        • 技术层面
          • 基础架构支持
            • 云计算平台
            • 云存储
            • 虚拟化
            • 网络技术
            • 资源监控技术
          • 数据采集
            • 利用ETL工具将分布的、异构数据源中的数据如关系数据、平面数据文件等,抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础;或者也可以把实时采集的数据作为流计算系统的输入,进行实时处理分析。
            • 数据总线
            • ETL工具
          • *数据存储和管理
            • 利用分布式文件系统、数据仓库、关系数据库、NoSQL数据库、云数据库等,实现对结构化、半结构化和非结构化海量数据的存储和管理。
            • 分布式存储
              • 解决海量数据存储问题
              • 分布式数据库big table
              • 分布式文件系统GFS
          • *数据处理与分析
            • 分布式处理
              • 分布式并行处理技术MapReduce
          • 数据隐私与安全
        • 2大核心技术
          • 分布式存储
            • GFS\HDFSBigTable\HBaseNoSQL(键值、列族、图形、文档数据库)NewSQL(如:SQL Azure)
          • 分布式处理
            • MapReduce
        • 计算模式
          • 批处理计算
            • 批量处理
            • MapReduce
            • Spark
          • 流计算
            • 实时处理
            • S4
            • Storm
            • Flume
          • 图计算
            • Pregel (google )
          • 查询分析计算
            • Dremel(google )
            • Hive
            • Cassandra
            • Impala
        • 数据库
          • RDBMS 关系型数据库
            • MySQL、Oracle、DB2、SQL sever…
            • 关系型数据库 全是表
          • NoSQL 非关系型数据库
      • 大数据、云计算、物联网关系
        • 云计算
          • 关键技术
            • 虚拟化
              • Linux:hadoop
              • Windows:虚拟机
              • 硬件
            • 分布式存储
            • 分布式计算
            • 多租户
          • 3种模式
            • 公有云
              • eg:百度云
            • 私有云
              • eg 电信、联通
            • 混合云
          • 3种云服务
            • Iaas
              • aws:EC2;salesforce
            • Paas
              • sina app engine
            • Saas
          • 数据中心
            • 冷、电力丰富;地质结构稳定;凉爽舒适。
          • 应用
            • 政务云、教育云、医疗云、中小企业云
        • 物联网
          • 概念
            • 应用层
            • 处理层
            • 网络层
            • 感知层
          • 技术
            • 识别与感知(二维码、RFID等)
            • 网络与通信
            • 数据挖掘与融合
        • 联系
          • 云计算为大数据提供了技术基础 大数据为云计算提供用武之地
          • 云计算为物联网提供海量数据存储能力 物联网为云计算技术提供了广阔的应用空间
          • 物联网是大数据的重要来源 大数据技术为物联网数据分析提供支撑
    • 大数据处理架构Hadoop
      • 概述
        • 简介
          • Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。
          • 是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中
          • 被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力
          • 2大核心
            • HDFS:Hadoop Distributed File System
            • MapReduce
        • 发展简史
          • 源自始于2002年的Apache Nutch项目
            • Hadoop最初是由Apache Lucene项目的创始人Doug Cutting开发的文本搜索库。Hadoop源自始于2002年的Apache Nutch项目——一个开源的网络搜索引擎并且也是Lucene项目的一部分.• 在2004年,Nutch项目也模仿GFS开发了自己的分布式文件系统NDFS(Nutch Distributed File System),也就是HDFS的前身• 2004年,谷歌公司又发表了另一篇具有深远影响的论文,阐述了MapReduce分布式编程思想• 2005年,Nutch开源实现了谷歌的MapReduce• 到了2006年2月,Nutch中的NDFS和MapReduce开始独立出来,成为Lucene项目的一个子项目,称为Hadoop,同时,Doug Cutting加盟雅虎• 2008年1月,Hadoop正式成为Apache顶级项目,Hadoop也逐渐开始被雅虎之外的其他公司使用• 2008年4月,Hadoop打破世界纪录,成为最快排序1TB数据的系统,它采用一个由910个节点构成的集群进行运算,排序时间只用了209秒•在2009年5月,Hadoop更是把1TB数据排序时间缩短到62秒。Hadoop从此名声大震,迅速发展成为大数据时代最具影响力的开源分布式开发平台,并成为事实上的大数据处理标准.
        • 特性
          • 高可靠性
          • 高效性
          • 高可扩展性
          • 高容错性
          • 成本低
          • 运行在Linux平台上
          • 支持多种编程语言
        • 应用现状
          • 互联网领域是其应用的主阵地
            • • 2007年,雅虎在Sunnyvale总部建立了M45——一个包含了4000个处理器和1.5PB容量的Hadoop集群系统• Facebook作为全球知名的社交网站,Hadoop是非常理想的选择,Facebook主要将Hadoop平台用于日志处理、推荐系统和数据仓库等方面• 国内采用Hadoop的公司主要有百度、淘宝、网易、华为、中国移动等,其中,淘宝的Hadoop集群比较大
        • Apache Hadoop版本演变
          • Hadoop 1.0
            • 0.20.x
              • 最后演化成1.0.x
            • 0.21.x
            • 0.22.x
          • Hadoop 2.0
            • •第二代Hadoop包含2个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统,相比于0.23.x,2.x 增加了NameNode HA和Wire-compatibility两个重大特性
            • 0.23.x
            • 2.x
        • Hadoop各种版本
          • 选择 Hadoop版本的考虑因素:•是否开源(即是否免费)•是否有稳定版•是否经实践检验•是否有强大的社区支持
          • Apache Hadoop
          • Hortonworks
          • Cloudera(CDH:Cloudera Distribution Hadoop)
          • MapR
      • 包括
        • HDFS 分布式文件系统MapReduce 分布式并行编程模型YARN 资源管理和调度器Tez 运行在YARN之上的下一代Hadoop查询处理框架Hive Hadoop上的数据仓库HBase Hadoop上的非关系型的分布式数据库Pig 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig LatinSqoop 用于在Hadoop与传统数据库之间进行数据传递Oozie Hadoop上的工作流管理系统Zookeeper 提供分布式协调一致性服务Storm 流计算框架Flume 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统Ambari Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控Kafka 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据Spark 类似于Hadoop MapReduce的通用并行框架
        • HDFS:存储数据
          • Hadoop Distributed File System分布式文件系统
        • MapReduce:处理数据
        • Hbase:分布式数据库
      • 项目结构
        • YARN 资源管理和调度器
        • Tez 运行在YARN之上的下一代Hadoop查询处理框架
        • HBase Hadoop上的非关系型的分布式数据库
        • Pig 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin
        • Sqoop 用于在Hadoop与传统数据库之间进行数据传递
        • Oozie Hadoop上的工作流管理系统
        • Zookeeper 提供分布式协调一致性服务
        • Storm 流计算框架
        • Flume 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
        • Ambari Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控
        • Kafka 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据
        • Spark 类似于Hadoop MapReduce的通用并行框架
      • 安装与使用
      • 集群的安装与使用
    • 分布式文件系统HDFS
      • 解决分布式存储问题
      • 简介
        • 集群
          • HDFS把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群。
        • 物理结构
          • 分布式文件系统在物理结构上是由计算机集群中的多个节点构成的.
          • 主节点Master Node/名称节点NameNode
          • 从节点Slave Node/数据节点DataNode
        • 目标
          • 兼容廉价的硬件设备
          • 流数据读写
          • 大数据集
          • 简单的文件模型
          • 强大的跨平台兼容性
        • 局限性
          • 不适合低延迟数据访问
          • 无法高效存储大量小文件
          • 不支持多用户写入及任意修改文件
      • 概念
          • HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位块的大小远远大于普通文件系统,可以最小化寻址开销。
          • 大小
            • 一个块64MB
              • why64兆?支持大规模存储。降低分布式节点的寻址开销。 是不是越大越好?MR以块为单位处理数据,如果块过大,会导致MapReduce就一两个任务在执行,牺牲的MR并行度,没能体现分布式并行处理效果。
          • 优点
            • 支持大规模文件存储
              • 文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上。因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量。
            • 简化系统设计
              • 首先,大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理元数据。
            • 适合数据备份
              • 每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性
        • 2大组件
          • 主节点/名称节点
            • 相当于一个数据目录。 存储元数据;元数据保存在内存中;保存文件,block、DataNode之间映射关系。 名称节点(NameNode)负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构,即FsImage和EditLog.
            • 数据结构
              • Fslmage:用于维护文件系统树以及文件树中所有的文件和文件夹的元数据。
                • •FsImage文件包含文件系统中所有目录和文件inode的序列化形式。每个inode是一个文件或目录的元数据的内部表示,并包含此类信息:文件的复制等级、修改和访问时间、访问权限、块大小以及组成文件的块。对于目录,则存储修改时间、权限和配额元数据。 •FsImage文件没有记录块存储在哪个数据节点。而是由名称节点把这些映射保留在内存中,当数据节点加入HDFS集群时,数据节点会把自己所包含的块列表告知给名称节点,此后会定期执行这种告知操作,以确保名称节点的块映射是最新的。
              • EditLog:记录了所有针对文件的创建、删除、重命名等操作。
            • 第二名称节点SecondaryNameNode
              • 名称节点的冷备份
              • 对Editlog处理
          • 从节点/数据节点
            • 存储实际数据。(文件内容)文件内容存储在磁盘里;维护了blockID到DataNode本地文件的映射关系。 数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表。 每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中。
      • 体系结构
        • 命名空间
          • 目录
          • 文件
        • 通信协议
          • 构建在TCP/IP协议基础之上的