ubuntu9.04 mpich2 1.2版本 搭建集群种种问题

找到很多网上的文档,也是一步一步按照上面所做,可是就是有太多的问题。写一篇自己的搭建过程和错误产生的原因。

开始我找了两台服务器,上面装的是Asianux的操作系统,因为含有rsh服务。所以会报出:

connect to address XXXX: Connection refused
Trying krb4 rlogin...
connect to address XXXX: Connection refused
trying normal rlogin (/usr/bin/rlogin)

这个问题解决方案有多种,不过最简单的一种是在配置时:./configure添加参数 -rsh=ssh如下:

./configure -rsh=ssh

后来我有了多台机器,并且因为要搭建云的缘故,所以只有重新来过。首先找来4台机器,一个switch,这4台机器都是内网中的。我可以通过远程ssh登录上去。然后装系统ubuntu9.04,这里要注意的是,用户名必须一致,并且hostname设置为node1,node2,node3,node4.如果你不这样做,后面会出来非常多的问题,我稍后会一一解决。这里先介绍一下一般流程。

1。然后找一个好源,再使用apt-get更新.具体步骤详见:http://blog.csdn.net/cctt_1/archive/2009/10/14/4667460.aspx

然后sudo apt-get install ssh,这一步是下载并安装ssh.

2。然后下载mpich2-1.2 ,当然你还可以下载一份mpich2的安装文档 。都下载到server(主节点)上,然后执行下面的操作:

tar xzvf mpich2-1.2.tar.gz或者使用命令gunzip -c mpich2.tar.gz | tar xf -(后者我没有试过)

3。然后mkdir mpich2在进入刚才解压的目录,执行配置文件./configure -prefix=../mpich2 -rsh=ssh这里的-prefix是你要安装到哪里(就是刚才的mkdir的目录)。之后make一下,然后make install 一下,看看报的错误,我当时好像缺少g++和gcc,所以最好先apt-get 这两个东东。如果还是报错,就使用sudo ./configure -prefix=../mpich2 -rsh=ssh, sudo make , sudo make install.

4。之后把mpich2/bin这个文件路径放入到/etc/profile的最后一行,这样写,这里/home/you/是你的用户主目录。

PATH=$PATH:/home/you/mpich2/bin

然后log out再log in,如果不想这样,也可以export PATH=$PATH:/home/you/mpich2/bin临时做一下。然后echo $PATH,看看有没有添加成功。再下一步which mpd,看看有没有找到相应的路径。

5。然后执行

cd $HOME touch .mpd.conf #创建一个文件 chmod 600 .mpd.conf #设置权限

6。下一步vi .mpd.conf,添加一行MPD_SECRETWORD=abcd,这里的abcd是自己写的,你可以变动。这一步是以后使用mpd命令必须加入的,主要是为了机器间的通信。

7。然后vi mpd.hosts,写入你的那几台机器的hostname,记住一行一个,如下:

node1 node2 node3 node4

这其实是你要让那些主机运行mpi的程序。

8。然后你在server(主节点)运行一下以下命令。

mpd & #启动一个mpd mpdtrace #查看哪些主机加入到ring中 mpdallexit#退出

这几个命令执行一下,如果没发生什么错误,就ok.

9。之后修改/etc/hosts,添加几行ip和hostname的对应关系。在127.0.0.1 localhost之后添加几行(这里假设server节点为node1当然,你可以改动):192.168.12.111 node1 server #个人认为这里的server加不加都可以就只是一个名字 192.168.12.112 node2 192.168.12.113 node3 192.168.12.114 node4

10。然后配置ssh自动登录,如何配置请看blog:http://blog.csdn.net/cctt_1/archive/2009/10/14/4667604.aspx .配置完毕后,在server节点依次输入:ssh node1 date,ssh node2 date, ssh node3 date , ssh node4 date.看看有没有返回date,主要是为了检测自己能否使用ssh登录到自己或其他节点。其他节点按照此法依次检测一下。如果不需要输入密码,并返回了date,则ssh配置成功。

11。之后把你的mpich2/bin这个目录(./configure时的目录)打包 tar cvf bin.tar mpich2/bin,然后将包发送到其他节点:node2,node3...。可以使用scp命令如下:

scp bin.tar you@node2:bin.tar

12。使用ssh登录到其他节点上,并解压bin.tar,然后按照第4步添加此路径并检查一下。

13。在各个节点上重做一下5,6,8,9,10,第7步可以不做。

14。回到server,使用如下两个命令: mpd & , mpdtrace -l,这就会得到<hostname>_<port> (ip),检查下这三项是不是对的 。hostname应该是自己的node1,port是一个随机分配的,ip是hostname对应的ip(和/etc/hosts中的一样)

15。ssh到其他节点,然后输入mpd -h <hostname> -p <port> &,这里的<hostname>和<port>是14步中server的。如果执行这步没有错误,输入mpdtrace,就能看到node1,node2.....

16。配置完成。集群已经搭建成功。以后启动的时候,只需要在server上执行mpdboot -n <number> -f mpd.hosts,这里的<number>是你想启动的mpi程序数(会分配到不同的节点上),mpd.hosts是第七步创建的文件。

种种问题~~~~~~~:

1.没有使用相同的用户名(ubuntu上root用户你是不可能知道密码的),所以只有开始安装Ubuntu时的用户。你要做的是必须在所有节点都添加一个相同的用户。因为mpich2在后续使用mpd -h <host> -p <port>&命令加入到已存在的ring中时使用的是相同的用户名。并且如果你的用户名不同,ssh node2, ssh node3,是不可能通过的,除非你使用了ssh you@node3,但mpd不会这样作,除非你要修改它的源码。要建立用户可以使用我下面编写的小脚本,并且加入的用户获得了和你安装用户一样的权限(除了自己组权限)。记得要使用sudo命令来执行并且chmod +x XXXscript。

#! /bin/sh newone="mpich" #这里添加的用户为mpich,你也可以改动。 hostloc="/etc/hosts" # create a new member and input the password useradd -m $newone passwd $newone # get the admin member who | awk '{print $1}' >> tmpuser user=`head -n 1 tmpuser` # get the admin member's groups and remove the self group groupinfo=`groups $user | awk '{print}'| sed 's/'$user'//'` # copy the groups to the new member for i in $groupinfo;do gpasswd -a $newone $i done echo `groups $newone`

2.hostname并不是node1,node2,node3,而是其他的名字。这里必须要改,否则mpd -h <host> -p <port>&命令时会有rsh connect refused 或者timeout的情况。并且mpdtrace -l时,会有ip和hostname不对应的情况。如下是更改方法:先在/etc/hosts中删除原来的hostname,然后 vi /etc/hostname改成你想要的,注意必须顶行写。然后使用sudo /etc/init.d/hostname来重新得到hostname,logout一下再login就会改掉。

3. rsh krb4 krb5问题,就使用./configure -rsh=ssh就可以解决

4. ./configure时有时会让你添加--disable-c++,你需要升级你的g++了,sudo apt-get install g++

5.make时文件冲突,只要使用sudo make即可

6.创建了新用户,记得使用新用户来执行ssh-keygen。ssh和用户是相关的。

7.清看清我的blog题目,如果你的不是mpich2-1.2可能搭建起来与此过程不同。mpich-1中mpd是非安装的。我之前曾照网上的文档安装就是走不通。原因是版本不对。那个官方文档是mpich2-1.0.6的..好像也稍有不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值