您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > namenode和HDFS的机制以及原理课件
Namenode和HDFS的机制以及原理2017-04-15尹相文QQ:806627666东方国信学院2提纲Hadoop分布式系统基础架构一二Hadoop核心组件——HDFS四HDFS架构三HDFS文件写入过程五Hadoop生态系统东方国信学院3BIGDATA:一切都是数据东方国信学院4大数据就是资本-究竟什么是大数据?ERP/CRMPetabytesBigData付款薪资货存销售管道数字市场联系人搜索引擎订单跟踪网上推荐广告移动协作电子商务网页点击流Wikis/博客传感器/RFID/设备社交网络音频/视频空间地理位置气候文本/图像Web日志Various东方国信学院5大数据的技术挑战每天几百GB、几TB的数据,且持续增长中,如何构建集中的数据存储系统如何从海量数据中挖掘出隐藏的巨大商业价值如何快速构建并且保证数据系统的安全简便可用存储分析管理东方国信学院6传统RDBMS处理大数据的局限性• 容量– 100GB~100TB• 速度• 成本– 高端设备的价格超过线性增加比例– 软件按年收取授权费或技术支持费• 代码复杂度– 分表、分库– 跨库之间的数据一致性• 数据类型– 结构化:表结构预定义,每行的列都一样– 强类型:对blob以及文件的处理,在时间和空间上效率都不高东方国信学院7DISTRIBUTEDFILESYSTEM•数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。•是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。•通透性。让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。•容错。即使系统中有某些节点脱机,整体来说系统仍然可以持续运作而不会有数据损失。•分布式文件管理系统很多,hdfs只是其中一种,不合适小文件。东方国信学院8• Hadoop是Apache开源软件基金会开发的运行于大规模普通服务器上的用于大数据存储、计算、分析的分布式存储系统和分布式运算框架• Hadoop由两个部分组成– 分布式文件系统HDFS– 分布式运算框架MapReduce• Hadoop这个单词是什么意思?– 它是作者儿子的一个毛绒玩具小象的名字东方国信学院9Google论文与Apache项目东方国信学院10HADOOP迈向主流市场东方国信学院11HADOOP生态系统组件东方国信学院12大数据平台架构分布式文件存储HDFS离线批处理MapReduce分布式计算框架YARN实时计算Storm批量数据采集Sqoop/FTP日志收集Flume-NG网络爬虫Nutch数据挖掘MahoutSparkSQLSparkStreamingGraphyXMLlib内存计算SparkNoSql数据库HBase分布式数据库MongoDB消息队列Kafka可视化分析工具可视化分析应用即席查询报表图形展示交互式探索专题分析实时分析数据仓库Hive脚本语言Pig数据采集存储计算数据应用数据收集ChukwaK-V数据库RedisNoSQL数据库Cassandra全文检索Lucene/Solr工作流Oozie/Azkaban元数据HCatalog一致性服务Zookeeper全文搜索ElasticSearch东方国信学院13使用的HADOOP生态系统组件◇Hadoop2.3.0基础计算框架◇Hive离线数据分析95%任务◇Pig离线数据分析◇HBase用户账单数据查询◇Mahout数据挖掘,推荐系统,分类,聚类东方国信学院14案例解析:某通讯公司数据平台•关于我们:Ø集群接收日志超过20TB/天(压缩后)Ø4W+任务/日Ø任务数据吞吐30TB+/天,离线数据分析Ø集群规模1300个节点,空间25PB•我们做的:Ø常规运营数据分析Ø大规模数据查询Ø数据挖掘和用户精分Ø推荐系统Ø用户按地域收入年龄性别收入层次划分Ø用户画像东方国信学院15东方国信东方国信学院HADOOP核心组件——HDFSØHDFS是基于本地文件系统之上的文件系统Ø分布式存储数据(多节点、多磁盘),并提供数据冗余备份ØHDFS采用的是Master-Slave模式,主master(NameNode)来协调存储元数据(metadata)东方国信学院17HDFS简介•HDFS为了做到可靠性(reliability)创建了多份数据块(datablocks)的复制(replicas),并将它们放置在服务器群的计算节点中(computenodes),MapReduce就可以在它们所在的节点上处理这些数据了。东方国信学院18HDFS适合做什么?123存储并管理PB级数据处理非结构化数据注重数据处理的吞吐量(latency不敏感)4应用模式为:write-once-read-many存取模式东方国信学院19HDFS不适合做什么?123存储小文件(不建议使用)大量的随机读(不建议使用)需要对文件的修改(不支持)东方国信学院20HDFS文件•文件切分成块(默认大小64M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3)•NameNode是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表以及块所在的DataNode等等•DataNode在本地文件系统存储文件块数据,以及块数据的校验东方国信学院21BLOCK的副本放置策略☆HDFS默认副本数:3☆第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点☆第二个副本:放置在于第一个副本不同的机架的节点上☆第三个副本:与第二个副本相同集群的节点☆更多副本:随机节点东方国信学院22HDFS块(BLOCK)机架分布Rack1Rack2NNmeta-foo.barblk1,blk2,blk3,blk4,blk5DN1blk1,blk2,blk5DN2blk3,blk4,blk5DN3DN4DN5blk1,blk3,blk5blk1,blk4,blk2blk2,blk4,blk3东方国信学院23HDFS主要组件的功能NameNodeDataNode•存储元数据•存储文件内容•元数据保存在内存中•文件内容保存在磁盘•保存文件,block,datanode之间的映射关系•维护了blockid到datanode本地文件的映射关系东方国信学院24NAMENODE•Namenode是一个中心服务器,单一节点,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问•文件操作,NameNode负责文件元数据的操作,DataNode负责处理文件内容的读写请求,数据流不经过NameNode,只会询问它跟那个DataNode联系东方国信学院25NAMENODEØ是整个文件系统的管理节点。Ø它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。Ø接收用户的操作请求。文件包括:fsimage:元数据镜像文件。存储某一时段NameNode内存元数据(文件owership和permissions;文件包含哪些块;Block保存在哪个DataNode)信息。edits:操作日志文件。fstime:保存最近一次checkpoint的时间以上这些文件是保存在linux的文件系统中东方国信学院26NAMENODE(NN)Block存储结构metadata物理存储结构东方国信学院27SECONDARYNAMENODE•HA的一个解决方案。但不支持热备。配置即可。•执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage.•默认在安装在NameNode节点上,但这样...不安全!东方国信学院28什么时候CHECKPIONTfs.checkpoint.period:指定两次checkpoint的最大时间间隔,默认3600秒。fs.checkpoint.size:规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。东方国信学院29DATANODE•一个数据块在DataNode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳•DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。•心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。•集群运行中可以安全加入和退出一些机器东方国信学院30DATANODE•保存Block•启动DN线程的时候会向NN汇报block信息•通过向NN发送心跳保持与其联系(3秒一次),如果NN10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN东方国信学院31HDFS文件权限与Linux文件权限类似r:read;w:write;x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsanHDFS的权限目的:阻止好人做错事,而不是阻止坏人做坏事。HDFS相信,你告诉我你是谁,我就认为你是谁东方国信学院32访问HDFS的几种方式命令行:通过命令行访问HDFSJavaAPI:通过Java代码访问HDFSWebHDFS:通过WebHDFSRESTAPI可以对hdfs进行读写等访问Fuse:把HDFS当成标准文件系统进行挂载东方国信学院33HDFS开发常用命令创建一个文件夹?上传一个文件?删除一个文件和文件夹?查看一个文件夹里面有哪些文件?查看某个文件的内容?移动文件或文件夹详见官网:东方国信学院34HDFS常用命令HDFS命令基本格式:Hadoopfs-cmdargsls命令hadoopfs-ls/列出hdfs文件系统根目录下的目录和文件hadoopfs-ls-R/递归列出hdfs文件系统所有的目录和文件put命令hadoopfs-putlocalfilehdfsfile本地文件上传到HDFShadoopfs-putlocalfileordir...hdfsdir多个本地文件或目录上传到HDFSmoveFromLocal命令hadoopfs-moveFromLocallocalsrc...hdfsdst与put相类似,命令执行后源文件localsrc被删除,也可以从从键盘读取输入到hdfsfile中copyFromLocal命令hadoopfs-copyFromLocallocalsrc...hdfsdst与put相类似,也可以从从键盘读取输入到hdfsfile中东方国信学院35HDFS常用命令get命令hadoopfs-gethdfsfilelocalfileordirlocalfile不能和hdfsfile名字不能相同,否则会提示文件已存在,没有重名的文件会复制到本地hadoopfs-gethdfsfileordir...localdir拷贝多个文件或目录到本地时,本地要为文件夹路径copyToLocal命令hadoopfs-copyToLocallocalsrc...hdfsdst与get相类似rm命令hadoopfs-rmhdfsfile...hadoopfs-rm-rhdfsdi
本文标题:namenode和HDFS的机制以及原理课件
链接地址:https://www.777doc.com/doc-4304178 .html