This shows you the differences between two versions of the page.
|
dwsc:hdfs:install [2013/04/02 01:17] ivan |
dwsc:hdfs:install [2013/04/10 23:46] (current) ivan |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== HDFS install ====== | + | ====== 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: | Cloudera repo csomag letöltés: | ||
| Line 7: | Line 14: | ||
| apt-get install openjdk-7-jre-headless:amd64 | apt-get install openjdk-7-jre-headless:amd64 | ||
| - | ====== Zookeeper install ====== | + | ===== Á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 | apt-get install zookeeper-server | ||
| - | ===== Journal install ===== | + | Kapcsolódó adminisztrátori dokumentáció: http://zookeeper.apache.org/doc/current/zookeeperAdmin.html |
| + | szerver inicializálás: | ||
| + | <code> | ||
| + | zookeeper-server-initialize --force | ||
| + | chown -R zookeeper:zookeeper /var/lib/zookeeper/ | ||
| + | </code> | ||
| - | ===== Hadoop general configuration ===== | + | |
| - | /etc/default/hadoop: \\ | + | A /etc/zookeeper/conf/zoo.cfg fájlban állítsuk be a szolgáltatásban résztvevő szervereket: |
| + | <code> | ||
| + | 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 | ||
| + | </code> | ||
| + | |||
| + | 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: | ||
| + | <code> | ||
| + | <property> | ||
| + | <name>fs.defaultFS</name> | ||
| + | <value>hdfs://vodstorage01</value> | ||
| + | </property> | ||
| + | </code> | ||
| + | |||
| + | A /etc/default/hadoop fájlba rakjuk bele a következő sort: \\ | ||
| export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 | export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 | ||
| - | ===== Namenode install ===== | + | 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:<password> | ||
| + | |||
| + | A <password> 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:<password> | ||
| + | |||
| + | Minta output (a végén a digest jelszó): | ||
| + | <code> | ||
| + | ...->vodstorage01-zkfcs:Ez4VnDSTGPKnPJHGhzp+2W74= | ||
| + | </code> | ||
| + | |||
| + | /etc/hadoop/conf/zk-acl.txt beállítása: \\ | ||
| + | digest:vodstorage01-zkfcs:<digest password in output>: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: | ||
| + | <code> | ||
| + | <property> | ||
| + | <name>dfs.ha.fencing.methods</name> | ||
| + | <value>sshfence(hdfs)</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.ha.fencing.ssh.private-key-files</name> | ||
| + | <value>/etc/hadoop/conf/zkfc_rsa</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.ha.fencing.ssh.connect-timeout</name> | ||
| + | <value>30000</value> | ||
| + | <description> | ||
| + | SSH connection timeout, in milliseconds, to use with the builtin | ||
| + | sshfence fencer. | ||
| + | </description> | ||
| + | </property> | ||
| + | </code> | ||
| + | |||
| + | A /etc/hadoop/conf/core-site.xml fájlban szükséges beállítások: | ||
| + | <code> | ||
| + | <property> | ||
| + | <name>ha.zookeeper.quorum</name> | ||
| + | <value>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</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>ha.zookeeper.auth</name> | ||
| + | <value>@/etc/hadoop/conf/zk-auth.txt</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>ha.zookeeper.acl</name> | ||
| + | <value>@/etc/hadoop/conf/zk-acl.txt</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.ha.automatic-failover.enabled.vodstorage01</name> | ||
| + | <value>true</value> | ||
| + | </property> | ||
| + | </configuration> | ||
| + | </code> | ||
| + | |||
| + | |||
| + | 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: | ||
| + | <code> | ||
| + | <property> | ||
| + | <name>dfs.journalnode.edits.dir</name> | ||
| + | <value>/var/lib/hadoop-hdfs/journal</value> | ||
| + | </property> | ||
| + | </code> | ||
| + | |||
| + | 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 | apt-get install hadoop-hdfs-namenode | ||
| - | ===== Namenode configuration ===== | + | A /etc/hadoop/conf/core-site.xml fájlban szükséges beállítás: |
| - | /etc/hadoop/conf/core-site.xml | + | |
| <code> | <code> | ||
| <property> | <property> | ||
| Line 29: | Line 168: | ||
| </code> | </code> | ||
| - | ===== Datanode install ===== | + | A /etc/hadoop/conf/hdfs-site.xml fájlban szükséges beállítások: |
| + | <code> | ||
| + | <property> | ||
| + | <name>dfs.name.dir</name> | ||
| + | <value>/var/lib/hadoop-hdfs/cache/hdfs/dfs/name</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.nameservices</name> | ||
| + | <value>vodstorage01</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.ha.namenodes.vodstorage01</name> | ||
| + | <value>nn1,nn2</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.namenode.rpc-address.vodstorage01.nn1</name> | ||
| + | <value>172.28.28.1:8020</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.namenode.rpc-address.vodstorage01.nn2</name> | ||
| + | <value>172.28.28.2:8020</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.namenode.http-address.vodstorage01.nn1</name> | ||
| + | <value>172.28.28.1:50070</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.namenode.http-address.vodstorage01.nn2</name> | ||
| + | <value>172.28.28.2:50070</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.namenode.shared.edits.dir</name> | ||
| + | <value>qjournal://172.28.28.11:8485;172.28.28.12:8485;172.28.28.13:8485/vodstorage01</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.replication</name> | ||
| + | <value>2</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.permissions</name> | ||
| + | <value>false</value> | ||
| + | </property> | ||
| + | </code> | ||
| + | |||
| + | 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: | ||
| + | <code> | ||
| + | root@mgmt1:~# su hdfs -c "hdfs haadmin -getServiceState nn1" | ||
| + | active | ||
| + | root@mgmt1:~# su hdfs -c "hdfs haadmin -getServiceState nn2" | ||
| + | standby | ||
| + | </code> | ||
| + | |||
| + | ===== 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 | apt-get install hadoop-hdfs-datanode | ||
| - | ===== HDFS kliens install ===== | + | A /etc/hadoop/conf/hdfs-site.xml fájlban szükséges beállítások: |
| + | <code> | ||
| + | <property> | ||
| + | <name>dfs.datanode.data.dir</name> | ||
| + | <value>file://srv/vodstorage01</value> | ||
| + | </property> | ||
| + | <property> | ||
| + | <name>dfs.datanode.data.dir.perm</name> | ||
| + | <value>700</value> | ||
| + | </property> | ||
| + | </code> | ||
| + | |||
| + | ===== HDFS kliens telepítés és konfiguráció ===== | ||
| apt-get install hadoop-client | apt-get install hadoop-client | ||
| - | ===== HDFS FUSE install ===== | + | A /etc/hadoop/conf/hdfs-site.xml fájlban szükséges beállítások: |
| + | <code> | ||
| + | <property> | ||
| + | <name>dfs.ha.automatic-failover.enabled.vodstorage01</name> | ||
| + | <value>true</value> | ||
| + | </property> | ||
| + | </code> | ||
| + | |||
| + | ===== HDFS FUSE telepítés ===== | ||
| apt-get install hadoop-hdfs-fuse | apt-get install hadoop-hdfs-fuse | ||
| - | with all dependency: \\ | + | függésekkel: \\ |
| apt-get install hadoop-hdfs-fuse hadoop-client hadoop-mapreduce hadoop-0.20-mapreduce libssl0.9.8 | apt-get install hadoop-hdfs-fuse hadoop-client hadoop-mapreduce hadoop-0.20-mapreduce libssl0.9.8 | ||
| - | libssl0.9.8 is available in squeeze, need to build one for wheezy | + | 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: \\ | FUSE mount: \\ | ||
| <code> | <code> | ||
| hadoop-fuse-dfs dfs://<namenode> <mount point> | hadoop-fuse-dfs dfs://<namenode> <mount point> | ||
| - | hadoop-fuse-dfs dfs://172.28.28.11:8020 /srv/users/default/content | + | hadoop-fuse-dfs dfs://vodstorage01 /srv/dwsc/users |
| </code> | </code> | ||
| + | |||
| + | fstab beállítás: | ||
| + | <code> | ||
| + | hadoop-fuse-dfs#dfs://vodstorage01 /srv/dwsc/users fuse notrash 0 0 | ||
| + | </code> | ||
| + | |||
| + | 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 | ||