
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式编程开发是目前大多数软件开发程序员都在学习和使用的一种架构开发方式,今天我们就通过案例分析来简单了解一下,Hadoop分布式架构基础知识分享。
1.Hadoop1.0自身有哪些缺陷呢?
解:从两个大的方面来说,HDFS和MapReduce。
HDFS:
1)NameNode中的单点故障问题。
针对Hadoop1.0中HDFS单点故障进行以下解释:
HDFS仿照googleGFS实现的分布式存储系统,由NameNode和DataNode两种服务组成,其中NameNode是存储了元数据信息(fsimage)和操作日志(edits),由于它是的,其可用性直接决定了整个存储系统的可用性。因为客户端对HDFS的读、写操作之前都要访问namenode服务器,客户端只有从namenode获取元数据之后才能继续进行读、写。一旦NameNode出现故障,将影响整个存储系统的使用。
这里需要提到一点,在Hadoop架构的初略总结(2)中提到的SecondaryNameNode,其作用合并NameNode节点中的fsimage和edits。SecondaryNameNode从NameNode中通过网络拷贝一份fsimage(元数据信息)与edits(操作日志)到自己进程的那一块,然后将fsimage与edits进行合并,生成新的fsimage,并将新生成的fsimage推送到NameNode节点中一份,并将NameNode中edits的内容进行清空。
2)不能进行大量的小文件存取(占用namenode大量内存,浪费磁盘空间)扩展性差。也就是说,Hadoop1.0单NameNode制约HDFS扩展性,因为NameNode含有我们用户存储文件的全部的元数据信息,当我们的NameNode无法在内存中加载全部元数据信息的时候,集群的寿命就到头了,NameNode内存大小限制了从节点的个数,大体为4000个节点个数。
3)其它缺陷:HDFS中的权限设计不够彻底,即HDFS的数据隔离性不是很好;数据丢失问题,访问效率问题。
改进:略。(了解了一下,看不懂,暂且略过吧,现阶段这不是重点)
MapReduce:
1)扩展性:集群大节点数4000(也就是4000节点主机上线);大并发任务数40000。
2)可用性,可靠性:JobTracker同时管理作业的调度和计算,在Hadoop1.0中,假设有100个作业,根据Hadoop访问和更新的特性,批处理,一次写入多次读写,JobTracker会同时管理这100个作业,负担太重。其次,存在单点故障,一旦故障,所有执行的任务全部失败。
3)批处理模式,时效低:仅仅使用MapReduce一种计算方式。
4)其他缺陷:低效的资源管理。在Hadoop1.0中不支持多框架。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。