Hadoop - Pengaturan Lingkungan

Hadoop didukung oleh platform GNU / Linux dan citarasanya. Oleh karena itu, kita harus menginstal sistem operasi Linux untuk mengatur lingkungan Hadoop. Jika Anda memiliki OS selain Linux, Anda dapat menginstal perangkat lunak Virtualbox di dalamnya dan memiliki Linux di dalam Virtualbox.

Pengaturan Pra-instalasi

Sebelum menginstal Hadoop ke lingkungan Linux, kita perlu mengatur Linux menggunakan ssh(Secure Shell). Ikuti langkah-langkah yang diberikan di bawah ini untuk menyiapkan lingkungan Linux.

Membuat Pengguna

Pada awalnya, disarankan untuk membuat pengguna terpisah untuk Hadoop untuk mengisolasi sistem file Hadoop dari sistem file Unix. Ikuti langkah-langkah yang diberikan di bawah ini untuk membuat pengguna -

  • Buka root menggunakan perintah "su".

  • Buat pengguna dari akun root menggunakan perintah "useradd username".

  • Sekarang Anda dapat membuka akun pengguna yang sudah ada menggunakan perintah "su username".

Buka terminal Linux dan ketik perintah berikut untuk membuat pengguna.

$ su 
   password: 
# useradd hadoop 
# passwd hadoop 
   New passwd: 
   Retype new passwd

Penyiapan SSH dan Pembuatan Kunci

Penyiapan SSH diperlukan untuk melakukan operasi berbeda pada cluster seperti memulai, menghentikan, operasi shell daemon terdistribusi. Untuk mengautentikasi pengguna Hadoop yang berbeda, diperlukan pasangan kunci publik / pribadi untuk pengguna Hadoop dan membagikannya dengan pengguna yang berbeda.

Perintah berikut digunakan untuk membuat pasangan nilai kunci menggunakan SSH. Salin formulir kunci publik id_rsa.pub ke authorized_keys, dan berikan pemilik izin baca dan tulis masing-masing ke file authorized_keys.

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys

Menginstal Java

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

$ java -version

Jika semuanya beres, 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 di bawah ini 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 terapkan semua perubahan ke dalam sistem yang sedang berjalan.

$ source ~/.bashrc

LANGKAH 5

Gunakan perintah berikut untuk mengkonfigurasi alternatif java -

# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2

# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar

Sekarang verifikasi perintah java -version dari terminal seperti yang dijelaskan di atas.

Mendownload Hadoop

Unduh dan ekstrak Hadoop 2.4.1 dari yayasan perangkat lunak Apache menggunakan perintah berikut.

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ 
hadoop-2.4.1.tar.gz 
# tar xzf hadoop-2.4.1.tar.gz 
# mv hadoop-2.4.1/* to hadoop/ 
# exit

Mode Operasi Hadoop

Setelah Anda mengunduh Hadoop, Anda dapat mengoperasikan cluster Hadoop Anda di salah satu dari tiga mode yang didukung -

  • Local/Standalone Mode - Setelah mengunduh Hadoop di sistem Anda, secara default, ini dikonfigurasi dalam mode mandiri dan dapat dijalankan sebagai proses java tunggal.

  • Pseudo Distributed Mode- Ini adalah simulasi terdistribusi pada mesin tunggal. Setiap daemon Hadoop seperti hdfs, yarn, MapReduce dll., Akan berjalan sebagai proses java yang terpisah. Mode ini berguna untuk pengembangan.

  • Fully Distributed Mode- Mode ini sepenuhnya didistribusikan dengan minimal dua mesin atau lebih sebagai sebuah cluster. Kami akan menemukan mode ini secara mendetail di bab-bab selanjutnya.

Menginstal Hadoop dalam Mode Standalone

Di sini kita akan membahas pemasangan Hadoop 2.4.1 dalam mode mandiri.

Tidak ada daemon yang berjalan dan semuanya berjalan dalam satu JVM. Mode mandiri cocok untuk menjalankan program MapReduce selama pengembangan, karena mudah untuk menguji dan men-debugnya.

Menyiapkan Hadoop

Anda dapat menyetel variabel lingkungan Hadoop dengan menambahkan perintah berikut ke ~/.bashrc mengajukan.

export HADOOP_HOME=/usr/local/hadoop

Sebelum melangkah lebih jauh, Anda perlu memastikan bahwa Hadoop berfungsi dengan baik. Cukup keluarkan perintah berikut -

$ hadoop version

Jika semuanya baik-baik saja dengan pengaturan Anda, maka Anda akan melihat hasil berikut -

Hadoop 2.4.1 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4

Ini berarti pengaturan mode mandiri Hadoop Anda berfungsi dengan baik. Secara default, Hadoop dikonfigurasi untuk berjalan dalam mode tidak terdistribusi di satu mesin.

Contoh

Mari kita periksa contoh sederhana Hadoop. Instalasi Hadoop memberikan contoh file jar MapReduce berikut, yang menyediakan fungsionalitas dasar MapReduce dan dapat digunakan untuk menghitung, seperti nilai Pi, jumlah kata dalam daftar file tertentu, dll.

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar

Mari kita memiliki direktori input di mana kita akan mendorong beberapa file dan persyaratan kita adalah menghitung jumlah kata dalam file tersebut. Untuk menghitung jumlah kata, kita tidak perlu menulis MapReduce kita, asalkan file .jar berisi implementasi word count. Anda dapat mencoba contoh lain menggunakan file .jar yang sama; cukup keluarkan perintah berikut untuk memeriksa program fungsional MapReduce yang didukung oleh file hadoop-mapreduce-example-2.2.0.jar.

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar

Langkah 1

Buat file konten sementara di direktori input. Anda dapat membuat direktori input ini di mana pun Anda ingin bekerja.

$ mkdir input $ cp $HADOOP_HOME/*.txt input $ ls -l input

Ini akan memberikan file berikut di direktori input Anda -

total 24 
-rw-r--r-- 1 root root 15164 Feb 21 10:14 LICENSE.txt 
-rw-r--r-- 1 root root   101 Feb 21 10:14 NOTICE.txt
-rw-r--r-- 1 root root  1366 Feb 21 10:14 README.txt

File-file ini telah disalin dari direktori home instalasi Hadoop. Untuk percobaan Anda, Anda dapat memiliki kumpulan file yang berbeda dan besar.

Langkah 2

Mari kita mulai proses Hadoop untuk menghitung jumlah total kata di semua file yang tersedia di direktori input, sebagai berikut -

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar  wordcount input output

LANGKAH 3

Langkah-2 akan melakukan pemrosesan yang diperlukan dan menyimpan output dalam file output / part-r00000, yang dapat Anda periksa dengan menggunakan -

$cat output/*

Ini akan mencantumkan semua kata bersama dengan jumlah totalnya yang tersedia di semua file yang tersedia di direktori input.

"AS      4 
"Contribution" 1 
"Contributor" 1 
"Derivative 1
"Legal 1
"License"      1
"License");     1 
"Licensor"      1
"NOTICE”        1 
"Not      1 
"Object"        1 
"Source”        1 
"Work”    1 
"You"     1 
"Your")   1 
"[]"      1 
"control"       1 
"printed        1 
"submitted"     1 
(50%)     1 
(BIS),    1 
(C)       1 
(Don't)   1 
(ECCN)    1 
(INCLUDING      2 
(INCLUDING,     2 
.............

Menginstal Hadoop dalam Pseudo Distributed Mode

Ikuti langkah-langkah yang diberikan di bawah ini untuk menginstal Hadoop 2.4.1 dalam mode pseudo didistribusikan.

Langkah 1 - Menyiapkan Hadoop

Anda dapat menyetel variabel lingkungan Hadoop dengan menambahkan perintah berikut ke ~/.bashrc mengajukan.

export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_INSTALL=$HADOOP_HOME

Sekarang terapkan semua perubahan ke dalam sistem yang sedang berjalan.

$ source ~/.bashrc

Langkah 2 - Konfigurasi Hadoop

Anda dapat menemukan semua file konfigurasi Hadoop di lokasi "$ HADOOP_HOME / etc / hadoop". Diperlukan untuk membuat perubahan pada file konfigurasi tersebut sesuai dengan infrastruktur Hadoop Anda.

$ cd $HADOOP_HOME/etc/hadoop

Untuk mengembangkan program Hadoop di java, Anda harus mengatur ulang variabel lingkungan java di hadoop-env.sh mengajukan dengan mengganti JAVA_HOME nilai dengan lokasi java di sistem Anda.

export JAVA_HOME=/usr/local/jdk1.7.0_71

Berikut ini adalah daftar file yang harus Anda edit untuk mengkonfigurasi Hadoop.

core-site.xml

Itu core-site.xml file berisi informasi seperti nomor port yang digunakan untuk instance Hadoop, memori yang dialokasikan untuk sistem file, batas memori untuk menyimpan data, dan ukuran buffer Baca / Tulis.

Buka core-site.xml dan tambahkan properti berikut di antara tag <configuration>, </configuration>.

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value> 
   </property>
</configuration>

hdfs-site.xml

Itu hdfs-site.xmlfile berisi informasi seperti nilai data replikasi, jalur kode nama, dan jalur datanode sistem file lokal Anda. Artinya tempat di mana Anda ingin menyimpan infrastruktur Hadoop.

Mari kita asumsikan data berikut.

dfs.replication (data replication value) = 1 

(In the below given path /hadoop/ is the user name. 
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) 
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode 

(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) 
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode

Buka file ini dan tambahkan properti berikut di antara tag <configuration> </configuration> di file ini.

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
    
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>
    
   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

Note - Dalam file di atas, semua nilai properti ditentukan pengguna dan Anda dapat membuat perubahan sesuai dengan infrastruktur Hadoop Anda.

yarn-site.xml

File ini digunakan untuk mengkonfigurasi benang menjadi Hadoop. Buka file yarn-site.xml dan tambahkan properti berikut di antara tag <configuration>, </configuration> di file ini.

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> 
   </property>
</configuration>

mapred-site.xml

File ini digunakan untuk menentukan kerangka MapReduce mana yang kita gunakan. Secara default, Hadoop berisi template benang-situs.xml. Pertama-tama, Anda harus menyalin file darimapred-site.xml.template untuk mapred-site.xml file menggunakan perintah berikut.

$ cp mapred-site.xml.template mapred-site.xml

Buka mapred-site.xml file dan tambahkan properti berikut di antara tag <configuration>, </configuration> di file ini.

<configuration>
   <property> 
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

Memverifikasi Instalasi Hadoop

Langkah-langkah berikut digunakan untuk memverifikasi penginstalan Hadoop.

Langkah 1 - Penyiapan Node Nama

Siapkan namenode menggunakan perintah “hdfs namenode -format” sebagai berikut.

$ cd ~ 
$ hdfs namenode -format

Hasil yang diharapkan adalah sebagai berikut.

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = localhost/192.168.1.11 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 2.4.1 
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory 
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to 
retain 1 images with txid >= 0 
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 
************************************************************/

Langkah 2 - Memverifikasi Hadoop dfs

Perintah berikut digunakan untuk memulai dfs. Menjalankan perintah ini akan memulai sistem file Hadoop Anda.

$ start-dfs.sh

Output yang diharapkan adalah sebagai berikut -

10/24/14 21:37:56 
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

Langkah 3 - Memverifikasi Skrip Benang

Perintah berikut digunakan untuk memulai skrip benang. Menjalankan perintah ini akan memulai benang daemon Anda.

$ start-yarn.sh

Output yang diharapkan sebagai berikut -

starting yarn daemons 
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out 
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

Langkah 4 - Mengakses Hadoop di Browser

Nomor port default untuk mengakses Hadoop adalah 50070. Gunakan url berikut untuk mendapatkan layanan Hadoop di browser.

http://localhost:50070/

Langkah 5 - Verifikasi Semua Aplikasi untuk Cluster

Nomor port default untuk mengakses semua aplikasi cluster adalah 8088. Gunakan url berikut untuk mengunjungi layanan ini.

http://localhost:8088/