服务器在线 - IDC服务商 - 服务器软件 - 网站地图 服务器在线,专注于服务器技术!

当前位置:主页 > 云和虚拟化 > XenServer > 正文

安装配置基于XenServer的Hadoop分布式计算平台

时间:2015-01-03    来源:服务器在线    投稿:泡泡    点击:

文章来源:超级云

一、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
grid@hadoop2
##把自己的公钥分别加到其他机器的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,添加如下行:

<configuration>

<property>
<name>hadoop.tmp.dir</name>
<value>/home/grid/hadoop/tmp</value> ##设定Hadoop的临时目录
<description> </description>
</property>

<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1.ahau.edu.cn:9100</value> ##设置文件系统的路径
</property>

</configuration>

9.配置hdfs-site.xml,添加如下行:

<configuration>

<property>
<name>dfs.relplication</name> ##HDFS的副本数,默认为3,如果DataNode的数量小于这个值会有问题
<value>2</value>
</property>

</configuration>

10.配置mapred-site.xml,添加如下行:

<configuration>

<property>
<name>mapred.job.tracker</name>
<value>hadoop1.ahau.edu.cn:9200</value> ##设置MapReduce Job运行的主机和端口
</property>

</configuration>
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
grid@hadoop2:/home/grid

四、运行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

 

 

可以通过http://hadoop1.ahau.edu.cn:50070查看HDFS的情况,通过http://hadoop1.ahau.edu.cn:50030
查看MapReduce的情况

 

以下是一些常用的命令:

hadoop fs –ls 查看/usr/root目录下的内容,默认如果不填路径这就是当前用户路径;
hadoop fs –rmr *** ***就是删除目录;
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分布式计算平台就搭建完成了

如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。