Topik ini menjelaskan cara menyiapkan kluster Hadoop pada instans Elastic Compute Service (ECS) Linux—baik sebagai pengaturan pseudo-distributed node tunggal untuk pengembangan dan pengujian, maupun kluster terdistribusi multi-node untuk beban kerja produksi.
Latar Belakang
Hadoop adalah framework komputasi terdistribusi berbasis Java yang bersifat open-source, dikembangkan oleh Apache Foundation. Hadoop memproses kumpulan data besar di seluruh kluster komputer menggunakan model pemrograman sederhana, dengan skalabilitas dari satu server hingga ribuan mesin. Ketersediaan tinggi ditangani di lapisan aplikasi, bukan di lapisan perangkat keras—Hadoop mendeteksi dan memulihkan diri dari kegagalan secara otomatis.
Dua komponen utama dalam Hadoop:
Hadoop Distributed File System (HDFS): Sistem file terdistribusi untuk menyimpan dan mengakses data aplikasi di seluruh kluster.
MapReduce: Framework komputasi terdistribusi yang membagi pekerjaan menjadi tugas map dan tugas reduce, yang dijadwalkan di seluruh node kluster untuk pemrosesan paralel.
Pilih mode
| Mode pseudo-distributed | Distributed Mode | |
|---|---|---|
| Nodes | Node tunggal (semua layanan pada satu mesin) | Tiga node atau lebih |
| Pemanfaatan resource | Satu mesin | Beberapa mesin |
| Toleransi kesalahan | Rendah — single point of failure | Tinggi — replikasi data dan ketersediaan tinggi |
| Kasus penggunaan | Pengembangan, pengujian, pembelajaran | Produksi, ketersediaan tinggi, pemrosesan data skala besar |
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ECS yang memenuhi persyaratan berikut: Untuk petunjuk menambahkan aturan security group, lihat Manage security group rules.
Mode pseudo-distributed Distributed Mode Jumlah instans 1 3 atau lebih Deployment set — Tambahkan instans ke deployment set menggunakan strategi High Availability untuk meningkatkan ketersediaan dan disaster recovery Sistem operasi Linux Linux Alamat IP publik Setiap instans memiliki alamat IP publik yang ditetapkan sistem atau elastic IP address (EIP) yang terkait Setiap instans memiliki alamat IP publik yang ditetapkan sistem atau elastic IP address (EIP) yang terkait Security group Buka port 22, 443, 8088, dan 9870 Buka port 22, 443, 8088, 9870, dan 9868 Java Development Kit (JDK) yang kompatibel telah terinstal atau siap diinstal. Topik ini menggunakan Hadoop 3.2.4 dengan Java 8. Untuk kombinasi versi lainnya, lihat Hadoop Java Versions.
Versi Hadoop Versi Java yang didukung Hadoop 3.3 Java 8, Java 11 Hadoop 3.0.x–3.2.x Java 8 Hadoop 2.7.x–2.10.x Java 7, Java 8
Prosedur
Siapkan kluster Hadoop terdistribusi
Prosedur ini menyebarkan Hadoop di tiga node. hadoop001 adalah node master, sedangkan hadoop002 dan hadoop003 adalah node pekerja.
| Komponen | hadoop001 | hadoop002 | hadoop003 |
|---|---|---|---|
| HDFS | NameNode, DataNode | DataNode | SecondaryNameNode, DataNode |
| YARN | NodeManager | ResourceManager, NodeManager | NodeManager |
Jalankan semua perintah sebagai pengguna non-root (misalnya, ecs-user). Apache tidak merekomendasikan menjalankan Hadoop sebagai pengguna root—hal ini dapat menyebabkan error izin dan menimbulkan risiko keamanan. Jika Anda harus menggunakan pengguna root, lihat konfigurasi pengguna root di akhir bagian ini.
Langkah 1: Instal JDK pada semua node
Lakukan langkah-langkah berikut pada ketiga instans.
Hubungkan ke instans ECS. Untuk petunjuknya, lihat Connect to Linux.
Unduh paket JDK 8.
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gzEkstrak paket tersebut.
tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gzPindahkan dan ubah nama direktori hasil ekstraksi. Contoh ini menggunakan
java8sebagai nama direktori.sudo mv java-se-8u41-ri/ /usr/java8Konfigurasikan variabel lingkungan Java. Jika Anda menggunakan nama direktori berbeda pada langkah sebelumnya, ganti
java8dengan nama tersebut.sudo sh -c "echo 'export JAVA_HOME=/usr/java8' >> /etc/profile" sudo sh -c 'echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile' source /etc/profileVerifikasi instalasi.
java -versionOutput berikut mengonfirmasi bahwa JDK telah terinstal.

Langkah 2: Konfigurasikan SSH tanpa password pada semua node
Node Hadoop berkomunikasi melalui SSH. Konfigurasikan SSH tanpa password pada setiap instans agar node dapat saling terhubung tanpa prompt password.
Tambahkan pemetaan hostname ke alamat IP untuk ketiga instans ke
/etc/hostspada setiap node.sudo vim /etc/hostsTambahkan satu baris untuk setiap instans dalam format
<private-IP-address> <hostname>:<Primary private IP address> hadoop001 <Primary private IP address> hadoop002 <Primary private IP address> hadoop003Buat pasangan kunci SSH pada setiap instans.
ssh-keygen -t rsa
Dari hadoop001, salin kunci publik ke ketiga node. Masukkan
yesdan password instans saat diminta.ssh-copy-id hadoop001 ssh-copy-id hadoop002 ssh-copy-id hadoop003Output berikut mengonfirmasi bahwa SSH tanpa password telah dikonfigurasi.

Langkah 3: Instal Hadoop pada semua node
Lakukan langkah-langkah berikut pada ketiga Instans tersebut.
Unduh paket Hadoop 3.2.4 dari mirror Alibaba Cloud.
wget http://mirrors.cloud.aliyuncs.com/apache/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gzEkstrak paket ke
/opt/hadoop.sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt/ sudo mv /opt/hadoop-3.2.4 /opt/hadoopKonfigurasikan variabel lingkungan Hadoop.
sudo sh -c "echo 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile" sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/bin' >> /etc/profile" sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/sbin' >> /etc/profile" source /etc/profileAtur
JAVA_HOMEdalam file lingkungan Hadoop.sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh' sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh'Verifikasi instalasi.
hadoop versionOutput berikut mengonfirmasi bahwa Hadoop telah terinstal.

Langkah 4: Konfigurasikan Hadoop pada semua node
Edit lima file konfigurasi pada ketiga instans. Setiap file mengontrol bagian spesifik dari kluster.
core-site.xml — Menetapkan sistem file default (alamat NameNode) dan direktori sementara bersama untuk operasi Hadoop.
Buka file tersebut.
sudo vim /opt/hadoop/etc/hadoop/core-site.xmlTambahkan properti berikut di dalam
<configuration></configuration>.<!-- Alamat NameNode --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop001:8020</value> </property> <!-- Direktori untuk file sementara Hadoop --> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/data</value> </property> <!-- Pengguna statis untuk login UI web HDFS --> <property> <name>hadoop.http.staticuser.user</name> <value>hadoop</value> </property>
hdfs-site.xml — Mengonfigurasi alamat UI web untuk NameNode dan SecondaryNameNode.
Buka file tersebut.
sudo vim /opt/hadoop/etc/hadoop/hdfs-site.xmlTambahkan properti berikut di dalam
<configuration></configuration>.<!-- Alamat UI web NameNode --> <property> <name>dfs.namenode.http-address</name> <value>hadoop001:9870</value> </property> <!-- Alamat UI web SecondaryNameNode --> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop003:9868</value> </property>
yarn-site.xml — Menentukan cara YARN (Yet Another Resource Negotiator) mengelola resource di seluruh kluster, termasuk hostname ResourceManager dan mode shuffle untuk NodeManager.
Buka file tersebut.
sudo vim /opt/hadoop/etc/hadoop/yarn-site.xmlTambahkan properti berikut di dalam
<configuration></configuration>.<!-- Mode shuffle data untuk NodeManager --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- Hostname ResourceManager --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop002</value> </property> <!-- Variabel lingkungan yang diteruskan ke kontainer --> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property>
mapred-site.xml — Menginstruksikan Hadoop untuk menjalankan pekerjaan MapReduce di YARN, bukan di local job runner.
Buka file tersebut.
sudo vim /opt/hadoop/etc/hadoop/mapred-site.xmlTambahkan properti berikut di dalam
<configuration></configuration>.<!-- Jalankan MapReduce di YARN --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
workers — Mencantumkan semua node yang menjalankan layanan DataNode dan NodeManager.
Buka file tersebut.
sudo vim /opt/hadoop/etc/hadoop/workersGanti isi file dengan hostname ketiga node tersebut.
hadoop001 hadoop002 hadoop003
Konfigurasikan Hadoop untuk dijalankan sebagai pengguna root
Menjalankan Hadoop sebagai pengguna root menimbulkan risiko keamanan serius, termasuk kebocoran data, peningkatan hak istimewa oleh malware, dan masalah izin tak terduga. Gunakan pengguna non-root bila memungkinkan. Untuk detail tentang izin Hadoop, lihat Hadoop in Secure Mode.
Jika Anda harus menjalankan Hadoop sebagai root, tambahkan parameter berikut ke skrip di /opt/hadoop/sbin.
Tambahkan ke start-dfs.sh dan stop-dfs.sh:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
Tambahkan ke start-yarn.sh dan stop-yarn.sh:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
Siapkan kluster Hadoop pseudo-distributed
Prosedur ini menyiapkan Hadoop pada satu instans ECS, dengan semua layanan berjalan pada node tersebut. Gunakan mode ini untuk pengembangan, pengujian, atau pembelajaran.
Jalankan semua perintah sebagai pengguna non-root (misalnya, ecs-user). Lihat konfigurasi pengguna root jika diperlukan.
Langkah 1: Instal JDK
Hubungkan ke instans ECS. Untuk petunjuknya, lihat Connect to Linux.
Unduh paket JDK 8.
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gzEkstrak paket tersebut.
tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gzPindahkan dan ubah nama direktori hasil ekstraksi. Contoh ini menggunakan
java8sebagai nama direktori.sudo mv java-se-8u41-ri/ /usr/java8Konfigurasikan variabel lingkungan Java. Jika Anda menggunakan nama direktori berbeda pada langkah sebelumnya, ganti
java8dengan nama tersebut.sudo sh -c "echo 'export JAVA_HOME=/usr/java8' >> /etc/profile" sudo sh -c 'echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile' source /etc/profileVerifikasi instalasi.
java -versionOutput berikut mengonfirmasi bahwa JDK telah terinstal.

Langkah 2: Konfigurasikan SSH tanpa password
Hadoop memerlukan akses SSH tanpa password bahkan pada node tunggal. Tanpa konfigurasi ini, startup NameNode dan DataNode akan gagal dengan error Permission Denied.
Buat pasangan kunci SSH.
ssh-keygen -t rsa
Tambahkan kunci publik ke
authorized_keys.cd .ssh cat id_rsa.pub >> authorized_keys
Langkah 3: Instal Hadoop
Unduh paket Hadoop 3.2.4 dari mirror Alibaba Cloud.
wget http://mirrors.cloud.aliyuncs.com/apache/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gzEkstrak paket ke
/opt/hadoop.sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt/ sudo mv /opt/hadoop-3.2.4 /opt/hadoopKonfigurasikan variabel lingkungan Hadoop.
sudo sh -c "echo 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile" sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/bin' >> /etc/profile" sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/sbin' >> /etc/profile" source /etc/profileAtur
JAVA_HOMEdalam file lingkungan Hadoop.sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh' sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh'Verifikasi instalasi.
hadoop versionOutput berikut mengonfirmasi bahwa Hadoop telah terinstal.

Langkah 4: Konfigurasikan Hadoop
Edit dua file konfigurasi untuk menjalankan Hadoop dalam mode pseudo-distributed.
core-site.xml — Menetapkan alamat NameNode dan direktori sementara untuk operasi Hadoop.
Buka file tersebut.
sudo vim /opt/hadoop/etc/hadoop/core-site.xmlTambahkan properti berikut di dalam
<configuration></configuration>.<property> <name>hadoop.tmp.dir</name> <value>file:/opt/hadoop/tmp</value> <description>Lokasi penyimpanan file sementara</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>
hdfs-site.xml — Mengonfigurasi replikasi HDFS dan jalur penyimpanan data. Dalam mode pseudo-distributed, faktor replikasi diatur ke 1 karena hanya ada satu node.
Buka file tersebut.
sudo vim /opt/hadoop/etc/hadoop/hdfs-site.xmlTambahkan properti berikut di dalam
<configuration></configuration>.<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/hadoop/tmp/dfs/data</value> </property>
Langkah 5: Jalankan Hadoop
Inisialisasi NameNode. Jalankan ini hanya pada startup pertama—menjalankannya kembali akan menghapus semua data HDFS.
hadoop namenode -formatJalankan HDFS. Perintah ini menjalankan NameNode, SecondaryNameNode, dan DataNode.
start-dfs.shOutput berikut mengonfirmasi bahwa HDFS sedang berjalan.

Jalankan YARN. Perintah ini menjalankan ResourceManager, NodeManager, dan ApplicationHistoryServer.
start-yarn.shOutput berikut mengonfirmasi bahwa YARN sedang berjalan.

Verifikasi bahwa semua proses yang diharapkan sedang berjalan.
jpsProses berikut seharusnya tercantum.

Akses UI web YARN di
http://<public-IP-of-your-instance>:8088untuk melihat status kluster, informasi aplikasi, dan detail antrian.PentingPastikan port 8088 terbuka di security group. Untuk petunjuknya, lihat Add a security group rule.

Akses UI web NameNode di
http://<public-IP-of-your-instance>:9870untuk melihat status sistem file HDFS, kesehatan kluster, node aktif, dan log NameNode. Halaman berikut mengonfirmasi bahwa lingkungan Hadoop pseudo-distributed sedang berjalan.PentingPastikan port 9870 terbuka di security group. Untuk petunjuknya, lihat Add a security group rule.

Konfigurasikan Hadoop untuk dijalankan sebagai pengguna root
Menjalankan Hadoop sebagai pengguna root menimbulkan risiko keamanan serius, termasuk kebocoran data, peningkatan hak istimewa oleh malware, dan masalah izin tak terduga. Gunakan pengguna non-root bila memungkinkan. Untuk detail tentang izin Hadoop, lihat Hadoop in Secure Mode.
Jika Anda harus menjalankan Hadoop sebagai root, tambahkan parameter berikut ke skrip di /opt/hadoop/sbin.
Tambahkan ke start-dfs.sh dan stop-dfs.sh:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
Tambahkan ke start-yarn.sh dan stop-yarn.sh:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
Langkah selanjutnya
Lindungi data kluster: Untuk kluster Hadoop terdistribusi, buat snapshot-consistent group untuk memastikan konsistensi data dan mendukung disaster recovery. Lihat Create Snapshot Consistency Group.
Gunakan HDFS: Pelajari operasi HDFS umum. Lihat Common HDFS commands.
Gunakan layanan data besar terkelola: Untuk lingkungan data besar terkelola penuh yang terintegrasi dengan ECS, lihat Create and use a DataLake cluster.
Jelajahi tata kelola data: Untuk pengembangan dan tata kelola data lake, lihat Tutorial: Product category analysis.




