All Products
Search
Document Center

Elastic Compute Service:Bangun lingkungan Hadoop

Last Updated:Apr 02, 2026

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-distributedDistributed Mode
NodesNode tunggal (semua layanan pada satu mesin)Tiga node atau lebih
Pemanfaatan resourceSatu mesinBeberapa mesin
Toleransi kesalahanRendah — single point of failureTinggi — replikasi data dan ketersediaan tinggi
Kasus penggunaanPengembangan, pengujian, pembelajaranProduksi, 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-distributedDistributed Mode
    Jumlah instans13 atau lebih
    Deployment setTambahkan instans ke deployment set menggunakan strategi High Availability untuk meningkatkan ketersediaan dan disaster recovery
    Sistem operasiLinuxLinux
    Alamat IP publikSetiap instans memiliki alamat IP publik yang ditetapkan sistem atau elastic IP address (EIP) yang terkaitSetiap instans memiliki alamat IP publik yang ditetapkan sistem atau elastic IP address (EIP) yang terkait
    Security groupBuka port 22, 443, 8088, dan 9870Buka 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 HadoopVersi Java yang didukung
    Hadoop 3.3Java 8, Java 11
    Hadoop 3.0.x–3.2.xJava 8
    Hadoop 2.7.x–2.10.xJava 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.

Komponenhadoop001hadoop002hadoop003
HDFSNameNode, DataNodeDataNodeSecondaryNameNode, DataNode
YARNNodeManagerResourceManager, NodeManagerNodeManager
Penting

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.

  1. Hubungkan ke instans ECS. Untuk petunjuknya, lihat Connect to Linux.

  2. Unduh paket JDK 8.

    wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  3. Ekstrak paket tersebut.

    tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  4. Pindahkan dan ubah nama direktori hasil ekstraksi. Contoh ini menggunakan java8 sebagai nama direktori.

    sudo mv java-se-8u41-ri/ /usr/java8
  5. Konfigurasikan variabel lingkungan Java. Jika Anda menggunakan nama direktori berbeda pada langkah sebelumnya, ganti java8 dengan 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/profile
  6. Verifikasi instalasi.

    java -version

    Output berikut mengonfirmasi bahwa JDK telah terinstal.

    image

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.

  1. Tambahkan pemetaan hostname ke alamat IP untuk ketiga instans ke /etc/hosts pada setiap node.

    sudo vim /etc/hosts

    Tambahkan 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> hadoop003
  2. Buat pasangan kunci SSH pada setiap instans.

    ssh-keygen -t rsa

    image

  3. Dari hadoop001, salin kunci publik ke ketiga node. Masukkan yes dan password instans saat diminta.

    ssh-copy-id hadoop001
    ssh-copy-id hadoop002
    ssh-copy-id hadoop003

    Output berikut mengonfirmasi bahwa SSH tanpa password telah dikonfigurasi.

    image

Langkah 3: Instal Hadoop pada semua node

Lakukan langkah-langkah berikut pada ketiga Instans tersebut.

  1. 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.gz
  2. Ekstrak paket ke /opt/hadoop.

    sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt/
    sudo mv /opt/hadoop-3.2.4 /opt/hadoop
  3. Konfigurasikan 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/profile
  4. Atur JAVA_HOME dalam 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'
  5. Verifikasi instalasi.

    hadoop version

    Output berikut mengonfirmasi bahwa Hadoop telah terinstal.

    image

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.

  1. Buka file tersebut.

    sudo vim /opt/hadoop/etc/hadoop/core-site.xml
  2. Tambahkan 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.

  1. Buka file tersebut.

    sudo vim /opt/hadoop/etc/hadoop/hdfs-site.xml
  2. Tambahkan 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.

  1. Buka file tersebut.

    sudo vim /opt/hadoop/etc/hadoop/yarn-site.xml
  2. Tambahkan 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.

  1. Buka file tersebut.

    sudo vim /opt/hadoop/etc/hadoop/mapred-site.xml
  2. Tambahkan 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.

  1. Buka file tersebut.

    sudo vim /opt/hadoop/etc/hadoop/workers
  2. Ganti isi file dengan hostname ketiga node tersebut.

    hadoop001
    hadoop002
    hadoop003

Langkah 5: Jalankan Hadoop

  1. Inisialisasi NameNode. Jalankan perintah ini pada semua instans, tetapi hanya pada startup pertama—menjalankannya kembali akan menghapus semua data HDFS.

    hadoop namenode -format
  2. Jalankan HDFS dari hadoop001. Perintah ini menjalankan NameNode, SecondaryNameNode, dan DataNode.

    start-dfs.sh

    Output berikut mengonfirmasi bahwa HDFS sedang berjalan.

    image

  3. Jalankan YARN dari hadoop002. Perintah ini menjalankan ResourceManager dan NodeManager.

    start-yarn.sh

    Output berikut mengonfirmasi bahwa YARN sedang berjalan.

    image

  4. Verifikasi bahwa semua proses yang diharapkan sedang berjalan pada setiap node.

    jps

    Proses berikut seharusnya tercantum.

    image

  5. Akses UI web YARN di http://<public-IP-of-hadoop002>:8088 untuk melihat penggunaan resource kluster, status aplikasi, dan informasi antrian.

    Penting

    Pastikan port 8088 terbuka di security group. Untuk petunjuknya, lihat Add a security group rule.

    image

  6. Akses UI web HDFS: Halaman-halaman ini menampilkan status sistem file HDFS, kesehatan kluster, node aktif, dan log NameNode. Halaman berikut mengonfirmasi bahwa lingkungan Hadoop terdistribusi sedang berjalan.

    • NameNode: http://<public-IP-of-hadoop001>:9870

    • SecondaryNameNode: http://<public-IP-of-hadoop003>:9868

    Penting

    Pastikan port 9870 terbuka di security group. Untuk petunjuknya, lihat Add a security group rule.

    image

Konfigurasikan Hadoop untuk dijalankan sebagai pengguna root

Peringatan

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
image

Tambahkan ke start-yarn.sh dan stop-yarn.sh:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
image

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.

Penting

Jalankan semua perintah sebagai pengguna non-root (misalnya, ecs-user). Lihat konfigurasi pengguna root jika diperlukan.

Langkah 1: Instal JDK

  1. Hubungkan ke instans ECS. Untuk petunjuknya, lihat Connect to Linux.

  2. Unduh paket JDK 8.

    wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  3. Ekstrak paket tersebut.

    tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  4. Pindahkan dan ubah nama direktori hasil ekstraksi. Contoh ini menggunakan java8 sebagai nama direktori.

    sudo mv java-se-8u41-ri/ /usr/java8
  5. Konfigurasikan variabel lingkungan Java. Jika Anda menggunakan nama direktori berbeda pada langkah sebelumnya, ganti java8 dengan 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/profile
  6. Verifikasi instalasi.

    java -version

    Output berikut mengonfirmasi bahwa JDK telah terinstal.

    image

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.

  1. Buat pasangan kunci SSH.

    ssh-keygen -t rsa

    image

  2. Tambahkan kunci publik ke authorized_keys.

    cd .ssh
    cat id_rsa.pub >> authorized_keys

Langkah 3: Instal Hadoop

  1. 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.gz
  2. Ekstrak paket ke /opt/hadoop.

    sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt/
    sudo mv /opt/hadoop-3.2.4 /opt/hadoop
  3. Konfigurasikan 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/profile
  4. Atur JAVA_HOME dalam 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'
  5. Verifikasi instalasi.

    hadoop version

    Output berikut mengonfirmasi bahwa Hadoop telah terinstal.

    image

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.

  1. Buka file tersebut.

    sudo vim /opt/hadoop/etc/hadoop/core-site.xml
  2. Tambahkan 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.

  1. Buka file tersebut.

    sudo vim /opt/hadoop/etc/hadoop/hdfs-site.xml
  2. Tambahkan 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

  1. Inisialisasi NameNode. Jalankan ini hanya pada startup pertama—menjalankannya kembali akan menghapus semua data HDFS.

    hadoop namenode -format
  2. Jalankan HDFS. Perintah ini menjalankan NameNode, SecondaryNameNode, dan DataNode.

    start-dfs.sh

    Output berikut mengonfirmasi bahwa HDFS sedang berjalan.

    image

  3. Jalankan YARN. Perintah ini menjalankan ResourceManager, NodeManager, dan ApplicationHistoryServer.

    start-yarn.sh

    Output berikut mengonfirmasi bahwa YARN sedang berjalan.

    image

  4. Verifikasi bahwa semua proses yang diharapkan sedang berjalan.

    jps

    Proses berikut seharusnya tercantum.

    image

  5. Akses UI web YARN di http://<public-IP-of-your-instance>:8088 untuk melihat status kluster, informasi aplikasi, dan detail antrian.

    Penting

    Pastikan port 8088 terbuka di security group. Untuk petunjuknya, lihat Add a security group rule.

    image

  6. Akses UI web NameNode di http://<public-IP-of-your-instance>:9870 untuk melihat status sistem file HDFS, kesehatan kluster, node aktif, dan log NameNode. Halaman berikut mengonfirmasi bahwa lingkungan Hadoop pseudo-distributed sedang berjalan.

    Penting

    Pastikan port 9870 terbuka di security group. Untuk petunjuknya, lihat Add a security group rule.

    image.png

Konfigurasikan Hadoop untuk dijalankan sebagai pengguna root

Peringatan

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
image

Tambahkan ke start-yarn.sh dan stop-yarn.sh:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
image

Langkah selanjutnya

Referensi