您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > 大数据HDFS技术原理与实践
大数据HDFS技术原理与实践技术创新,变革未来2提纲HDFS简介HDFS架构与原理123HDFS程序设计3HDFS简介•发表于2003年10月•HDFS是GFS的克隆版源自于Google的GFS论文•易于扩展的分布式文件系统•运行在大量普通廉价机器上,提供容错机制•为大量用户提供性能不错的文件存取服务HDFS特点4•高容错性–数据自动保存多个副本–副本丢失后,自动恢复•适合批处理–移动计算而非数据–数据位置暴露给计算框架•适合大数据处理–TB、PB级数据–百万规模以上的文件数量–10K+节点规模•流式文件访问–一次性写入,多次读取–保证数据一致性•可构建在廉价机器上–通过多副本提高高可靠性–提供了容错和恢复机制HDFS优点&缺点•不适合低延迟数据访问–比如毫秒级–低延迟与高吞吐率•不适合小文件存取–占用NameNode大量内存–寻道时间超过读取时间•不适合并发写入、文件随机修改–一个文件只能有一个写着–仅支持append5提纲HDFS简介HDFS架构与原理123HDFS程序设计6HDFS设计思想7HDFS架构(1/2)8HDFS架构(2/2)ActiveNameNode•主Master(只有一个)•管理HDFS的名称空间•管理数据块映射信息•配置副本策略•处理客户端读写请求StandbyNameNode•NameNode的热备•定期合并fsimage和fsedits,并推送给NameNode•当ActiveNameNode故障时,快速切换为新的ActiveNameNodeDataNode•Slave(有多个)•存储实际的数据块•执行数据块读写Client•文件切分•与NameNode交互,获取文件位置信息•与DataNode交互,读写数据•管理HDFS•访问HDFS9•文件被切分为固定大小的数据块–默认数据块大小为128MB,可配置–若文件大小不到128MB,则单独存成一个block•为何数据块如此之大–数据传输时间超过寻道时间(高吞吐率)•一个文件存储方式–把大小切分成若干个block,存储到不同节点上–默认情况下每个block有三个副本HDFS数据块(block)10•Block副本放置策略–副本1:同client的节点上–副本2:不同机架上中的节点–副本3:与第二个副本同一机架的另一个节点上–其他副本:随机挑选HDFS副本策略11•文件完整性–CRC32校验–用其他副本取代损坏文件•Heartbeat–Datanode定期向Namenode发送心跳•元数据信息–FSImage(文件系统镜像)、Editlog(操作日志)–多份存储–主备NameNode实时切换HDFS可靠性策略12提纲HDFS简介HDFS架构与原理123HDFS程序设计13HDFSShell命令-概览14•Configuration类–该类的对象封装了配置信息•FileSystem类–文件系统类,可使用该类的方法树对文件/目录进行操作,一般通过FileSytem的静态方法get获得一个文件系统对象•FSDataInputStream和FSDataOutputStream类–HDFS中的输入输出流。分别通过FileSystem的open方法和create方法获得•以上类均来自java包:org.apache.hadoop.fsHDFSJavaAPI
本文标题:大数据HDFS技术原理与实践
链接地址:https://www.777doc.com/doc-3298705 .html