AvatarNode集群测试(一)- - - - 系统搭建

AvatarNode是HDFS的一个补丁包,我们的部署是在HDFS之上进行,本次测试共使用5个虚拟机,5种类型的结点.

系统逻辑如下

节点名              角色          IP地址      

AvatarNode      primary NameNode     192.168.0.11

StandbyNode       standby NameNode      192.168.0.12

NFS          nfs server          192.168.0.13 

AvatarDataNode1     datanode、client       192.168.0.14

AvatarDataNode2     datanode、client       192.168.0.15

首先需要下载的内容包括:

CentOS5.5 64位

ucarp-1.5.2-1.el5.x86_64.rpm

libpcap-devel-0.9.4-15.el5.x86_64.rpm

libpcap-devel-0.9.4-14.el5.i386.rpm

hadoop-0.20.2.tar.gz

jdk1.6.0_24.tar.gz

apache-ant-1.8.1.tar.gz

AvatarNode.20.patch

下载地址为:

http://www.vdisk.cn/wl826214?tag=&p=1

在这里有以上全部所需要的软件和补丁


我们先在AvatarNode上安装,然后使用vmware的clone来复制出其他虚拟机,再做相应修改即可

1. 安装CentOS5.5(x86_64)

 

2. 安装JAVA,并做好路径设置

 

3. 安装SSH,保证任何两个结点之间可以实现无密码登陆

 

4. 修改 /etc/profile配置文件,对java和一些常用PATH做设置

 

---以上这些在之前第一次部署hadoop集群时都有说明,参见

http://www.cnblogs.com/melburg/articles/2601259.html

 

当前的AvatarNode有两种使用方式,第一种是在原hadoop-0.20.2版本的HDFS上打Avatar补丁,另一种是使用FaceBook版本,其中已经包含了Avatar包,我们采用第一种方式。

5. 在hadoop 0.20.2版本上打Avatar的补丁

(1)配置虚拟机上网

① 在vmware的settings中的network里,选择三种上网模式中的Bridge或者NAT都可以

② 开机后,修改/etc/sysconfig/network-scripts/ifcfg-eth0  启动时保证为DHCP自动获取IP

③ 重启网络服务

 sudo service network r

 

(2) 安装ant

ant是一个Build工具,类似于make

① 以hadoop身份登录(不要以root身份),在/usr下建立文件夹 ant 

 sudo mkdir ant

② 修改ant权限为755

 sudo chmod 755 ant

③ 将Apache-ant1.8.1.tar.gz复制到/usr/ant下

④ 解压

 tar -zxvf Apache-ant-1.8.1.tar.gz

⑤ 编辑/etc/profile文件,在末尾添加环境变量:

 export ANT_HOME=/usr/ant/apache-ant-1.8.1 

 export PATH=$ANT_HOME/bin:$PATH

⑥ 编译生效:

 source /etc/profile

  

(3) 解压hadoop-0.20.2

① 在/usr下新建文件夹hadoop

 sudo mkdir hadoop 

② 修改权限

 sudo chmod 755 hadoop

 sudo chown hadoop:hadoop hadoop (如果以Root身份登录创建,要修改其owner)

③ 将 Hadoop-0.20.2.tar.gz 复制到 /usr/hadoop

④ 解压,解压后生成文件夹hadoop-0.20.2

 tar -zxvf Hadoop-0.20.2

⑤ 将AvatarNode.20.patch 复制到/usr/hadoop/hadoop-0.20.2

⑥ 打补丁

 patch -p0 -E < AvatarNode.20.patch

 

(4) 修改源码,编译打包,生成我们需要的avatarnode包

① 将$HADOOP_HOME/src/contrib/highavailability/src/java/org/apache/hadoop/hdfs/server/namenode/Standby.java

341行 : fsImage.saveNamespace(true) 改为 fsImage.saveFSImage()

 

② 在 $HADOOP_HOME/src/contrib/highavailability/src/java/org/apache/hadoop/hdfs/server/namenode/AvatarNode.java中

import三个类:

import org.apache.hadoop.security.UnixUserGroupInformation;
import org.apache.hadoop.security.UserGroupInformation;
import javax.security.auth.login.LoginException;

并在第210行initialize(Configuration conf)方法内部添加语句:

try{
UserGroupInformation.setCurrentUser(UnixUserGroupInformation.login(conf));
} catch (LoginException e){
}

 

 

③  vi $HADOOP_HOME/build.xml

把build.xml中Documentation部分的target标签对之间的所有内容删除(target标签本身不删)

 

④ 将$HADOOP_HOME目录下的docs复制到$HADOOP_ HOME/build/下

要新建个build目录

 

⑤ 编译打包 ,$HADOOP_HOME下:

ant -Djava5.home=$Java5Home compile tar

大约经过5~10分钟左右,编译成功!

 

⑥ 生成可用的tar包

编译后生成的压缩包为$HADOOP_HOME/build/Hadoop-0.20.3-dev.tar.gz

解压后将$HADOOP_HOME/build/hadoop-0.20.3-dev/contrib/highavailability/hadoop-0.20.3-dev-highavailability.jar 放到 hadoop-0.20.3-dev/lib下再压缩成tar包

 

⑦ 更改虚拟机环境,关闭虚拟机,修改网卡模式为host-only,启动虚拟机

 

⑧ 将刚才压缩好的tar包复制到/usr/hadoop下,解压缩,生成目录hadoop-0.20.3-dev

 

⑨ 从hadoop-0.20.2中将build目录和build.xml copy到/usr/hadoop/hadoop-0.20.3-dev/下

 

⑩ 将/usr/hadoop/hadoop-0.20.3-dev/ivy/ivy-2.0.0-rc2.jar copy 到/usr/hadoop/hadoop-0.20.3-dev/lib/下

 

①① 修改/usr/hadoop/hadoop-0.20.3-dev/build.xml,把build.xml中154行注释掉

改为<property name="ivy_repo_url" value="file://${basedir}/lib/ivy-2.0.0-rc2.jar"/>

 

①② 修改/usr/local/hadoop-0.20.3-dev/build.xml,把build.xml中154行注释掉,

改为<property name="ivy_repo_url" value="file://${basedir}/lib/ivy-2.0.0-rc2.jar"/>

 

①③ 编译打包  $HADOOP_HOME下:

ant -Djava5.home=$Java5Home compile tar

编译后生成的压缩包为$HADOOP_HOME/build/hadoop-0.20.3-dev.tar.gz

 

①④ 这个包就是我们用来最终部署avatarnode的包

 

 

 

posted on 2012-09-15 22:51  melburg  阅读(153)  评论(0)    收藏  举报