最近做的研究室是空间信息网络中分布式元数据的管理,基于ZHT实现,需要搭建一个集群环境,老师就提供了天河二号,以下是在天河二号上运行ZHT的步骤,作为记录:
使用ZHT首先需要安装protobuf以及protobuf-c(先安装protobuf,因为protobuf-c依赖于protobuf)
Google protocol buffers c++ binding, VERSION 2.4.1
地址:http://code.google.com/p/protobuf/downloads/list
Google protocol buffers c binding, VERSION 0.15 or later
地址:http://code.google.com/p/protobuf-c/downloads/list
(这两个安装包都放到home目录下)
安装protobuf:
bash ./configure --prefix=/HOME/账号
make
make install
安装protobuf-c:
bash ./configure --prefix=/HOME/账号 CXXFLAGS=-I/HOME/账号/include LDFLAGS=-L/HOME/账号/lib
make
make install
然后 vi ~/.bashrc 在末尾加上
export USER_LIB=/HOME/账号/lib/
export USER_INCLUDE=/HOME/账号/include/
export LD_LIBRARY_PATH=/HOME/账号/lib/
然后source ~/.bashrc
以上所需软件就装好了!!
然后就编译运行ZHT:
第一步: 跳转到登录节点3(因为我的程序对环境要求较高,管理员给我换到了ln3,且给我分配了另外的分区bcbio)
第二步:yhalloc -N 5 -p bcbio 为任务分配5个节点
第三步:yhq查看自己的任务号和节点号
第四步:ssh cn6897 跳转到其中一个计算节点
第五步:cd ZHT-master/src 进入程序所在目录
第六步:source /NSFCGZ/app/toolshs/cnmodule.sh
第七步:module load gcc/4.9.2
第八步:make
第九步:使用ssh cnxxxx依次跳转到这五个节点,查看他们的IP,输入到neighbor.conf中
第十步:yhrun -n 5 -w cn[6897-6901] - -p bcbio --jobid=4576097./zhtserver -z zht.conf -n neighbor.conf就可以看到:
第十一步:重新打开一个终端,ssh ln3 然后 ssh cn某一计算节点号 然后 cd ZHT-master/src 然后module load gcc/4.9.2 然后./zht_ben -z zht.conf -n neighbor.conf -o 1000就可以看到以下结果: