`
coderplay
  • 浏览: 571719 次
  • 性别: Icon_minigender_1
  • 来自: 广州杭州
社区版块
存档分类
最新评论

mpich2集群的几个要点

阅读更多
1. ssh
    这东西连起来真麻烦, 比如有三台机器有10,20,30
    要建ssh的有: 10->20,20->10, 10->30,30->10, 20->30, 30->20
    最少要建连接数是一个排列数A(n, 2), 其中n代表节点数, 2代表任选两个节点. 3个节点得有A(3, 2) = 6.
2. 如果是用root用户, 则mpd.conf文件放在/etc下面,而不是.mpd.conf.其它用户是.mpd.conf
3. mpdboot根据一个文件来启动,一般用mpd.hosts. 得定义local节点在哪, 其它节点则在远程启动
    mpdboot -n 3 -f mpd.hosts --ifhn=node0
    我是在node0上启动mpd的, 所以得定义本地的node, --ifhn=node0. -n 3启动代表3个节点.
    搞了好多次,终于靠熟悉linux的同事搞成功了.原来没定义--ifhn.
其它的可以参考csdn blog上面有人写的,很详细的说

  • 如果机器太多,可以不用手动ssh. 用一台服务器管理key, 然后再自动ssh, 具体怎么做不清楚,搜一下就知道啦.
  • mpdboot,mpiexec,mpdtrace等都是python脚本. 也可以手工用mpd --host host --port port 来加入一台机器到集群中.
  • mpdboot之后要用mpdtrace -l 检查一下各节点的ip是否对了.我就发生了一件这样的问题,高手帮我搞了很久,hostname相关
  • mpdallexit退出所有的节点
  • mpiexec 可以用来让各节点执行同一道程序,条件是每个节点机器上都有这道程序.
    比如 #mpiexec -n 3 ls ,就是让集群的三台机器都执行ls命令.
    mpi的算pi的程序,可以用 #mpiexec -n 3 ./cpi 这里也有一个经常错的地方,就是有可能某结点没有这个cpi程序.那就运行不了了. 如果有100台机器要运行这个,岂不是要手动copy一百次?
    解决办法: 用@mpiexec -n 3 scp main_node_executable_path local_path 这招好强,哈哈~~让每台机器都执行scp从主节点copy程序到自己的目录上
  • 网上方法都讲要改/etc/hosts文件,来定义节点名称。 实际上用ip还更方便点 :)
分享到:
评论
1 楼 alanhuaq 2011-06-15  
关于您文章里提到的最后一点:“网上方法都讲要改/etc/hosts文件,来定义节点名称。 实际上用ip还更方便点”。我在hadoop0.20.2上直接用过ip的方法(因为有两台机器是动态ip,经常改hosts文件麻烦,所以直接用的ip)。集群配置是成功的,但是在测试wordcount的时候任务是无法执行的。在网上查了一下,有人提到过这种情况,就是直接用ip,配置集群没问题,但是任务无法执行,说是hadoop的一个bug。请问您用的是哪个版本的hadoop?您遇到过类似问题吗?谢谢。
另外您提到的mpich2很好,我5台机器每台ssh验证两两之间连接真的很累。学习一下。

相关推荐

Global site tag (gtag.js) - Google Analytics