《HDFS海量存储》PPT课件.ppt

上传人:tia****nde 文档编号:12708391 上传时间:2020-05-14 格式:PPT 页数:46 大小:2.83MB
返回 下载 相关 举报
《HDFS海量存储》PPT课件.ppt_第1页
第1页 / 共46页
《HDFS海量存储》PPT课件.ppt_第2页
第2页 / 共46页
《HDFS海量存储》PPT课件.ppt_第3页
第3页 / 共46页
点击查看更多>>
资源描述
第3讲HDFS海量存储,HDFS,TheHadoopDistributedFileSystem(Hadoop分布式文件系统),目录,1、HDFS简介2、HDFS常用操作,通过web了解Hadoop的活动,通过用浏览器和http访问jobtracker所在节点的50030端口监控jobtracker通过用浏览器和http访问namenode所在节点的50070端口监控集群,http:/192.168.0.2:50030/jobtracker.jsp,http:/192.168.0.2:50070/dfshealth.jsp,观看日志,HDFS主要用途,提供分布式存储机制,提供可线性增长的海量存储能力任何节点操作都可以自动数据冗余,无须使用Raid,无须另行备份为进一步分析计算提供数据基础,HDFS设计基础与目标,硬件错误是常态。因此需要冗余流式数据访问。即数据批量读取而非随机读写,Hadoop擅长做的是数据分析而不是事务处理大规模数据集简单一致性模型。为了降低系统复杂度,对文件采用一次性写多次读的逻辑设计,即是文件一经写入,关闭,就再也不能修改程序采用数据就近原则分配节点执行,在HDFS的主从结构中,有两类节点namenode和datanode。他们以管理者-工作者模式工作。,HDFS的关键运作机制,命名空间镜像文件(永久),编辑日志文件(永久),也记录着每个文件中各个数据块所在的数据节点信息。(临时记录,数据节点可能会重建),本地化的文件数据块,自身存储的数据块列表,子节点才是HDFS真正的存储和检索地点,如果想在主节点做整个集群数据的索引并检索的话,请考虑可行性,毕竟HDFS不擅长做巨型索引。,客户端(client)代表用户通过与namenode和datanode交互访问整个文件系统。可以是具体程序,也可以是应用。,HDFS的关键运作机制,客户端,交互,客户端提供一个类似POSIX的文件系统接口类似操作系统中的文件界面,所以,用户在编程时,无需知道namenode和datanode也可以实现功能,没有namenode,文件系统会崩溃,文件系统上的所有文件将丢失(无法读出,因为无法定位元数据块的位置,也就无法根据datanode的块来重构文件)。,HDFS的关键运作机制,没有datanode,文件系统不会崩溃,文件系统只是无法存储文件,也不会丢失数据。,备份组成文件系统元数据持久状态的文件。操作方法是在写入本地磁盘的同时,写入一个远程挂载的网络文件系统。,解决方案一,在运行集群时,运行一个辅助namenode,但不能用作namenode,辅助主节点是用来定期通过编辑日志合并命名空间镜像,防止编辑日志过大。主节点失效时数据会部分丢失。,解决方案二,HDFS体系结构,NameNodeDataNode事务日志映像文件SecondaryNameNode,Namenode,管理文件系统的命名空间记录每个文件数据块在各个Datanode上的位置和副本信息协调客户端对文件的访问记录命名空间内的改动或空间本身属性的改动nNamenode使用事务日志记录HDFS元数据的变化。使用映像文件存储文件系统的命名空间,包括文件映射,文件属性等,VERSION文件是javaproperties文件,保存了HDFS的版本号。layoutVersion是一个负整数,保存了HDFS的持续化在硬盘上的数据结构的格式版本号。namespaceID是文件系统的唯一标识符,是在文件系统初次格式化时生成的。cTime此处为0storageType表示此文件夹中保存的是元数据节点的数据结构。fsimage文件,也即命名空间映像文件,是内存中的元数据在硬盘上的checkpoint,它是一种序列化的格式,并不能够在硬盘上直接修改。当文件系统客户端(client)进行写操作时,首先把它记录在修改日志中(editlog),Datanode,负责所在物理节点的存储管理一次写入,多次读取(不修改)文件由数据块组成,典型的块大小是64MB数据块尽量散布道各个节点blk_保存的是HDFS的数据块,其中保存了具体的二进制数据。blk_.meta保存的是数据块的属性信息:版本信息,类型信息,和checksum,读取数据流程,客户端要访问HDFS中的一个文件首先从namenode获得组成这个文件的数据块位置列表根据列表知道存储数据块的datanode访问datanode获取数据Namenode并不参与数据实际传输,读过程图解,写入数据流程,客户端请求namenode创建新文件客户端将数据写入DFSOutputStream建立pipeline依次将目标数据块写入各个datanode,建立多个副本,写过程图解,HDFS的可靠性,冗余副本策略机架策略心跳机制安全模式校验和回收站元数据保护快照机制,冗余副本策略,可以在hdfs-site.xml中设置复制因子指定副本数量所有数据块都有副本Datanode启动时,遍历本地文件系统,产生一份hdfs数据块和本地文件的对应关系列表(blockreport)汇报给namenode,副本因子参数,机架策略,集群一般放在不同机架上,机架间带宽要比机架内带宽要小HDFS的机架感知一般在本机架存放一个副本,在其它机架再存放别的副本,这样可以防止机架失效时丢失数据,也可以提高带宽利用率,RackAware.py,#!/usr/bin/python#-*-coding:UTF-8-*-importsysrack=hadoop-node-31:rack1,hadoop-node-32:rack1,hadoop-node-49:rack2,hadoop-node-50:rack2,hadoop-node-51:rack2,192.168.1.31:rack1,192.168.1.32:rack1,192.168.1.49:rack2,192.168.1.50:rack2,192.168.1.51:rack2,if_name_=_main_:print/+rack.get(sys.argv1,rack0),core-site.xml配置文件,topology.script.file.name/opt/modules/hadoop/hadoop-1.0.3/bin/RackAware.pytopology.script.number.args20然后重启hadoop的namenode和jobtracker,可以在logs里看下namenode和jobtracker的日志,看到机架感知功能已经启用了,心跳机制,Namenode周期性从datanode接收心跳信号和块报告Namenode根据块报告验证元数据没有按时发送心跳的datanode会被标记为宕机,不会再给它任何I/O请求如果datanode失效造成副本数量下降,并且低于预先设置的阈值,namenode会检测出这些数据块,并在合适的时机进行重新复制引发重新复制的原因还包括数据副本本身损坏、磁盘错误,复制因子被增大等,安全模式,Namenode启动时会先经过一个安全模式阶段安全模式阶段不会产生数据写在此阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是安全的在一定比例(可设置)的数据块被确定为安全后,再过若干时间,安全模式结束当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数,校验和,在文件创立时,每个数据块都产生校验和校验和保存在.meta文件内客户端获取数据时可以检查校验和是否相同,从而发现数据块是否损坏如果正在读取的数据块损坏,则可以继续读取其它副本,回收站,删除文件时,其实是放入回收站/trash回收站里的文件可以快速恢复可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块,打开回收站功能,在conf/core-site.xml添加配置:fs.trash.interval10080Numberofminutesbetweentrashcheckpoints.Ifzero,thetrashfeatureisdisabled重启集群,元数据保护,映像文件刚和事务日志是Namenode的核心数据。可以配置为拥有多个副本副本会降低Namenode的处理速度,但增加安全性Namenode依然是单点,如果发生故障要手工切换,快照,支持存储某个时间点的映像,需要时可以使数据重返这个时间点的状态Hadoop目前还不支持快照,已经列入开发计划,传说在Hadoop2.x某版本里讲获得此功能,HDFS文件操作,命令行方式API方式,列出HDFS下的文件,注意,hadoop没有当前目录的概念,也没有cd命令,上传文件到HDFS,数据写在了哪儿(从OS看),将HDFS的文件复制到本地,删除HDFS下的文档,查看HDFS下某个文件的内容,查看HDFS基本统计信息,怎样添加节点?,在新节点安装好hadoop把namenode的有关配置文件复制到该节点修改masters和slaves文件,增加该节点设置ssh免密码进出该节点单独启动该节点上的datanode和tasktracker(hadoop-daemon.shstartdatanode/tasktracker)运行start-balancer.sh进行数据负载均衡是否要重启集群?,启动某些特定后台进程而非所有后台进程,start-all.sh的内容,脚本,负载均衡,作用:当节点出现故障,或新增加节点时,数据块分布可能不均匀,负载均衡可以重新平衡各个datanode上数据块的分布,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!