当前位置: 首页 > news >正文

做电脑系统的网站好天津通信网站建设

做电脑系统的网站好,天津通信网站建设,姑苏区住房建设局网站,做包装盒有哪些网站文章目录 3. 分布式文件系统HDFS3.1 分布式文件系统HDFS简介3.2 HDFS相关概念3.3 HDFS的体系结构3.4 HDFS的存储原理3.5 HDFS数据读写3.5.1 HDFS的读数据过程3.5.2 HDFS的写数据过程 3.6 HDFS编程实战 3. 分布式文件系统HDFS 3.1 分布式文件系统HDFS简介 HDFS就是解决海量数据… 文章目录 3. 分布式文件系统HDFS3.1 分布式文件系统HDFS简介3.2 HDFS相关概念3.3 HDFS的体系结构3.4 HDFS的存储原理3.5 HDFS数据读写3.5.1 HDFS的读数据过程3.5.2 HDFS的写数据过程 3.6 HDFS编程实战 3. 分布式文件系统HDFS 3.1 分布式文件系统HDFS简介 HDFS就是解决海量数据的分布式存储问题 ​ 为什么会出现分布式文件系统 计算机集群基本架构 每个机架由若干个节点构成 机架的内部之间是通过光纤交换机进行连接机架与机架通过带宽更高的光纤交换机进行连接 分布式文件系统的存储结构 主节点存储相关的元数据服务目录存储服务从节点需要完成相关的数据存储任务 HDFS是非常流行的一个分布式存储系统 HDFS实现的目标 兼容廉价的硬件设备实现流数据读写支持大数据集支持简单的文件模型强大的跨平台兼容性基于JAVA语言开发JAVA语言有着良好的跨平台特性 HDFS局限性 不适合低延迟数据访问不能满足实时的处理需求无法高效存储大量小文件因为HDFS是通过元数据指引到客户端的哪个节点找文件这些namenode会被保存到内存中去到内存中检索索引数据结构如果小文件太多这个索引结构会过于庞大在索引结构中搜索的效率会越来越低不支持多用户写入以及任意修改文件 3.2 HDFS相关概念 块的概念 块的大小比普通文件系统大很多普通文件系统可能几字节它可以达到64M或者128M HDFS采用这种抽象的块的概念设计好处为什么要这样设计块 为了支持面向大规模的数据存储对大文件进行切割可以分别存储在不同的数据节点可以突破单机存储的上线简化系统设计通过块设计方便元数据管理块大小固定可以很容易知道一个文件需要几个块进行存储适合数据备份一个块可以冗余的存储到多个不同的节点上同时降低分布式节点的寻址开销访问HDFS数据需要经过三级寻址元数据目录–数据节点–取数据 块是否是设置的越大越好 不是如果块过大会导致MapReduce就一两个任务时在执行完全牺牲了MapReduce的并行度发挥不了分布式并行处理的效果 HDFS的两大组件 名称节点NameNode:整个HDFS集群的管家假如客户端访问一个特别大的文件通过NameNode可以知道这个大文件的每一个块被放置在哪个机器节点之上 数据节点DateNode:负责存储实际数据将数据保存到本地的Linux文件系统中去 元数据的作用 名称节点包含的两大结构FsImage和EditLog FsImage包含内容 注意FsImage不保存块具体在数据节点的位置这个在单独的内存区域维护的 数据节点中加入新数据–向名称节点汇报数据节点中包含哪些块–名称节点构建清单包含各个块的位置分布 HDFS要如何利用NameNode的数据结构 shell命令启动NameNode–将FsImage从后台加载到内存中去和EditLog中的内容进行合并对数据结构的修改记录存储在EditLog中–得到最新元数据–将新版FsImage保留创建空的EditLogEditLog永远保存的是更新操作增量操作然后再将EditLog合并到FsImage中去 但是若是不断的修改操作会使得EditLog不断增加影响整体使用的性能怎么办 引入第二名称节点SecondNameNode: 作为名称节点的冷备份对EditLog的处理 在第一名称节点的EditLog较大时第二名称节点会告诉第一名称节点停止使用EditLog文件并将EditLog写入自己机器 1.此时NameNode会马上停止此时生成edits.new,将新到达的更新写到edits.new中将原来旧的editlog内容由secondNameNode取走 2.SecondNameNode会通过http的get方式将NameNode的FsImage和EditLog都下载到本地然后在SecondNameNode做合并操作得到新的FsImage,然后发送给NameNode 3.NameNode再将Edits.new更改为EditLog:即实现了不断增加的Editlog和FsImage合并又实现了冷备份效果 数据节点存储数据数据节点拿到存储数据的文件目录又将数据保留到各自的linux文件系统中去 3.3 HDFS的体系结构 主节点管家作用从节点数据存储作用 HDFS的命名空间 HDFS的目录访问和普通目录相同都是通过/进行访问 所有的HDFS基于TCP/IP的通信协议不同组件之间的通信协议有差异例如客户端向名称节点发起TCP连接使用客户端协议和名称节点进行交互客户端和数据节点进行交互是通过远程调用RPC来进行实现的 HDFS体系结构的局限性 注意secondNamenode并不能保证集群的可用性 因为secondNameNode是冷备份就是在故障发生时必须停止一段时间慢慢恢复这个恢复的过程会导致整个集群的不可用 如何解决HDFS2.0 ​ 3.4 HDFS的存储原理 冗余数据保存问题 HDFS建立在廉价机器上其缺点是会不停出故障因此以块为单位会将数据进行冗余保存一般情况下一份数据会被保存为3份 有何好处 加快数据传输速度因为假设3个客户端ABC需要访问同一个数据块在冗余数据存储可以使三个客户端并行进行访问 很容易检查数据错误可以通过三个副本之间对照来检查数据是否有误 保证数据可靠性即使有机器down了仍然能保有其他机器是可用的 数据保存策略问题 假设此时有一个块存入 首先创建三个副本假设块是由数据节点1发起的这个副本称为第一副本其则直接将其放在数据节点1上不需要通过网络复制到其他节点上 若是集群外部的某个节点发起了写数据请求HDFS会随机挑选一个磁盘不太满cpu不太忙的节点作为第一副本。 第二副本会放置在和第一个副本不同的机架上 第三副本放置在第一个副本相同机架的其他节点上 若还有其他副本则通过随机算法放置在任意节点上 数据读取问题 数据恢复的问题 名称节点出错 HDFS1.0:会将整个HDFS暂停一段时间即从secondNameNode中进行冷备份恢复一段时间再进行对外服务 HDFS2.0不需要暂停直接热备份 数据节点出错 数据节点会隔一段时间向名称节点发送心跳信息说明其还活着若是名称节点收不到该数据节点的心跳信息说明该数据节点发生故障 名称节点会在该数据节点列表上将其标记为宕机即不可用把存储在这个节点上的数据重新分发到其他的机器上去 当负载不均衡的时候某个节点的负载过重也会将这个节点的数据迁移到其他节点 数据本身出错 客户端读取数据会对它进行校验码校验如果发现校验码不正确说明数据出错 这个校验码是在客户端写入数据时为数据块生成校验码保存在同一个文件目录中去下次读数据块时会对读到的数据进行校验码计算 将计算的校验码和原来得到的校验码进行对比不一致说明发生错误 3.5 HDFS数据读写 3.5.1 HDFS的读数据过程 HDFS的FileSystem的基类会有很有子类继承它而实现不同的功能 FileSystem基本方法open read close 。open创建输入流封装了DFSInputStream, 是专门针对 HDFS的实现create方法创建了FSoutputstream,同样封装了DFSoutputstream FileSystem.get(conf):获得工程目录下的两个配置文件 hdfs-site.xml 和core-site.xml HDFS读数据的整个流程 1.打开文件用FileSystem声明文件对象生成DistributedFileSystem的实例对象创建输入流FSDataInputStream,获取数据块信息与名称节点通过远程过程调用进行沟通 2.获取数据块信息获取读取的数据块被保存在的数据节点位置信息名称节点会把包含这个文件开始部分文件可能包含很多块的数据块位置信息返回 3.客户端获得输入流可以调用read函数读取数据会根据数据节点距离客户端的远近进行排序客户端拿到排序后的数据节点位置列表选择距离客户端最近的数据节点建立连接读数据 将数据从数据节点读取到客户端 5.因为文件可能分为多个块需要读取这个文件其他块的信息通过ClientProtocal.getBlockLocations()查找下一数据块的位置 6.然后又读取该块节点的数据又关闭输入流一直循环直到完成这个文件所有块的读取 7.最后关闭文件 3.5.2 HDFS的写数据过程 1.创建文件请求实例化Distributed FileSystem创建FSDataOutputStream,其内部封装DFSOutputStream,与名称节点打交道 输出流通过远程过程调用rpc,让名称节点在文件系统命名空间中新建一个文件名称节点会检查文件是否存在以及客户端是否有权限创建这个文件若是通过则该名称节点会创建这个文件 3.写入数据 将整个数据分包并将其放入DFSOutputStream的内部队列中去DFSOutputStream向名称节点申请保存这个数据包的数据节点 写入数据包 流水线复制将数据包复制到第一个节点再由第一个节点复制到第二个节点形成流水线复制 5.接受确认包 确认包由最后一个数据节点传到前一个数据节点一直往前传客户端收到确认信息说明全都写完 6.最后关闭文件 3.6 HDFS编程实战 见HDFS编程实践Hadoop3.3.5_厦大数据库实验室博客 (xmu.edu.cn)
http://www.hkea.cn/news/14426411/

相关文章:

  • 自己制作网站视频教程品牌设计概念
  • 长江工程建设局网站php做网站基本流程
  • 选择网站建设公司好淘宝客做网站
  • 做阿里巴巴网站图片尺寸推广一款app的营销方案
  • 做网站的软件wordpress发邮件插件
  • 百度云盘做网站空间wordpress仿谷歌主题
  • 做黄金的分析师网站wordpress ueditor插件
  • 网站建设技术 教材给公司做网站 图片倾权
  • 做贸易把产品放到哪个网站好呢wordpress调用 自定义php
  • php企业网站 源码最有效的线下推广方式
  • 河南中原建设网站微信群全网商城系统
  • 工信部网站备案查询ui设计师网站
  • 做网站去什么公司烟台住房和规划建设局网站
  • 深圳网站制作公司兴田德润官网多少wordpress 页码
  • 国泰君安建设工程官方网站亚马逊seo什么意思
  • 室内环保网站模板代码外贸网站seo怎么做
  • 平台建网站模具外贸营销网站如何做
  • 竞价网站和优化网站的区别大连建站平台
  • 学历网站怎么做怎么分享网站
  • 有区域名和主机怎么做网站湖北外贸网站建设费用
  • 怎么做网站的外部连接SEO做得最好的网站
  • 网站建设公司好背景视频素材下载免费
  • 天猫网站怎么做盛盾科技网站建设
  • 金华做网站建设公司品牌商标注册查询官网
  • 大量网站开发视频 文档VIP资源珠海网站制作费用
  • 上海奉贤 网站建设西安市建设工程交易信息网
  • ui作品集 网站怎么做三亚旅游网
  • 建站的平台天津seo网络优化师
  • 广东工程建设监理协会网站期货交易平台
  • 做百度推广去些网站加客户宿迁人才网