torque on ubuntu

hod 가 동작하기 위해서는 최소 3개의 노드가 필요하다. contrabass, cello, viola 세개의 노드로 구성을 한다고 가정한다.
이 중 contrabass 는 마스터 및 계산노드 역할을 하고, 나머지 cello, viola 는 계산노드 역할만 한다.
/opt/hadoop 디렉토리에 hadoop 이 설치되어 contrabass 가 namenode 가 되어 file system port 8020, web info port 50070 의 설정으로 hdfs 가 동작중이라 가정한다.
위의 설정을 따르는 /opt/hadoop/conf/hadoop-site.xml 파일의 내용이다.

<?xml version=”1.0″?>
<?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>

<!– Put site-specific property overrides in this file. –>

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://contrabass</value>
  </property>
  <property>
    <name>mapred.job.tracker</name>
    <value>cello:9001</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
</configuration>

여기서는 이렇게 정적으로 미리 설정된 hdfs 위에 map reduce 만 동적으로 클러스터가 구성되게 설정을 한다.
ubuntu(8.10) 에 패키징되어 있는 torque 를 설치할 때는 아래와 같은 몇가지 추가 작업을 해 주어야 한다.

마스터에 대해 (contrabass)
torque-server를 설치 하면 pbs_server를 실행 시키지 못하고 설치 스크립트가 종료한다. pbs_server -t create 를 손으로 실행을 해서 환경 설정을 해줘야 한다. 패키지 설치 스크립트에 이 부분이 빠진 듯.
dpkg –configure torque-server 를 하면 정상적으로 설치를 마무리 하고 torque-server 를 띄운다. 이걸 안해주면 synaptic 이나 update manager 를 열때마다 정상적으로 설치가 안된 패키지가 있다고 자꾸 알림 박스를 띄우니 꼭 해 준다.

sudo apt-get install torque-server
sudo pbs_server -t create
sudo killall pbs_server
sudo dpkg –configure torque-server

sudo apt-get install torque-scheduler

계산노드들 각각에 대해 (contrabass, cello, viola)
torque-mom을 설치 하면 pbs_mom를 실행 시키지 못하고 설치 스크립트가 종료한다. jobs 디렉토리와 config 파일을 생성해준다. 패키지 설치 스크립트에 이 부분이 빠진 듯.
이 참에, torque 서버 지정까지 해 준다.
dpkg –configure torque-mom 을 하면 정상적으로 설치를 마무리 하고 torque-mom 를
띄운다. 이걸 안해주면 synaptic 이나 update manager 를 열때마다 정상적으로 설치가 안된 패키지가 있다고 자꾸
알림 박스를 띄우니 꼭 해 준다.

sudo apt-get install torque-mom
sudo mkdir /var/lib/torque/mom_pri/jobs
sudo touch /var/lib/torque/mom_priv/config

sudo vi /var/lib/torque/server_name
#pbs_server가 동작하는 서버 이름
contrabass

sudo dpkg –configure torque-mom

모든 노드들에 대해
/var/lib/torque/spool 디렉토리에 t 권한 설정 및 쓰기 권한을 준다. 그렇지 않으면 나중에 클러스터를 구성해주는 hod allocate 명령이 실패한다. 패키지 설치 스크립트에 이 부분이 빠진 듯.

# rwxrwxrwt 설정
sudo chmod 1777 /var/lib/torque/spool

설치는 이로써 마쳤고, 아래는 torque 설정에 대한 내용이다.

마스터에 대해 (contrabass)

# 큐 생성
qmgr -c create queue batch
qmgr -c set queue batch queue_type = Execution
qmgr -c set queue batch enabled = True
qmgr -c set queue batch started = True

qmgr -c set server scheduling = True

${변수} 부분을 시스템 설정에 맞게 바꾼다

cp /var/lib/torque/conf/hodrc ~/.hod/hodrc
vi ~/.hod/hodrc

[hod]
stream                          = True
java-home                       = /usr/lib/jvm/java-6-sun
# 사용할 노드들을 묶을 이름
cluster                         = orchestra
cluster-factor                  = 1.8
xrs-port-range                  = 32768-65536
debug                           = 4
allocate-wait-time              = 3600
temp-dir                        = /tmp/hod

[ringmaster]
register                        = True
stream                          = False
temp-dir                        = /tmp/hod
http-port-range                 = 8000-9000
work-dirs                       = /tmp/hod/1,/tmp/hod/2
xrs-port-range                  = 32768-65536
debug                           = 4

[hodring]
stream                          = False
temp-dir                        = /tmp/hod
register                        = True
java-home                       = /usr/lib/jvm/java-6-sun
http-port-range                 = 8000-9000
xrs-port-range                  = 32768-65536
debug                           = 4

[resource_manager]
# 위에서 만든 queue 이름
queue                           = batch
batch-home                      = /usr
id                              = torque
#env-vars                       = HOD_PYTHON_HOME=/foo/bar/python-2.5.1/bin/python

[gridservice-mapred]
external                        = False
pkgs                            = /opt/hadoop
tracker_port                    = 8030
info_port                       = 50080

[gridservice-hdfs]
# 미리 정적으로 구성된 hdfs 를 사용하기 위해 True로 설정한다.
# hdfs 도 동적으로 사용하려면 그대로 False 로 두면 된다.
external                        = True
pkgs                            = /opt/hadoop
# 추가
host = contrabass
fs_port                         = 8020
info_port                       = 50070

~/.hod/hodrc 에서 정의한 cluster 이름을 노드의 호스트 명 옆에 적어준다.

vi /var/lib/torque/server_priv/nodes

contrabass orchestra
cello orchestra
viola orchestra

위에서 설정할 내용으로 torque 서버 재시작

sudo /etc/init.d/torque-server restart

 
계산노드가 모두 연결되었는지 확인

pbsnodes -a

hdfs 를 띄운다

start-dfs.sh

map reduce 클러스터를 3개의 노드로 구성을 한다

hod allocate -d ~/hod-clusters/test1 -n 3

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중