====== 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