Hadoop - Kluster Multi-Node

Bab ini menjelaskan penyiapan cluster Hadoop Multi-Node di lingkungan terdistribusi.

Karena seluruh cluster tidak dapat didemonstrasikan, kami menjelaskan lingkungan cluster Hadoop menggunakan tiga sistem (satu master dan dua slave); diberikan di bawah ini adalah alamat IP mereka.

  • Hadoop Master: 192.168.1.15 (hadoop-master)
  • Hadoop Slave: 192.168.1.16 (hadoop-slave-1)
  • Hadoop Slave: 192.168.1.17 (hadoop-slave-2)

Ikuti langkah-langkah yang diberikan di bawah ini untuk menyiapkan cluster Hadoop Multi-Node.

Menginstal Java

Java adalah prasyarat utama Hadoop. Pertama-tama, Anda harus memverifikasi keberadaan java di sistem Anda menggunakan "java -version". Sintaks perintah versi java diberikan di bawah ini.

$ java -version

Jika semuanya berfungsi dengan baik, itu akan memberi Anda output berikut.

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Jika java tidak diinstal di sistem Anda, ikuti langkah-langkah yang diberikan untuk menginstal java.

Langkah 1

Unduh java (JDK <versi terbaru> - X64.tar.gz) dengan mengunjungi tautan berikut www.oracle.com

Kemudian jdk-7u71-linux-x64.tar.gz akan diunduh ke sistem Anda.

Langkah 2

Umumnya Anda akan menemukan file java yang diunduh di folder Unduhan. Verifikasi dan ekstrak filejdk-7u71-linux-x64.gz file menggunakan perintah berikut.

$ cd Downloads/
$ ls
jdk-7u71-Linux-x64.gz

$ tar zxf jdk-7u71-Linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-Linux-x64.gz

LANGKAH 3

Untuk membuat java tersedia untuk semua pengguna, Anda harus memindahkannya ke lokasi "/ usr / local /". Buka root, dan ketik perintah berikut.

$ su
password:
# mv jdk1.7.0_71 /usr/local/
# exit

LANGKAH 4

Untuk menyiapkan PATH dan JAVA_HOME variabel, tambahkan perintah berikut ke ~/.bashrc mengajukan.

export JAVA_HOME=/usr/local/jdk1.7.0_71
export PATH=PATH:$JAVA_HOME/bin

Sekarang verifikasi java -versionperintah dari terminal seperti dijelaskan di atas. Ikuti proses di atas dan instal java di semua node cluster Anda.

Membuat Akun Pengguna

Buat akun pengguna sistem pada sistem master dan slave untuk menggunakan penginstalan Hadoop.

# useradd hadoop 
# passwd hadoop

Memetakan node

Anda harus mengedit hosts mengajukan /etc/ folder di semua node, tentukan alamat IP dari setiap sistem diikuti dengan nama hostnya.

# vi /etc/hosts
enter the following lines in the /etc/hosts file.

192.168.1.109 hadoop-master 
192.168.1.145 hadoop-slave-1 
192.168.56.1 hadoop-slave-2

Mengonfigurasi Login Berbasis Kunci

Atur ssh di setiap node sedemikian rupa sehingga mereka dapat berkomunikasi satu sama lain tanpa meminta kata sandi.

# su hadoop 
$ ssh-keygen -t rsa 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub tutorialspoint@hadoop-master 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop_tp1@hadoop-slave-1 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop_tp2@hadoop-slave-2 
$ chmod 0600 ~/.ssh/authorized_keys 
$ exit

Memasang Hadoop

Di server Master, unduh dan instal Hadoop menggunakan perintah berikut.

# mkdir /opt/hadoop 
# cd /opt/hadoop/ 
# wget http://apache.mesi.com.ar/hadoop/common/hadoop-1.2.1/hadoop-1.2.0.tar.gz 
# tar -xzf hadoop-1.2.0.tar.gz 
# mv hadoop-1.2.0 hadoop
# chown -R hadoop /opt/hadoop 
# cd /opt/hadoop/hadoop/

Mengonfigurasi Hadoop

Anda harus mengkonfigurasi server Hadoop dengan melakukan perubahan berikut seperti yang diberikan di bawah ini.

core-site.xml

Buka core-site.xml file dan edit seperti yang ditunjukkan di bawah ini.

<configuration>
   <property> 
      <name>fs.default.name</name> 
      <value>hdfs://hadoop-master:9000/</value> 
   </property> 
   <property> 
      <name>dfs.permissions</name> 
      <value>false</value> 
   </property> 
</configuration>

hdfs-site.xml

Buka hdfs-site.xml file dan edit seperti yang ditunjukkan di bawah ini.

<configuration>
   <property> 
      <name>dfs.data.dir</name> 
      <value>/opt/hadoop/hadoop/dfs/name/data</value> 
      <final>true</final> 
   </property> 

   <property> 
      <name>dfs.name.dir</name> 
      <value>/opt/hadoop/hadoop/dfs/name</value> 
      <final>true</final> 
   </property> 

   <property> 
      <name>dfs.replication</name> 
      <value>1</value> 
   </property> 
</configuration>

mapred-site.xml

Buka mapred-site.xml file dan edit seperti yang ditunjukkan di bawah ini.

<configuration>
   <property> 
      <name>mapred.job.tracker</name> 
      <value>hadoop-master:9001</value> 
   </property> 
</configuration>

hadoop-env.sh

Buka hadoop-env.sh file dan edit JAVA_HOME, HADOOP_CONF_DIR, dan HADOOP_OPTS seperti yang ditunjukkan di bawah ini.

Note - Atur JAVA_HOME sesuai konfigurasi sistem Anda.

export JAVA_HOME=/opt/jdk1.7.0_17
export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true
export HADOOP_CONF_DIR=/opt/hadoop/hadoop/conf

Menginstal Hadoop di Server Slave

Instal Hadoop di semua server budak dengan mengikuti perintah yang diberikan.

# su hadoop 
$ cd /opt/hadoop 
$ scp -r hadoop hadoop-slave-1:/opt/hadoop 
$ scp -r hadoop hadoop-slave-2:/opt/hadoop

Mengonfigurasi Hadoop di Server Master

Buka server master dan konfigurasikan dengan mengikuti perintah yang diberikan.

# su hadoop 
$ cd /opt/hadoop/hadoop

Mengonfigurasi Master Node

$ vi etc/hadoop/masters

hadoop-master

Mengonfigurasi Slave Node

$ vi etc/hadoop/slaves

hadoop-slave-1 
hadoop-slave-2

Format Node Nama di Hadoop Master

# su hadoop 
$ cd /opt/hadoop/hadoop 
$ bin/hadoop namenode –format
11/10/14 10:58:07 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG: host = hadoop-master/192.168.1.109 
STARTUP_MSG: args = [-format] 
STARTUP_MSG: version = 1.2.0 
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1479473;
compiled by 'hortonfo' on Mon May 6 06:59:37 UTC 2013 
STARTUP_MSG: java = 1.7.0_71 

************************************************************/
11/10/14 10:58:08 INFO util.GSet: Computing capacity for map BlocksMap
editlog=/opt/hadoop/hadoop/dfs/name/current/edits
………………………………………………….
………………………………………………….
…………………………………………………. 
11/10/14 10:58:08 INFO common.Storage: Storage directory 
/opt/hadoop/hadoop/dfs/name has been successfully formatted.
11/10/14 10:58:08 INFO namenode.NameNode: 
SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop-master/192.168.1.15
************************************************************/

Memulai Layanan Hadoop

Perintah berikut adalah memulai semua layanan Hadoop di Hadoop-Master.

$ cd $HADOOP_HOME/sbin
$ start-all.sh

Menambahkan DataNode Baru di Cluster Hadoop

Diberikan di bawah ini adalah langkah-langkah yang harus diikuti untuk menambahkan node baru ke cluster Hadoop.

Jaringan

Tambahkan node baru ke cluster Hadoop yang ada dengan beberapa konfigurasi jaringan yang sesuai. Asumsikan konfigurasi jaringan berikut.

Untuk Konfigurasi Node Baru -

IP address : 192.168.1.103 
netmask : 255.255.255.0
hostname : slave3.in

Menambahkan Pengguna dan Akses SSH

Tambahkan Pengguna

Pada node baru, tambahkan pengguna "hadoop" dan setel sandi pengguna Hadoop menjadi "hadoop123" atau apa pun yang Anda inginkan dengan menggunakan perintah berikut.

useradd hadoop
passwd hadoop

Setup Password kurang konektivitas dari master ke slave baru.

Jalankan yang berikut di master

mkdir -p $HOME/.ssh 
chmod 700 $HOME/.ssh 
ssh-keygen -t rsa -P '' -f $HOME/.ssh/id_rsa 
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys 
chmod 644 $HOME/.ssh/authorized_keys
Copy the public key to new slave node in hadoop user $HOME directory
scp $HOME/.ssh/id_rsa.pub [email protected]:/home/hadoop/

Jalankan yang berikut pada budak

Masuk ke hadoop. Jika tidak, login ke pengguna hadoop.

su hadoop ssh -X [email protected]

Salin konten kunci publik ke dalam file "$HOME/.ssh/authorized_keys" lalu ubah izin untuk hal yang sama dengan menjalankan perintah berikut.

cd $HOME
mkdir -p $HOME/.ssh 
chmod 700 $HOME/.ssh
cat id_rsa.pub >>$HOME/.ssh/authorized_keys 
chmod 644 $HOME/.ssh/authorized_keys

Periksa login ssh dari mesin master. Sekarang periksa apakah Anda dapat ssh ke node baru tanpa kata sandi dari master.

ssh [email protected] or hadoop@slave3

Tetapkan Nama Host Node Baru

Anda dapat mengatur nama host dalam file /etc/sysconfig/network

On new slave3 machine

NETWORKING = yes 
HOSTNAME = slave3.in

Untuk membuat perubahan efektif, restart mesin atau jalankan perintah hostname ke mesin baru dengan nama host masing-masing (restart adalah pilihan yang baik).

Pada mesin node slave3 -

nama host slave3.in

Memperbarui /etc/hosts di semua mesin cluster dengan baris berikut -

192.168.1.102 slave3.in slave3

Sekarang coba ping mesin dengan nama host untuk memeriksa apakah itu menyelesaikan ke IP atau tidak.

Di mesin node baru -

ping master.in

Mulai DataNode di New Node

Mulai daemon datanode secara manual menggunakan $HADOOP_HOME/bin/hadoop-daemon.sh script. Ini akan secara otomatis menghubungi master (NameNode) dan bergabung dengan cluster. Kita juga harus menambahkan node baru ke file conf / slaves di server master. Perintah berbasis skrip akan mengenali node baru.

Masuk ke node baru

su hadoop or ssh -X [email protected]

Mulai HDFS pada node budak yang baru ditambahkan dengan menggunakan perintah berikut

./bin/hadoop-daemon.sh start datanode

Periksa output dari perintah jps pada node baru. Ini terlihat sebagai berikut.

$ jps
7141 DataNode
10312 Jps

Menghapus DataNode dari Cluster Hadoop

Kami dapat menghapus node dari cluster dengan cepat, saat sedang berjalan, tanpa kehilangan data. HDFS menyediakan fitur decommissioning, yang memastikan bahwa penghapusan node dilakukan dengan aman. Untuk menggunakannya, ikuti langkah-langkah seperti yang diberikan di bawah ini -

Langkah 1 - Masuk ke master

Masuk ke pengguna mesin master tempat Hadoop diinstal.

$ su hadoop

Langkah 2 - Ubah konfigurasi cluster

File pengecualian harus dikonfigurasi sebelum memulai cluster. Tambahkan kunci bernama dfs.hosts.exclude ke file$HADOOP_HOME/etc/hadoop/hdfs-site.xmlmengajukan. Nilai yang terkait dengan kunci ini memberikan jalur lengkap ke file di sistem file lokal NameNode yang berisi daftar mesin yang tidak diizinkan untuk menyambung ke HDFS.

Misalnya, tambahkan baris ini ke etc/hadoop/hdfs-site.xml mengajukan.

<property> 
   <name>dfs.hosts.exclude</name> 
   <value>/home/hadoop/hadoop-1.2.1/hdfs_exclude.txt</value> 
   <description>DFS exclude</description> 
</property>

Langkah 3 - Tentukan host yang akan dinonaktifkan

Setiap mesin yang akan dinonaktifkan harus ditambahkan ke file yang diidentifikasi oleh hdfs_exclude.txt, satu nama domain per baris. Ini akan mencegah mereka terhubung ke NameNode. Isi dari"/home/hadoop/hadoop-1.2.1/hdfs_exclude.txt" file ditampilkan di bawah, jika Anda ingin menghapus DataNode2.

slave2.in

Langkah 4 - Paksa muat ulang konfigurasi

Jalankan perintahnya "$HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes" tanpa tanda kutip.

$ $HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes

Ini akan memaksa NameNode untuk membaca ulang konfigurasinya, termasuk file 'excludes' yang baru diperbarui. Ini akan menonaktifkan node selama periode waktu tertentu, memberikan waktu untuk setiap blok node untuk direplikasi ke mesin yang dijadwalkan untuk tetap aktif.

Di slave2.in, periksa keluaran perintah jps. Setelah beberapa waktu, Anda akan melihat proses DataNode dimatikan secara otomatis.

Langkah 5 - Matikan node

Setelah proses penonaktifan selesai, perangkat keras yang dinonaktifkan dapat dimatikan dengan aman untuk pemeliharaan. Jalankan perintah report ke dfsadmin untuk memeriksa status decommissioning. Perintah berikut akan menjelaskan status node decommissioning dan node yang terhubung ke cluster.

$ $HADOOP_HOME/bin/hadoop dfsadmin -report

Langkah 6 - Edit lagi file yang tidak termasuk

Setelah mesin dinonaktifkan, mereka dapat dihapus dari file 'excludes'. Lari"$HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes"sekali lagi akan membaca kembali file yang tidak disertakan ke dalam NameNode; memungkinkan DataNodes untuk bergabung kembali dengan cluster setelah pemeliharaan selesai, atau kapasitas tambahan diperlukan di cluster lagi, dll.

Special Note- Jika proses di atas diikuti dan proses pelacak tugas masih berjalan pada node, maka proses tersebut perlu dimatikan. Salah satu caranya adalah dengan melepaskan mesin seperti yang kita lakukan pada langkah-langkah di atas. Master akan mengenali proses tersebut secara otomatis dan akan menyatakan sebagai mati. Tidak perlu mengikuti proses yang sama untuk menghapus pelacak tugas karena TIDAK terlalu penting dibandingkan dengan DataNode. DataNode berisi data yang ingin Anda hapus dengan aman tanpa kehilangan data.

Pelacak tugas dapat dijalankan / dimatikan dengan cepat dengan perintah berikut ini kapan saja.

$ $HADOOP_HOME/bin/hadoop-daemon.sh stop tasktracker
$HADOOP_HOME/bin/hadoop-daemon.sh start tasktracker