====== HDFS install HA namenode-okkal ======
Kapcsolódó oldalak: \\
https://ccp.cloudera.com/display/CDH4DOC/Software+Configuration+for+Quorum-based+Storage \\
https://ccp.cloudera.com/display/CDHDOC/ZooKeeper+Installation \\
https://ccp.cloudera.com/display/CDH4DOC/HDFS+High+Availability+Initial+Deployment \\
https://ccp.cloudera.com/display/CDH4DOC/Deploying+HDFS+on+a+Cluster#DeployingHDFSonaCluster-FormattingtheNameNode
Cloudera repo csomag letöltés:
https://ccp.cloudera.com/display/CDH4DOC/CDH4+Installation#CDH4Installation-DebianPackage
dpkg -i cdh4-repository_1.0_all.deb ; apt-get update \\
apt-get install openjdk-7-jre-headless:amd64
===== Általános konfigurációs beállítások =====
.bashrc: \\
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 \\
export ZK_HOME=/usr/lib/zookeeper
===== Zookeeper telepítés és konfiguráció =====
A következő 5 gépre kell feltelepíteni: mgmt1, mgmt2, stg1, stg2, stg3
apt-get install zookeeper-server
Kapcsolódó adminisztrátori dokumentáció: http://zookeeper.apache.org/doc/current/zookeeperAdmin.html
szerver inicializálás:
zookeeper-server-initialize --force
chown -R zookeeper:zookeeper /var/lib/zookeeper/
A /etc/zookeeper/conf/zoo.cfg fájlban állítsuk be a szolgáltatásban résztvevő szervereket:
server.1=172.28.28.1:2888:3888
server.2=172.28.28.2:2888:3888
server.3=172.28.28.11:2888:3888
server.4=172.28.28.12:2888:3888
server.5=172.28.28.13:2888:3888
A /var/lib/zookeper/myid fájlba írjuk be a zoo.cfg fájlban a serverhez tartozó sorszámot.
service start: \\
service zookeeper-server start
===== Hadoop HDFS failover controller telepítés =====
A következő 2 gépre kell feltelepíteni: mgmt1, mgmt2
apt-get install hadoop-hdfs-zkfc
A /etc/hadoop/conf/core-site.xml fájlban állítsuk be fájlrendszer elérhetőségét:
fs.defaultFS
hdfs://vodstorage01
A /etc/default/hadoop fájlba rakjuk bele a következő sort: \\
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
A failover controller a zookeepert használja a gépen futó namenode státuszának megállapításához.
/etc/hadoop/conf/zk-auth.txt beállítása: \\
digest:vodstorage01-zkfcs:
A helyére illesszünk be egy hosszú generált jelszót.
chown root:hdfs /etc/haddop/conf/zk-auth.txt \\
chmod 640 /etc/hadoop/conf/zk-auth.txt
java -cp $ZK_HOME/lib/*:$ZK_HOME/zookeeper-3.4.5-cdh4.2.0.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider vodstorage01-zkfcs:
Minta output (a végén a digest jelszó):
...->vodstorage01-zkfcs:Ez4VnDSTGPKnPJHGhzp+2W74=
/etc/hadoop/conf/zk-acl.txt beállítása: \\
digest:vodstorage01-zkfcs::rwcda
chown root:hdfs /etc/hadoop/conf/zk-acl.txt \\
chmod 640 /etc/hadoop/conf/zk-acl.txt
Generáljunk ssh kulcsot (ssh-keygen) és rakjuk a kulcs fájlt a /etc/hadoop/conf mappába. \\
A publikus kulcsot adjuk hozzá a másik namenode szerver hdfs userének authorized_keys fájljához.
(/var/lib/hdfs/.ssh/authorized_keys)
Próbájluk ki, hogy kulcs autentikációval be lehet-e ssh-zni a másik gépre.
/etc/hadoop/conf/hdfs-site.xml fájlban szükséges beállítások:
dfs.ha.fencing.methods
sshfence(hdfs)
dfs.ha.fencing.ssh.private-key-files
/etc/hadoop/conf/zkfc_rsa
dfs.ha.fencing.ssh.connect-timeout
30000
SSH connection timeout, in milliseconds, to use with the builtin
sshfence fencer.
A /etc/hadoop/conf/core-site.xml fájlban szükséges beállítások:
ha.zookeeper.quorum
172.28.28.1:2181,172.28.28.2:2181,172.28.28.11:2181,172.28.28.12:2181,172.28.28.13:2181
ha.zookeeper.auth
@/etc/hadoop/conf/zk-auth.txt
ha.zookeeper.acl
@/etc/hadoop/conf/zk-acl.txt
dfs.ha.automatic-failover.enabled.vodstorage01
true
A ha.zookeeper.quorum étrékének adjuk meg a vesszővel elválasztott listaként a zookeeper szervereket. \\
A ha.zookeeper.auth és ha.zookeeper.acl értékének adjuk meg a korábban elkészített auth és acl fájlok útvonalát. (A @ a fájlnév előtt szükséges.)
service start: \\
service hadoop-hdfs-zkfc start
===== Journal telepítés és konfiguráció =====
A következő 3 gépre kell feltelepíteni: stg1, stg2, stg3
apt-get install hadoop-hdfs-journalnode
A /etc/hadoop/conf/hdfs-site.xml fájlban szükséges beállítások:
dfs.journalnode.edits.dir
/var/lib/hadoop-hdfs/journal
Ellenőrizzük, hogy a megadott mappa létezik-e és a hdfs user tudja-e írni és olvasni.
===== Namenode telepítés és konfiguráció =====
A következő 2 gépre kell feltelepíteni: mgmt1, mgmt2
apt-get install hadoop-hdfs-namenode
A /etc/hadoop/conf/core-site.xml fájlban szükséges beállítás:
fs.defaultFS
hdfs://vodstorage01
A /etc/hadoop/conf/hdfs-site.xml fájlban szükséges beállítások:
dfs.name.dir
/var/lib/hadoop-hdfs/cache/hdfs/dfs/name
dfs.nameservices
vodstorage01
dfs.ha.namenodes.vodstorage01
nn1,nn2
dfs.namenode.rpc-address.vodstorage01.nn1
172.28.28.1:8020
dfs.namenode.rpc-address.vodstorage01.nn2
172.28.28.2:8020
dfs.namenode.http-address.vodstorage01.nn1
172.28.28.1:50070
dfs.namenode.http-address.vodstorage01.nn2
172.28.28.2:50070
dfs.namenode.shared.edits.dir
qjournal://172.28.28.11:8485;172.28.28.12:8485;172.28.28.13:8485/vodstorage01
dfs.replication
2
dfs.permissions
false
Első namenode-on: \\
su hdfs -c "hadoop namenode -format" \\
su hdfs -c "hdfs namenode -initializeSharedEdits" \\
service hadoop-hdfs-namenode start
Második namenode-on: \\
root@mgmt1:~# rsync -av /var/lib/hadoop-hdfs/cache/hdfs/dfs/name/ root@mgmt2:/var/lib/hadoop-hdfs/cache/hdfs/dfs/name/ \\
Bug: https://issues.apache.org/jira/browse/HDFS-3752 \\
su hdfs -c "hdfs namenode -bootstrapStandby" \\
service hadoop-hdfs-namenode start
Ellenőrzés:
root@mgmt1:~# su hdfs -c "hdfs haadmin -getServiceState nn1"
active
root@mgmt1:~# su hdfs -c "hdfs haadmin -getServiceState nn2"
standby
===== Datanode telepítés és konfiguráció =====
A következő 3 gépre kell feltelepíteni: stg1, stg2, stg3
apt-get install hadoop-hdfs-datanode
A /etc/hadoop/conf/hdfs-site.xml fájlban szükséges beállítások:
dfs.datanode.data.dir
file://srv/vodstorage01
dfs.datanode.data.dir.perm
700
===== HDFS kliens telepítés és konfiguráció =====
apt-get install hadoop-client
A /etc/hadoop/conf/hdfs-site.xml fájlban szükséges beállítások:
dfs.ha.automatic-failover.enabled.vodstorage01
true
===== HDFS FUSE telepítés =====
apt-get install hadoop-hdfs-fuse
függésekkel: \\
apt-get install hadoop-hdfs-fuse hadoop-client hadoop-mapreduce hadoop-0.20-mapreduce libssl0.9.8
TODO: libssl0.9.8 csak squeeze-ben van, wheezy-re kell készíteni buildet.
/etc/default/hadoop-ba érdemes felvenni: \\
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
FUSE mount: \\
hadoop-fuse-dfs dfs://
hadoop-fuse-dfs dfs://vodstorage01 /srv/dwsc/users
fstab beállítás:
hadoop-fuse-dfs#dfs://vodstorage01 /srv/dwsc/users fuse notrash 0 0
NFS root-ban chrootolva érdemes szerkeszteni, mert egy-két mappa symlinkelve van!
===== HDFS státusz ellenőrzés =====
http://172.28.28.1:50070/dfshealth.jsp vagy http://172.28.28.2:50070/dfshealth.jsp