分类: 云计算
2011-05-15 22:05:29
一、XenServer安装
1.搭建完全的Hadoop分布式计算平台,至少需要2~3台机器,这需要了解Hadoop的组成,从HDFS的角度包括NameNode(NN)和DataNode(DN),从Map/Reduce的角度包括JobTracker(JT)和TaskTracker(TT),其中NN和JT所在的主机称为Master,可以分机器部署也可以部署在一台机器上,除此之外的DN和TT称为Slaves。如果是搭建单机环境,以上四部分也可以部署在同一台机器上,因为手上有一台4G内存的机器,所以我们进行完全分布式部署。
2.之所以选择Xenserver,是因为比Vmware Sphere更易于安装配置,而且最重要的是免费,最新版是5.6,提供了XenMotion(相当于VMotion)、Convert、存储管理等高级功能,可惜免费授权不提供XenServer的HA功能,用于实际业务系统缺少了一层保障。安装光盘的ISO免费下载,裸机直接安装,然后在Windows上安装XenCenter,使用XenCenter连接上装有XenServer的服务器以后,需要先获得免费授权,否则这台服务器只能使用30天,点击‘Tools’-‘License Manager’,在弹出的窗口中选中需要制作授权文件的XenServer,然后选‘Request Activation Keys...’,会弹出网页,要求输入一些信息,提交后会有包含授权文件的邮件发到邮箱里,还在在‘License Manager’窗口中,选‘Apply Activation Keys...’,选择授权文件,这样,XenServer就可以使用一年了。最后的效果如下图:
3.开始在XenServer中安装虚拟机,只要先装一台,其他的机器可有由模板生成,我习惯使用CentOS 5.5 X86_64,安装过程跟VMware没什么区别,你可以用你所知道的方法把ISO文件挂到XenCenter上,包括NFS,CIFS,ISCSI等等,当然也可以直接用光盘:)
安装完成以后,关闭虚拟机,点击右键‘Convert to Template’,然后从模板中生成3个虚拟机实例,启动以后配置相应的IP地址和主机名,这三台机器要能互相解析:
210.45.176.49 hadoop1.ahau.edu.cn hadoop1 NameNode和JobTracker Master主机
210.45.176.50 hadoop2.ahau.edu.cn hadoop2 DataNode和TaskTracker Slave主机
210.45.176.46 hadoop3.ahau.edu.cn hadoop3 DataNode和TaskTracker Slave主机
二、配置SSH、JAVA
4.在三台机器上增加用户grid,用于Hadoop的配置和运行,并且都配置互相SSH 免密码登录,分别制作一对ssh密钥,以hadoop1上的命令为例
$ssh-keygen –t rsa ##生成ssh密钥对
$ssh-copy-id –i ~/.ssh/id_rsa.pub ##把自己的公钥分别加到其他机器的authorized_keys文件中
互相加完以后不要忘记把自己的公钥也加到authorized_keys里,否则启动Hadoop时会有提示,很讨厌
$cat ~/.ssh/id_rsa.pub >> authorized_keys
5.在三台机器上安装JAVA环境,从Oracle的网站上下载最新的jdk,jdk-6u25-linux-x64.bin,在Hadoop1上安装,安装路径为/usr/local/jdk1.6.0_25,三台机器的安装路径最好一致,方便以后配置
三、配置Hadoop
6.在Hadoop1上下载Hadoop,稳定版为0.20.203,解压到/home/grid/hadoop目录下,修改conf/hadoop-env.sh,至少要设置JAVA_HOME为JAVA的安装路径
7.Hadoop的配置文件被分为三个,均在conf目录下,core-site.xml,hdfs-site.xml和mapred-site.xml,这三个文件的配置示例在src/core/core-default.xml,src/hdfs/hdfs-default.xml,src/mapred/mapred-default.xml中,同时也是默认配置,不要直接修改这三个目录中的文件,如果需要修改将他们复制到conf目录下的对应文件后再修改
8.配置core-site.xml,添加如下行:
9.配置hdfs-site.xml,添加如下行:
10.配置mapred-site.xml,添加如下行:
11.以上为这三个文件最简单的配置,其中hadoop.tmp.dir指定的目录要在运行Hadoop之前创建好,如果需要更进一步的配置,可以参看src中的相应文件
12.配置conf/masters和conf/slaves,增加主机名,一个一行
在conf/masters中添加Master的主机名:hadoop1.ahau.edu.cn
在conf/slaves中添加Slave的主机名:
hadoop2.ahau.edu.cn
hadoop3.ahau.edu.cn
13.将hadoop目录拷贝到其他机器上,如果Java的安装路径不一样,需要修改hadoop-env.sh文件
$scp –r hadoop
四、运行Hadoop
14.格式化分布式文件系统
$bin/hadoop namenode -format
15.启动Hadoop,最好在启动前检查三台主机的SELinux和Iptables是否关上,以免不必要的麻烦
在hadoop1的hadoop目录中执行:
$bin/start-all.sh
##启动所有进程,脚本输出会指出日志文件存放位置,从输出可以看到先启动NameNode进程,然后是DataNode,JobTracker,TaskTracker,Master会自动启动Slave上的相关进程,可以通过下面的命令检查进程的运行情况
[grid@hadoop1 hadoop]$ /usr/local/jdk1.6.0_25/bin/jps
11905 NameNode
14863 DataNode
12036 SecondaryNameNode
12113 JobTracker
12421 Jps
也可以分部启动:
$bin/hadoop-daemon.sh start namenode ##启动NameNode
$bin/hadoop-daemon.sh start datanode
查看文件系统的情况:
[grid@hadoop1 hadoop]$ bin/hadoop dfsadmin -report
Configured Capacity: 152406405120 (141.94 GB)
Present Capacity: 133594103808 (124.42 GB)
DFS Remaining: 133334999040 (124.18 GB)
DFS Used: 259104768 (247.1 MB)
DFS Used%: 0.19%
Under replicated blocks: 1
Blocks with corrupt replicas: 0
Missing blocks: 0-------------------------------------------------
Datanodes available: 3 (3 total, 0 dead)Name: 210.45.176.45:50010
Decommission Status : Normal
Configured Capacity: 50802135040 (47.31 GB)
DFS Used: 86433792 (82.43 MB)
Non DFS Used: 6207848448 (5.78 GB)
DFS Remaining: 44507852800(41.45 GB)
DFS Used%: 0.17%
DFS Remaining%: 87.61%
Last contact: Sun May 15 21:32:42 CST 2011
Name: 210.45.176.50:50010
Decommission Status : Normal
Configured Capacity: 50802135040 (47.31 GB)
DFS Used: 86335488 (82.34 MB)
Non DFS Used: 6420262912 (5.98 GB)
DFS Remaining: 44295536640(41.25 GB)
DFS Used%: 0.17%
DFS Remaining%: 87.19%
Last contact: Sun May 15 21:32:42 CST 2011
Name: 210.45.176.46:50010
Decommission Status : Normal
Configured Capacity: 50802135040 (47.31 GB)
DFS Used: 86335488 (82.34 MB)
Non DFS Used: 6184189952 (5.76 GB)
DFS Remaining: 44531609600(41.47 GB)
DFS Used%: 0.17%
DFS Remaining%: 87.66%
Last contact: Sun May 15 21:32:42 CST 2011
可以通过查看HDFS的情况,通过 查看MapReduce的情况
以下是一些常用的命令:
hadoop fs –ls 查看/usr/root目录下的内容,默认如果不填路径这就是当前用户路径;
hadoop fs –rmr xxx xxx就是删除目录;
hadoop dfsadmin -report 这个命令可以全局的查看DataNode的情况;
hadoop job -list 后面增加参数是对于当前运行的Job的操作,例如list,kill等;
hadoop balancer 均衡磁盘负载的命令。
16.测试Hadoop
将输入文件拷贝到分布式文件系统:
$ bin/hadoop fs -mkdir input
$ bin/hadoop fs -put conf/core-site.xml input运行发行版提供的示例程序:
$ bin/hadoop jar hadoop-examples-0.20.203.0.jar grep input output 'fs[a-z.]+'
将输出文件从分布式文件系统拷贝到本地文件系统查看:
$ bin/hadoop fs -get output output
$ cat output/*或者
在分布式文件系统上查看输出文件:
$ bin/hadoop fs -cat output/*
17.停止Hadoop
$bin/stop-all.sh
18.增加Slave节点hadoop4
只需要再新的机器上安装java、配置ssh无密码登录,修改hadoop1上的slaves文件,增加hadoop4,然后把hadoop拷贝到hadoop4上,重新运行bin/start-all.sh就可以了,非常方便,上面的bin/hadoop dfsadmin -report就是在增加了hadoop4以后的
至此基于XenServer的Hadoop分布式计算平台就搭建完成了