Topik ini menjelaskan cara menyesuaikan ukuran memori Java Virtual Machine (JVM) untuk NameNode dan DataNodes guna meningkatkan stabilitas layanan Hadoop Distributed File System (HDFS).
Menyesuaikan ukuran memori JVM untuk NameNode
Informasi Latar Belakang: Dalam HDFS, NameNode mencatat metadata setiap file. Metadata tersebut membutuhkan ruang memori tertentu. Konfigurasi memori JVM default dapat memenuhi kebutuhan umum HDFS. Namun, jika jumlah file yang ditulis ke HDFS terus bertambah hingga melebihi konfigurasi memori JVM default, file-file baru tidak dapat disimpan. Dalam hal ini, Anda perlu menyesuaikan ukuran memori.
Saran: Sesuaikan ukuran memori JVM untuk NameNode dengan langkah-langkah berikut:
Kluster High Availability (HA)
Masuk ke konsol E-MapReduce (EMR). Temukan kluster yang ingin Anda modifikasi layanan HDFS-nya, lalu klik Services di kolom Actions. Pada tab Services, temukan layanan HDFS dan klik Configure. Di tab Configure halaman layanan HDFS, cari parameter hadoop_namenode_heapsize, lalu ubah nilainya sesuai dengan kebutuhan bisnis Anda.
Kluster Non-HA
Masuk ke konsol EMR. Temukan kluster tempat Anda ingin memodifikasi layanan HDFS dan klik Services di kolom Actions. Pada tab Services, temukan layanan HDFS dan klik Configure. Di halaman layanan HDFS, cari parameter hadoop_namenode_heapsize dan hadoop_secondary_namenode_heapsize, lalu ubah nilainya sesuai kebutuhan bisnis Anda.
CatatanSetelah konfigurasi selesai, restart NameNode atau Secondary NameNode agar perubahan diterapkan.
Anda dapat melihat jumlah file dan blok data pada antarmuka pengguna web (UI) HDFS. Untuk informasi lebih lanjut, lihat Mengakses UI Web Komponen Open Source. Gunakan rumus berikut untuk menghitung ukuran memori JVM untuk NameNode:
Ukuran memori yang direkomendasikan = (Jumlah file, diukur dalam jutaan + Jumlah blok data, diukur dalam jutaan) × 512 MBSebagai contoh, jika Anda memiliki 10 juta file, semuanya berukuran kecil hingga sedang, dan ukuran setiap file tidak melebihi ukuran sebuah blok, jumlah blok juga menjadi 10 juta. Dalam kasus ini, ukuran memori yang direkomendasikan adalah 10.240 MB, dihitung menggunakan rumus berikut: (10 + 10) × 512 MB.
Tabel berikut menjelaskan pemetaan antara jumlah file dan ukuran memori yang direkomendasikan. Sebagian besar file memiliki ukuran yang tidak melebihi ukuran sebuah blok.
Jumlah file
Ukuran memori yang direkomendasikan (MB)
10.000.000
10.240
20.000.000
20.480
50.000.000
51.200
100.000.000
102.400
Menyesuaikan ukuran memori JVM untuk setiap DataNode
- Informasi Latar Belakang: Dalam HDFS, DataNodes mencatat metadata blok data. Metadata tersebut membutuhkan ruang memori tertentu. Konfigurasi memori JVM default dapat memenuhi kebutuhan umum HDFS. Namun, jika jumlah file yang ditulis ke HDFS terus bertambah hingga melebihi konfigurasi memori default, file-file baru tidak dapat disimpan. Dalam hal ini, Anda perlu menyesuaikan ukuran memori.
- Saran: Buka tab Configure pada halaman layanan HDFS di konsol EMR. Cari parameter hadoop_datanode_heapsize di bagian Configuration Filter dan ubah nilainya sesuai kebutuhan bisnis Anda.Gunakan rumus berikut untuk menghitung ukuran memori JVM untuk setiap DataNode:
Jumlah replika per DataNode dalam kluster EMR = Jumlah blok data × 3/Jumlah DataNodes Ukuran memori yang direkomendasikan = Jumlah replika per DataNode, diukur dalam jutaan × 2048 MBCatatan Setelah konfigurasi selesai, restart DataNodes untuk menerapkan perubahan.Sebagai contoh, HDFS dalam kluster EMR menyediakan penyimpanan tripel, instance Elastic Compute Service (ECS) yang digunakan termasuk dalam keluarga instans data besar, dan jumlah node inti adalah 6. Jika Anda memiliki 10 juta file dan jumlah blok data juga 10 juta karena semua file berukuran kecil hingga sedang, jumlah replika per DataNode adalah 5.000.000, dihitung menggunakan rumus berikut: (10.000.000 × 3/6). Ukuran memori yang direkomendasikan adalah 10.240 MB, dihitung menggunakan rumus berikut: 5 × 2048 MB.
Tabel berikut menjelaskan pemetaan antara jumlah replika per DataNode dan ukuran memori yang direkomendasikan. Sebagian besar file memiliki ukuran yang tidak melebihi ukuran sebuah blok.Jumlah replika per DataNode Ukuran memori yang direkomendasikan (MB) 1.000.000 2048 2.000.000 4096 5.000.000 10240 Catatan Nilai yang direkomendasikan mencakup ruang memori untuk kernel JVM dan ruang memori untuk menjalankan pekerjaan selama jam sibuk. Anda dapat langsung menggunakan nilai yang direkomendasikan dalam kondisi normal.