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

更换空间对网站的影响网站的建设和编程

更换空间对网站的影响,网站的建设和编程,晋中住房保障和城乡建设局网站,越秀低价网站建设转载自 HDFS的诞生 1牛刀小试 张大胖找了个实习的工作#xff0c; 第一天上班Bill师傅给他分了个活儿#xff1a;日志分析。张大胖拿到了师傅给的日志文件#xff0c;大概有几十兆#xff0c;打开一看#xff0c; 每一行都长得差不多#xff0c;类似这样#xff1a;212.…转载自 HDFS的诞生 1牛刀小试 张大胖找了个实习的工作 第一天上班Bill师傅给他分了个活儿日志分析。张大胖拿到了师傅给的日志文件大概有几十兆打开一看 每一行都长得差不多类似这样212.86.142.33 – - [20/Mar/2017:10:21:41 0800] “GET / HTTP/1.1″ 200 986 “http://www.baidu.com/” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; )张大胖知道这些日志都是Web服务器产生的里边包含了像客户端IP, 访问时间 请求的URL请求处理的状态 referer, User Agent等信息。师傅说你想个办法统计一天之内每个页面的访问量(PV)独立的IP数 还有用户最喜欢搜索的前10个关键字。张大胖心说这简单啊我用Linux上的cat,awk等小工具就能做出来 不过还是正式一点用我最喜欢的Python写个程序吧把每一行文本分割成一个个字段然后分分组、计算一下不就得了。慢着 这样一来这个程序就只能干这些事儿不太灵活扩展性不太好。要不把分割好的字段写入数据库表  比如access_log(id,ip,timestamp,url, status,referer, user_agent) 这样就能利用数据库的group 功能和count功能了sql多强大啊 想怎么处理就怎么处理。对就这么办半天以后张大胖就把这个程序给搞定了还画了一个架构图展示给了师傅。师傅一看“不错嘛思路很清晰还考虑到了扩展性可以应对以后更多的需求。”于是这个小工具就这么用了起来。张大胖毕业以后也顺利地加入了这家公司。 2分布式 互联网尤其是移动互联网发展得极快公司网站的用户量暴增访问量也水涨船高日志量也很感人每小时都能产生好几个G张大胖实习期间“引以为傲”的小程序没法再用了数据库根本就放不下啊。不仅数据库放不下在Web服务器上也放不下了更不用说去做分析了。张大胖主动请缨打算搞定这个问题。 当然他也很聪明地把经验丰富的师傅Bill给拉上了。两个人来到会议室开始了讨论。张大胖先算了一笔账如果是一台机器一个硬盘读取速度是75M/s  那需要花费10多天才能读取100T的内容。 但是如果是有100个硬盘 并行的读取速度就能达到75G/s  , 几十分钟就可以把100T的数据给读出来了多快啊。他对Bill说道“看来只有分布式存储才能拯救了。多来几台机器吧把log1, log2,log3...这些文件存放在不同的机器上。”师傅Bill说道“你想得太简单了分布式可不是简单地添加机器 机器的硬盘坏了怎么办日志文件是不是就丢失了 热门文件怎么办 访问量特别大那对应的机器负载就特别高 这样不公平啊张大胖说道“第一个问题好办我可以做备份啊把每个文件都存三个备份。这样坏的可能性就大大降低了。你说的第二个问题我们的日志哪有什么热门文件”“要考虑下通用性嘛将来你这个分布式的文件系统可以处理别的东西啊。”“好吧 我可以被文件切成小块让他们分散在各个机器上这就行了吧。 备份的时候把每个小块都备份三份就解决问题了。”备注三份是最低要求“那问题就来了我们该怎么使用呢 客户端总不能说把文件的第一块从服务器1上取出来第二块从服务器4上取出来第三块从服务器2上取出来.....   再说客户端保留这些‘乱七八糟’的信息该多烦人啊。”  Bill提出的问题很致命。“这个......” 张大胖思考了半天 “看来还得做抽象啊我的分布式文件系统得提供一个抽象层让文件分块对客户端保持透明 客户端根本不必知道文件是怎么分块的分块后存放在什么服务器上。他们只需要知道一个文件的路径/logs/log1就可以读写了细节不用操心。”“不错看来你已经Get到了一定要通过抽象给客户端提供一个简单的视图尽可能让他们像访问本地文件一样来使用” Bill 立刻做了升华。“不过”张大胖突然想到一个问题“这样的分布式文件系统似乎只适合在文件末尾不断地对追加内容如果是想随机地读写比如定位到某个位置然后写入新的数据就很麻烦了。”“这也没办法事物总是有利有弊现在的系统就是适合一次写入多次读取的场景。” 3元数据 “不过 ”Bill 接着说“文件被分成了哪些块这些块都放在什么服务器上系统有哪些服务器服务器上都多大空间这些都是Metadata 你得专门找个服务器存储起来我们把这个服务器叫做Metadata节点如何或者简单一点叫做NameNode吧类似于整个系统的大管家。 ”“好 我们把那些储存数据的服务器叫做Data节点(DataNode)吧这样就区分开了。我可以写一个客户端让大家使用这个客户端通过查询NameNode定位到文件的分块和存储位置这样大家就可以读写了”Bill在白板上画了一张图展示了当前的设计“绿色虚线的意思是数据的读写流 对吧 但是橙色的虚线是什么鬼” 张大胖问道。“你想想这么一种情况如果某个Datanode 的机器挂掉了它上面的所有文件分块都无法读写了这时候Namenode如何才能知道呢 还有如果某个Datanode所在机器的磁盘空间不足了是不是也得让Namenode这个大管家知道”“奥Datanode和Namenode 之间需要定期的通信 这就麻烦了我还得特别为他们设计一个通信协议啊” 张大胖有点沮丧。“分布式系统就是这样有很多挑战机器坏掉网络断掉..... 你想在普通的、廉价的机器上实现高可靠性是很难的一件事情。”4读取文件 “我们再细化下读写的流程吧” Bill 提议。“我觉得挺简单啊比如去读取一个文件客户端只需把文件名告诉Namenode 让Namenode把所有数据都返回不就行了这样客户端对Datanode保持透明不错吧”Bill严肃地摇了摇头“不行 如果所有的数据流都经过Namenode 它会成为瓶颈的 无法支持多个客户端的并发访问 记住我们要处理的可是TB, 乃至PB级别的数据啊。”“对对我没有深入考虑啊” 张大胖感慨姜还是老的辣赶紧换个思路 “要不这样读取文件的时候Namenode只返回文件的分块以及该分块所在的Datanode列表 这样我们的客户端就可以选择一个Datanode来读取文件了。”“但是一个分块有3个备份到底选哪个 ” Bill问道“肯定是最近的那个了嗯怎么定义远近呢”  张大胖犯难了。“我们可以定义一个‘距离’的概念。 ” Bill 说道。客户端和Datanode是同一个机器   距离为0  表示最近客户端和Datanode是同一个机架的不同机器   距离为2 稍微远一点客户端和Datanode位于同一个数据中心的不同机架上 距离为4 更远一点“没想到分布式系统这么难搞比我实习做的那个程序难度提高了好几个数量级”话虽这么说张大胖还是画了一个读取文件的流程图注图中只画出了一个分块的读取对文件其他分块的读取还会持续进行5写入文件 “写入文件也类似” 张大胖打算趁热打铁“让Namenode 找到可以写数据的三个Datanode返回给我们的客户端客户端就可以向这三个Datanode 发起写的操作了”“假设你有个10G的文件难道让客户端向Datanode写入3次使用30G的流量吗”  Bill马上提了一个关键的问题。“不这么做还能怎么办 我们要保存多个备份啊”“有个解决办法我们可以把三个Datanode 组成一个Pipline(管道) 我们只把数据发给第一个Datanode, 让数据在这个管道内‘流动’起来 第一个Datanode发个备份给第二个 第二个发同样的备份给第三个。”注实际的文件写入比较复杂有更多细节 这里只是重点展示pipeline“有点意思客户端只发出一次写的请求数据的复制由我们的Datanode合作搞定。” 张大胖深为佩服师傅Bill的脑子就是好使啊。“还有啊”Bill说道“咱们的设计中Namenode这个大管家有单点失败的风险我们最好还是做一个备份的节点。”张大胖深表赞同。 6结束开始 “我们给这个系统起个名字吧叫Distrubted File System简称DFS怎么样” 张大胖说。“俗太俗叫Hadoop吧这是我儿子玩具象的名称。嗯还是叫Hadoop Distributed File System HDFS。”   Bill 的提议出乎张大胖意料。“行吧我们有了HDFS可以存储海量的日志了我就可以写个程序去读取这些文件统计各种各样的用户访问了。”“你打算把你的程序放到哪里”“自然是放在HDFS之外的某个机器上然后通过HDFS 客户端去访问数据啊”“100T的数据从HDFS的众多机器中读取出来在一台机器上处理 这得多慢啊 我们要考虑把计算也做成分布式的并且让计算程序尽可能地靠近数据这样就快了”“分布式计算”“没错听说过Mapreduce 没有”张大胖摇了摇头“这是什么鬼”“我们下次再聊吧”后记这篇文章介绍了HDFS的一些关键设计理念已经属于非常简化的情况了没有考虑数据的完整性节点失效等更多细节。
http://www.huolong8.cn/news/152859/

相关文章:

  • 网站开发有哪些公司建站外贸网站建设
  • 英铭科技做网站和设计制作更专业网店推广怎么做
  • 网站制作的流程有哪些个人网站欣赏的网站
  • 陕西省建设建设监理协会网站东莞网站设计制作
  • 怎么用flash做视频网站筑建网官网首页
  • 网站建设要后台吗查企业企业网站有哪些
  • 网站建设工程师职责说明书企业网站建设小技巧有哪些
  • 织梦添加网站名称添加新变量我的网站别人给黑链 攻击
  • 开网站公司西安seo经理
  • 网站空间哪里的好南通网站建设规划书
  • 深圳网站优化运营网站扁平化设计
  • 淄博建设公司网站短视频seo服务
  • 泊头西环网站建设wordpress用户登录后
  • 网站域名查询系统英文网站怎么做
  • 美容设计网站建设设计师网名怎么取才艺术
  • 建设博客网站公司常见八大职能部门
  • 网站分析报告怎么写怎么搭建自己的服务器
  • 什么是网站标题俄语网站推广通
  • 电子商务网站建设与管理理解网站源码程序下载
  • 贵阳免费做网站班级网站设计
  • 昆明网站建设公司_wordpress 统计2次
  • 做网站费用怎么付做网站图片显示不来
  • 南昌互联网网站开发河北住房和城乡建设网站
  • 哈尔滨网站建设培训学校企业的网站开发费用如何入账
  • 视频网站如何做引流网站的标签
  • access数据库网站校园二手用品网站建设的项目章程
  • 临沂网站建设排名阿里云怎么建设网站
  • 网站开发一般流程麦包包网站建设的特点
  • 网站建设方案书范本做网站需要什么步骤
  • 网站seo优化排名用户浏览网站的习惯