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

一次hadoop集群机器加内存的运维过程

阅读更多
由于前期的集群规划问题,导致当前Hadoop集群中的硬件并没有完全利用起来。当前机器的内存CPU比例为2G:1core,但一般的MapReduce任务(数据量处理比较大,逻辑较复杂)的MR两端都需要将近4G的内存,于是原有的瓶颈就在于内存不够大,周末就和运维部门一起执行当前集群的机器加内存操作(我在这边主要是打酱油+学习,运维方面经验欠缺)。
 
此次加内存是针对当前所有的DataNode节点,与NameNode无关,在操作之前需要整理所有的DataNode节点。 
 
DataNode节点加内存不能影响当前线上任务的正常执行,因此需要串行地执行加内存操作(本意是这样,但是还是影响了大部分的任务运行,只能保证HDFS上的文件能够在此期间被访问到)。
 
针对每个节点操作的具体步骤为:
 
  1. 停止DataNode节点上的DataNode和NodeManager服务;
  2. 将节点停机;
  3. 通知机房人员加内存条,系统需要预留8G;
  4. 机房人员添加内存成功后,将通知我们启动DataNode节点;
  5. 重启完成后,检查服务器内存是否添加成功(free命令),并确认硬盘挂载信息是否正常(df -u, 如果没有正确挂载上,手动执行/etc/rc.local中的mount命令);
  6. 检查hadoop各个分目录的权限以及文件夹是否正确,一切正常之后,修改hadoop内存配置文件(yarn-site.xml中的yarn.nodemanager.resource.memory-mb参数)。
  7. 启动相关的hadoop服务: nodemanager和DataNode服务;
 
在重置完成后,检查一下防火墙,以避免某些服务无法访问。 
 
当然前面都是一切操作顺利时的状况,在这些操作完成之前,我们需要考虑最坏的情况,如果安装内存条失败了怎么办?需要进行回滚操作,重启机器,如果不能重启,可能需要重装系统,DataNode中的数据可能会丢失。如果其中有2台机器发生这种情况,那么立即停止后续的升级操作(HDFS默认的replication为3)。
 
如果没有在预计的时间内恢复集群,需要通知所有相关人员原因以及折中的方案,并尽快执行恢复操作。
 
在换内存停机器的时候,不能进行跑MR任务,因为可能会发生block读取失败的信息:

Error: org.apache.hadoop.hdfs.BlockMissingException: 
Could not obtain block: BP-714842383-192.168.7.11-1393991369860:blk_1098537659_1099556437863 file=xxx 
at org.apache.hadoop.hdfs.DFSInputStream.chooseDataNode(DFSInputStream.java:838) 
at org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:526) 
at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:749) 
at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:793) 
at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:601) 
at java.io.DataInputStream.readInt(DataInputStream.java:387) 
at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.moveToNext(MapTask.java:197) 
at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.next(MapTask.java:183) 
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:52) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:429) 
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:415) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) 
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
  
这次还好是在周末进行操作的,影响稍微小一点,但是线上跑的任务基本都失败了,hadoop的失败任务节点判断估计也都失败了,因为所有的DataNode都进行了一次升级。总结一下,如果是工作日做这项操作,可以将整个流程拉的稍微长一点,每天加一台机器的内存,这样集群少一台机器对线上任务的影响降低地太小,任务不会失败过多。
 
分享到:
评论

相关推荐

    hadoop部署与集群运维

    里面讲了一些hadoo是如何部署与运维的知识点,希望对初学者有所帮助!

    大规模Hadoop集群运维经验谈

    ### 大规模Hadoop集群运维经验谈 #### 阿里巴巴Hadoop集群运维实践 在当前的大数据时代背景下,企业对于数据处理能力的需求日益增长,Hadoop作为主流的大数据处理框架之一,其运维能力成为了确保大数据平台稳定...

    Apache Hadoop:Hadoop集群运维与优化.docx

    Apache Hadoop:Hadoop集群运维与优化.docx

    hadoop集群维护手册.pdf

    一、Hadoop 集群启动和停止命令 Hadoop 集群可以使用 start-all.sh 命令启动,使用 stop-all.sh 命令停止。在集群维护过程中,需要频繁地启动和停止集群,因此掌握这些命令非常重要。 二、增加集群存储量 如果...

    利用ansible 自动 安装Hadoop 集群

    总结来说,通过Ansible自动化安装Hadoop集群,可以极大地简化部署流程,减少手动操作出错的可能性,同时提高运维效率。了解并熟练运用Ansible的这一特性对于任何希望管理大规模Hadoop集群的IT专业人员都是极其重要的...

    Linuxhadoop集群安装

    在IT领域,Linux Hadoop集群安装是一个复杂但至关重要的任务,尤其对于大数据处理和分析的组织来说。Hadoop是Apache软件基金会开发的一个开源框架,它允许分布式存储和处理大规模数据集。下面,我们将深入探讨Hadoop...

    Linux运维-Hadoop集群之ambari实践-13hadoop集群启动.mp4

    Linux运维-Hadoop集群之ambari实践-13hadoop集群启动.mp4

    Linux运维-Hadoop集群之ambari实践-14hadoop集群验证.mp4

    Linux运维-Hadoop集群之ambari实践-14hadoop集群验证.mp4

    linux下Hadoop集群环境搭建

    在Linux环境下搭建Hadoop集群是一项复杂但至关重要的任务,它为大数据处理提供了强大的分布式平台。以下将详细介绍如何在一台虚拟机上安装多台Linux服务节点,并构建Hadoop集群环境。 首先,我们需要准备一个基础...

    基于Hadoop大数据集群的水电机组数据运维平台.pdf

    本篇论文提出了一个基于Hadoop大数据集群的水电机组数据运维平台的设计概念,旨在解决水电厂历史运行数据的存储、分析和挖掘问题。该平台采用基于JAVA编程语言开发的可扩展性架构理念,利用Hadoop大数据集群与水电站...

    安装hadoop集群

    #### 五、Hadoop集群运维管理 1. **监控工具**: - 使用Hadoop自带的Web界面监控集群状态。 - 可选安装第三方监控工具如Ganglia、Nagios等。 2. **性能调优**: - 根据实际负载调整MapReduce任务的并发度。 - ...

    大数据平台技术实施与运维规范-Hadoop 分册.docx

    系统环境是指Hadoop集群的运维环境,包括网络配置、服务器配置等方面的内容。 网络配置 网络配置是Hadoop集群的关键组件,包括网卡配置、网络绑定等方面的内容。 1. 网卡速率检测:网卡速率检测是指检测网卡的...

    Hadoop集群搭建总结

    #### 四、Hadoop集群优化与运维 在搭建好Hadoop集群后,还需要进行性能优化和日常维护工作: - **性能调优**:根据实际业务需求调整MapReduce、HDFS和YARN的参数。 - **监控与日志管理**:使用工具如Ganglia、...

    Hadoop大数据平台运维杂记.pptx

    Hadoop大数据平台运维杂记是关于Hadoop大数据平台的运维经验总结,主要涵盖了Hadoop集群的使用情况、安装升级、Cloudera Manager、Hadoop的发展历程、常见事故处理等方面的内容。 一、Hadoop集群使用情况 Hadoop...

    Ambari部署Hadoop集群.doc

    总的来说,Ambari作为Hadoop集群管理的重要工具,大大降低了大数据环境的复杂度,提升了运维效率,是企业和个人进行大数据实践的理想选择。通过学习Ambari的安装、使用和原理,可以更好地理解和操作Hadoop生态系统中...

    阿里的hadoop运维经验分享

    阿里的hadoop运维经验分享。内容: hadoop集群搭建 监控 集群性能调优 Hadoop如何被搞垮的

    hadoop运维经验分享

    在Hadoop运维领域,经验是宝贵的财富。2012年华东运维技术大会上分享的"Hadoop运维经验"涵盖了Hadoop生态系统中...通过不断学习和实践,运维人员能构建和维护稳定、高效的Hadoop集群,为企业的大数据处理提供坚实保障。

    docker一键安装hadoop集群

    【Dockerfile详解】 Dockerfile 是一个文本文件,包含了构建 Docker 映像的指令序列。...通过 Docker 安装 Hadoop 集群,可以在不改变主机系统的情况下快速部署和测试,方便开发者和运维人员进行开发、测试和演示。

Global site tag (gtag.js) - Google Analytics