Hadoop Distributed File System
Transkrypt
Hadoop Distributed File System
Hadoop Distributed File System Instalacja 1. Pobieramy archiwum Hadoop’a, np.: wget http://ftp.ps.pl/pub/apache/hadoop/common/hadoop-1.0.4/hadoop1.0.4.tar.gz 2. Rozpakowujemy oraz umieszczamy w katalogu /usr/local: tar xzf hadoop-1.0.4.tar.gz sudo mv hadoop-1.0.4 /usr/local/hadoop 3. Nadajemy uprawnienia użytkownika student: sudo chown –R student:users /usr/local/hadoop Konfiguracja 1. Ustawiamy zmienną JAVA_HOME w pliku /usr/local/hadoop/conf/hadoopenv.sh: export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk/jre 2. Tworzymy katalog, gdzie trzymane będą dane Hadoop’a: sudo mkdir –p /app/hadoop/tmp 3. Zmieniamy właściciela utworzonego katalogu: sudo chown –R student:users /app/hadoop/tmp 4. Dla każdego komputera modyfikujemy plik /etc/hosts: sudo /etc/hosts i dodajemy tam wpisy: 192.168.0.1 192.168.0.2 192.168.0.3 5. master slave1 slave2 Generujemy klucz SSH na komputerze master oraz dodajemy go do authorized_keys na wszystkich komputerach (włącznie z master): ssh-keygen –t rsa –P „” (na master) cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys scp ~/.ssh/id_rsa.pub student@slave1:~/master.pub cat ~/master.pub >> ~/.ssh/authorized_keys (na slave) 6. Modyfikujemy plik konfiguracyjny /usr/local/hadoop/conf/master na zawartość – tylko na komputerze master: master 7. Modyfikujemy plik konfiguracyjny /usr/local/hadoop/conf/slaves na zawartość – tylko na komputerze master: master slave1 slave2 8. Modyfikujemy plik konfiguracyjny /usr/local/hadoop/conf/core-site.xml – na wszystkich komputerach: <property> <name>hadoop.tmp.dir</name> <value>/app/hadoop/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://master:54310</value> </property> 9. Modyfikujemy plik konfiguracyjny /usr/local/hadoop/conf/hdfs-site.xml – na wszystkich komputerach: <property> <name>dfs.replication</name> <value>2</value> </property> 10. Formatujemy system plików – na komputerze master: /usr/local/hadoop/bin/hadoop namenode –format Uruchamianie i zatrzymywanie • Uruchomienie wszystkich elementów klastra: /usr/local/hadoop/bin/start-all.sh • Zatrzymanie wszystkich elementów klastra: /usr/local/hadoop/bin/stop-all.sh • Uruchomienie HDFS’a: /usr/local/hadoop/bin/start-dfs.sh • Zatrzymanie HDFS’a: /usr/local/hadoop/bin/stop-dfs.sh • Uruchomienie usługi DataNode na węźle: /usr/local/hadoop/bin/hadoop-daemons.sh start datanode • Zatrzymanie usługi DataNode na węźle: /usr/local/hadoop/bin/hadoop-daemons.sh stop datanode • Uruchomienie usługi NameNode na węźle: /usr/local/hadoop/bin/hadoop-daemons.sh start namenode • Zatrzymywanie usługi NameNode na węźle: /usr/local/hadoop/bin/hadoop-daemons.sh stop namenode Korzystanie z HDFS Do korzystania z klastra służy program hadoop znajdujący się w /usr/local/hadoop/bin. Dostęp do danych 1. Operacje na systemie plików: hadoop fs <parametr> 2. Wylistowanie katalogu: hadoop fs –ls / 3. Utworzenie katalogu: hadoop fs –mkdir <sciezka_katalogu> 4. Wgranie pliku: hadoop fs –copyFromLocal <sciezka_lokalna> <sciezka_zdalna> 5. Pobranie pliku: hadoop fs –copyToLocal <sciezka_zdalna> <sciezka_lokalna> 6. Lista dostępnych poleceń po wywołaniu: hadoop fs Podgląd poprzez aplikację internetową • http://master:50070 -‐ podgląd NameNode’a • http://master:50060 -‐ podgląd TaskTracker'a • http://master:50030 -‐ podgląd JobTracker‘a Uprawnienia 1. Spróbujmy wgrać plik użytkownikiem innym niż student. 2. Wyłączenie sprawdzania uprawnień – plik hdfs-site.xml na komputerze master: <property> <name>dfs.permissions</name> <value>false</value> </property> 3. Restart klastra. Dostęp do danych z poziomu MapReduce 1. Ustawienie w konfiguracji /usr/local/hadoop/conf/mapred-site.xml wpisu: <property> <name>mapred.job.tracker</name> <value>master:54311</value> </property> 2. Uruchomienie usługi MapReduce – na masterze: /usr/local/hadoop/start-mapred.sh 3. Wgranie dużych plików tekstowych np. z projektu Gutenberg’a -‐ http://www.gutenberg.org/: hadoop fs -copyFromLocal ~/pg1* /dane/ 4. Uruchomienie przykładowego programu: bin/hadoop jar hadoop*examples*.jar wordcount /dane /wyniki Failover 1. Wyłączamy węzeł slave – na komputerze slave: /usr/local/hadoop/bin/hadoop-daemons.sh stop datanode 2. Sprawdzamy zachowanie klastra poprzez interfejs WWW oraz zawartość katalogów. 3. Wyłączamy drugi węzeł slave. 4. Ponownie sprawdzamy zachowanie klastra. 5. Próbujemy pobrać pliki z klastra. 6. Wgrywamy duże pliki do klastra. 7. Uruchamiamy węzły slave: /usr/local/hadoop/bin/hadoop-daemons.sh start datanode 8. Obserwujemy zachowanie się klastra. 9. Uruchamiamy: /usr/local/hadoop/bin/hadoop balancer