首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

运维心得分享:Hadoop管理员的十个最佳实践 (转载)

2014-01-09 
运维经验分享:Hadoop管理员的十个最佳实践 (转载)1. 选择Cloudera CDH部署你的Cluster动机大多数管理员都

运维经验分享:Hadoop管理员的十个最佳实践 (转载)

1. 选择Cloudera CDH部署你的Cluster

动机

大多数管理员都是从Apache Hadoop开始学习。笔者最开始也使用Apache版本Hadoop进行开发和部署工作,但接触到Cloudera CDH后,我发现它可以使管理员的工作更简单,不仅可以获得最新的特性和Bug修复,有时也会带来令人惊喜的性能改善。

CDH为什么更好?笔者罗列了以下几点:

  1. CDH基于稳定版Apache Hadoop,并应用了最新Bug修复或者Feature的Patch。Cloudera常年坚持季度发行Update版本,年度发行Release版本,更新速度比Apache官方快,而且在实际使用过程中CDH表现无比稳定,并没有引入新的问题。
  2. Cloudera官方网站上安装、升级文档详细,省去Google时间。
  3. CDH支持Yum/Apt包,Tar包,RPM包,Cloudera Manager四种方式安装,总有一款适合您。官方网站推荐Yum/Apt方式安装,笔者体会其好处如下:
  • 联网安装、升级,非常方便。当然你也可以下载rpm包到本地,使用Local Yum方式安装。
  • 自动下载依赖软件包,比如要安装Hive,则会级联下载、安装Hadoop。
  • Hadoop生态系统包自动匹配,不需要你寻找与当前Hadoop匹配的Hbase,Flume,Hive等软件,Yum/Apt会根据当前安装Hadoop版本自动寻找匹配版本的软件包,并保证兼容性。
  • 自动创建相关目录并软链到合适的地方(如conf和logs等目录);自动创建hdfs, mapred用户,hdfs用户是HDFS的最高权限用户,mapred用户则负责mapreduce执行过程中相关目录的权限。

    推荐指数:★★★

    推荐理由:获取最新特性和最新Bug修复;安装维护方便,节省运维时间。

    2. Hadoop集群配置与管理

    安装和维护Hadoop集群涉及大量的管理工作,包括软件安装,设备管理(crontab、iptables等)、配置分发等。

    对于小型集群软件分发和节点管理可以使用PDSH这款软件,它可以通过免密钥的SSH将文件分发到目标服务器,以及为一组目标设备发送命令并获得反馈。如果是大型集群或者硬件配置差别很大的集群,推荐使用puppet这样的工具帮助你维护配置文件,或者通过Cloudera Manager以GUI的方式的管理集群(注意:Clodera Manager不是开源软件,免费版最多支持50个节点)。

    推荐指数:★★★

    推荐理由:提高运维效率

    3. 开启SecondaryNameNode

    SecondaryNameNode(下称SNN)的主要功能是工作是帮助NameNode(下称NN)合并编辑日志,然后将合并后的镜像文件copy回NN,以减少NN重启时合并编辑日志所需的时间。SNN不是NN的热备,但是通过以下步骤可以实现将SNN切换为NN的目的。首先,SNN节点上导入从NN Copy过来的镜像文件,然后修改SNN机器名和IP与NN一致,最后重启集群。

    特别注意的是SNN的内存配置要与NN一致,因为合并编辑日志的工作需要将metadata加载到内存完成。另外,不仅仅是SNN,任何保存NN镜像的节点都可以通过上面步骤变为NN,只是SNN更适合罢了。

    推荐指数:★★★

    推荐理由:减少NN重启导致集群服务中断时间;NN节点故障后,SNN充当NN角色

    4. 使用Ganglia和Nagios监控你的集群

    当运行一个大型mapreduce 作业时,我们通常非常关心该作业对TaskTracker(下称TT)CPU、内存、磁盘,以及整个网络的带宽情况,这时候就需要Ganglia这个工具为我们生成相关图表来诊断、分析问题。

    Ganglia可以监控集群状态,但当你的服务器down机或者某个TT挂掉,它却无法通知到你,这时我们可以使用Nagios这款告警软件,它可以配置邮件告警和短息告警。通过编写plugins,可以实现自己的监控功能。我们的集群目前做了如下监控:

    1. NameNode、JobTracker内存
    2. DataNode和TaskTracker运行状态
    3. NFS服务状态
    4. 磁盘使用情况
    5. 服务器负载状态

    推荐指数:★★★

    推荐理由:Ganglia可以帮你记录集群状态,方便诊断问题;Nagios可以再遇到问题时第一时间通知你。

    5. 设置好内存至关重要

    Hadoop集群安装完毕后,第一件事就是修改bin/hadoop-evn.sh文件设置内存。主流节点内存配置为32GB,典型场景内存设置如下:

      hadoop?fs?–rm?–skipTrash?/xxxx?

    推荐指数:★★★★★

    推荐理由:想要时间机器吗?

    10. 去社区寻找帮助

    Hadoop是一个非常优秀的开源项目,但它仍存有很多尚未解决的问题,诸如,NN,JT单点问题,JT挂死问题,Block在小文件下汇报效率低下等问题。此时可以通过如下渠道找到可以帮助你的人,笔者几次集群严重故障都是通过Cloudera公司的google user group直接获得几位 committer的帮助。通常前一天提问,第二天就会有反馈。下面是两个能够帮助的你的社区,当然你也可以帮助其他人:

    Apache hadoop的mail list :

    http://hadoop.apache.org/mailing_lists.html

    Cloudera CDH google group:

    https://groups.google.com/a/cloudera.org/forum/#!forum/cdh-user

    推荐指数:★★★★★

    推荐理由:没有人比软件作者更熟悉Hadoop本身,去社区求助,帮你解决很多自己无法跨越的问题。

热点排行