`
samuschen
  • 浏览: 407745 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop启动耗时

阅读更多

http://blog.csdn.net/AE86_FC/archive/2010/08/08/5796622.aspx

背景
    hadoop HDFS 系统 结 构里,namenode一直是一个单点,不管是单点出错还是单点性能方便,都是单点。这一直是HDFS想要达到7 * 24小时服务的最大的阻碍。在hadoop apache社区和仅有的那几家有能力把hadoop用到这种程度的人群里,对这一点的讨论也已经有很多了,有提出分布式namespace的,有提出 namenode单点热备的,有提出分布式mds(参考ceph和lustre)的,大家都为解决namenode的单点想了很多的办法。最近跟 facebook的Dhruba Borthakur(这位仁兄的名字实在是不会念,只好大家都叫他DB同学)讨论中发现,他们的hdfs也碰到了相同的问题,facebook目前拥有全 球最大的hadoop集群,其中就有超过1200个slave节点,存储容量到12PB的HDFS集群,当集群储存的文件 越来越多,block越来越多时,namenode单点的瓶颈就越来越明显。暂且不提由于单点的原因造成对namenode  rpc调用带来的瓶颈(这一点得用更多的篇幅来记录了,相关测试数据 和性能瓶颈分析以后再发好了),光就availability而言,每次集群修改了代码需要升级,或者例行升级,或者发生故障hdfs需要重启的时候,这个问题就凸现出来。

    熟悉namenode内部程序和逻辑的同仁们都知道(呵呵,我说的就是你们,你们懂的),namenode重启时主要耗时的有两个地方:

  1. 对 fsimage的加载,这个中间还包括对 editlog文件,edits.new文件的加载,然后和先前加载的fsimage做merge,最后save fsimage到磁盘的时间。这其中还不排除有secondarynamenode挂掉导致edits log文件变得奇大无比(我碰到的最大的居然有18G!),导致加载fsimage没多久,而load和merge editlog却需要花费几个小时的情况……(提到这个不得不说,以前还真是没有经验,遇到这种情况的时候居然不知道是因为 secondarynamenode挂掉导致的,还以为在上次checkpoint之后对hdfs的操作频繁到能够写18G editlog的程度……)。
  2. 另 外一个大头就是接收所有datanode通过 rpc发送过来的blockReport,这个才是namenode启动时最耗时的地方。因为namenode本身并没有持久化block和 datanode对应的mapping信息,所以namenode里最耗内存的blockMap的结构在启动时需要初始化就必须接收datanode的 blockReport,这个地方就是最耗时,也是最令人头疼,也是yahoo(非中国 )和facebook,以及我司(就是 “我们公司” 的意思,这个词是从一位有着”活百科全书”的神一样的男子那引用来的)的同仁们讨论的最多,想象空间 最大,改造和优化空间最大的地方。



数据
    这里有一组测试数据:

节点数 存储容量 文件和目录数 fsimage加载时间 blockReport时间
1200 12PB 7000 万 10分钟左右 35分钟左右
650 7PB 4500 万 6分钟左右 30分钟左右



    由于测试数据和集群环境并非来自同一个地方,所有稍微有一些出入,但是总体能够看出,基本上影响HDFS 7 * 24 服务,High availability的瓶颈,就在这两个地方了。

分享到:
评论

相关推荐

    macOS编译hadoop-2.8.5

    这将编译Hadoop源代码,并创建所需的可执行文件和库,但跳过了测试阶段,因为编译过程可能会耗时较长。 编译完成后,你可以在`hadoop-2.8.5/dist`目录下找到编译好的Hadoop发行版。将其添加到你的`$PATH`环境变量中...

    hadoop-1.2.1运行WordCount

    注意需要在Hadoop服务未启动的情况下执行此命令。 - 输入提示时,必须输入大写的`Y`来确认操作。 2. **启动Hadoop服务**: - 使用`start-all.sh`脚本启动所有Hadoop守护进程。 #### 四、创建HDFS输入目录 1. **...

    Hadoop集群和单机数据处理的耗时对比实验

    ### Hadoop集群与单机数据处理耗时对比实验分析 #### 一、引言 随着互联网技术的飞速进步和普及,数据量呈现爆炸式增长趋势。这些数据不仅包括传统意义上的结构化数据,还包括大量的非结构化数据,例如网页日志、...

    Ambari部署Hadoop集群.doc

    手工部署不仅耗时且易出错,尤其对于大规模集群,自动化工具显得尤为重要。 Ambari提供了自动化安装、中心化管理和监控功能,极大地提高了集群管理效率。通过其直观的Web界面,用户可以方便地进行集群部署、服务...

    《Hadoop大数据技术与应用》-Hadoop环境搭建.docx

    实验过程中可能会遇到的问题,比如Ubuntu的安装耗时较长,以及对Hadoop操作的不熟悉。解决这些问题的方法是多实践和利用网络资源进行学习。通过搭建和配置Hadoop环境,可以深入理解大数据处理的基础架构,掌握基本的...

    centos-6.7编译成功的hadoop-2.6.4,linux可用

    本压缩包文件"centos-6.7编译成功的hadoop-2.6.4"提供了一个在CentOS 6.7环境下编译好的Hadoop 2.6.4版本,使得用户可以直接使用,无需自行经历耗时的编译过程。 **Linux基础知识** Linux操作系统是基于Unix的操作...

    Hadoop开发日志.pdf

    - 在15台小型集群上进行测试,使用WordCount程序处理1.2GB的日志文件,总耗时2分16秒,展示了Hadoop处理大数据的高效性。 5. **Hadoop环境搭建步骤** - **装机阶段** - 安装Ubuntu 10.10,避免在安装过程中更新...

    基于Hadoop的数据传输方法及系统.pdf

    传统的数据处理方式需要将这些中间数据结果反复在网络中传输,这不仅耗时耗力,还会造成不必要的网络拥堵。通过中间结果文件的实时存储,可以有效地避免此类问题,从而提高数据处理的效率。 索引文件则用于追踪中间...

    hadoop—集群维护手册.doc

    首先,启动和停止Hadoop集群的常用命令是`start-all.sh`和`stop-all.sh`,分别用于启动和停止所有的服务,包括Namenode、Datanode、JobTracker和TaskTracker等。 当需要扩展集群的存储能力时,通常是通过添加新的...

    Hadoop源代码eclipse编译教程

    - 避免从`http://svn.apache.org/repos/asf/hadoop/common`目录下全部checkout,因为该目录包含了很多非源代码文件,可能会导致checkout过程非常耗时。 **目录结构建议**: - 组织目录结构时,最好保持本地目录与...

    hadoop 高可用性HA部署

    1. **NFS备份方案**:通过NFS共享fsimage和editlog文件,当NameNode挂掉时,可以从备份中恢复,但切换过程可能耗时较长。 2. **Secondary NameNode**:辅助NameNode定期合并fsimage和editlog,减少主NameNode的压力...

    支持自动化Hadoop安装部署的研究.pdf

    然而,随着数据量的增大,手动安装和部署Hadoop集群逐渐成为了一个既耗时又容易出错的过程。因此,研究支持自动化安装和部署Hadoop的技术,对于IT行业的快速部署和业务开发具有重要意义。 本文主要探讨了一套支持...

    Hadoop中namenode和secondarynamenode工作机制讲解

    因为每次写操作都更新FSImage会非常耗时,所以Hadoop采用了Edits日志来记录,仅在需要时才合并回FSImage。 当namenode启动时,会按照以下流程进行工作: 1. 如果是第一次启动,它会格式化HDFS并创建FSImage文件...

    hive systemctl启停hiveserver2和metastore服务.pdf

    然而,手动启动和停止Hive的服务,如HiveServer2和Metastore,可能会变得繁琐和耗时。为了解决这个问题,我们可以创建自定义的Shell脚本以及使用systemd服务来实现一键启停Hive的相关服务。 首先,我们来看一下提供...

    《大数据技术原理和应用操作》试卷A卷及答案.pdf

    * Hadoop HA 是集群中启动两台或两台以上机器充当 NameNode,避免一台 NameNode 节点发生故障导致整个集群不可用的情况(√) * 在安装配置 windows 平台 hadoop,配置后直接运行是没有问题的(×)

    HadoopNameNode高可用(HighAvailability)实现解析

    一旦NameNode挂掉,整个HDFS就无法访问,同时Hadoop生态系统中依赖于HDFS的各个组件,包括MapReduce、Hive、Pig以及HBase等也都无法正常工作,并且重新启动NameNode和进行数据恢复的过程也会比较耗时。这些问题在给...

    resys说明1

    如果需要停止Hadoop,应先执行`stop-all.sh`,然后再启动,以确保所有服务都被正确关闭和重新启动。 接着,进入Resys程序所在的目录`/home/hadoop/resys`,使用Spark提交脚本`spark-submit resys.py`来执行推荐系统...

    YARN应用场景、原理与资源调度

    再者,数据共享困难,数据跨集群迁移耗时且成本高。此外,MapReduce 1.0很难支持除MapReduce以外的计算模型,如Storm和Spark这样的实时或内存计算框架。 Hadoop YARN的基本构成包括一个ResourceManager(RM)、多个...

Global site tag (gtag.js) - Google Analytics