技术开发 频道

实战:构建可伸缩Hadoop集群的方法步骤

  Hadoop软件的安装和配置

  Hadoop集群有多种构建方式:

  1.手工下载tar文件并复制到集群中

  2.利用Yum仓库

  3.利用Puppet等自动化部署工具

  我们不建议采用手工方式,那只适合很小的集群(4节点以下),而且会带来很多维护和排障上的问题,因为所有的变更都需要用scp或ssh的方式手工应用到所有的节点上去。

  从以下方面来看,利用Puppet等部署工具是非常好的的选择:

  ·安装

  ·配置

  ·维护

  ·扩展性

  ·监控

  ·排障

  Puppet是Unix/Linux下的一个自动化管理引擎,它能基于一个集中式的配置执行增加用户、安装软件包、更新服务器配置等管理任务。我们将主要讲解如何利用Yum和Puppet来安装Hadoop。

  利用Yum/Puppet搭建Hadoop集群

  要利用Puppet搭建Hadoop集群,首先要符合以下前置条件:

  ·包含所有必需Hadoop软件的中央仓库

  ·用于Hadoop部署的Puppet装载单(manifest)

  ·用于Hadoop配置管理的Puppet装载单

  ·用于集群维护的框架(主要是sh或ksh脚本),以支持集群的start/stop/restart

  ·利用puppet构建整个服务器(包括操作系统和其它软件)

  注:如果要用Yum来安装Hadoop集群,则所有服务器应该预先构建完成,包括操作系统和其它软件都应安装完毕,yum仓库也应在所有节点上设置完毕。

  构建Datanode/Tasktracker

  如果用Yum安装Datanode/Tasktracker,需在所有数据节点上执行以下命令:

  yum install hadoop-0.20-datanode –y
  yum install hadoop
-0.20-tasktracker –y

  换成Puppet的话,则是:

  class setup_datanode {
  
if ($is_datanode == true) {
  make_dfs_data_dir { $hadoop_disks: }
  make_mapred_local_dir { $hadoop_disks: }
  fix_hadoop_parent_dir_perm { $hadoop_disks: }
  }
  #
fix hadoop parent dir permissions
  define fix_hadoop_parent_dir_perm() {
  …
  }
  # make dfs data dir
  define make_dfs_data_dir() {
  …
  }
  # make mapred
local and system dir
  define make_mapred_local_dir() {
  …
  }
  } # setup_datanode

  构建Namenode(及辅助Namenode)

  如果用Yum安装Namenode,需在所有数据节点上执行以下命令:

  yum install hadoop-0.20-namenode –y
  yum install hadoop
-0.20-secondarynamenode –y

  换成Puppet的话,则是:

  class setup_namenode {
  
if ($is_namenode == true or $is_standby_namenode == true) {
  ...
  }
  exec {
"namenode-dfs-perm":
  ...
  }
  exec {
"make ${nfs_namenode_dir}/dfs/name":
  ...
  }
  exec {
"chgrp ${nfs_namenode_dir}/dfs/name":
  ...
  }
  
if ($standby_namenode_host != "") {
  ...
  }
  exec {
"own $nfs_standby_namenode_dir":
  ...
  }
  }
  #
/standby_namenode_hadoop
  
if ($standby_namenode_host != "") {
  ...
  }
  exec {
"own $standby_namenode_hadoop_dir":
  ...
  }
  }
  }
  }
  class setup_secondary_namenode {
  
if ($is_secondarynamenode == true) {
  ...
  }
  ....
  }
  exec {
"namenode-dfs-perm":
  ...
  }
  }
  }

  构建JobTracker

  如果用Yum安装Jobtracker,需在所有数据节点上执行以下命令:

  yum install hadoop-0.20-jobtracker –y

  换成Puppet的话,则是使用与构建Namenode相同的装载单,唯一的区别在于,在Jobtracker机器上,会启动Jobtracker——即将该机器上的is_jobtracker设置为true。

  原文出处:http://www.atlantbh.com/how-to-build-optimal-hadoop-cluster/

0
相关文章