Setel memori JVM untuk NameNode dan DataNode guna meningkatkan stabilitas HDFS.
Menyesuaikan memori JVM NameNode
-
Latar belakang: Di HDFS, NameNode menyimpan metadata file yang mengonsumsi memori. Konfigurasi JVM default mampu menangani beban kerja HDFS umum, tetapi beban kerja dengan jumlah file yang besar atau terus bertambah dapat melebihi kapasitas memori default. Dalam kasus ini, tingkatkan alokasi memori JVM.
-
Saran: Sesuaikan ukuran memori JVM NameNode sebagai berikut:
-
Untuk kluster HA
Di Konsol EMR, buka halaman Configure layanan HDFS. Cari parameter hadoop_namenode_heapsize dan atur nilainya sesuai kebutuhan.
-
Untuk kluster non-HA
Di Konsol EMR, buka halaman Configure layanan HDFS. Cari parameter hadoop_namenode_heapsize dan hadoop_secondary_namenode_heapsize, lalu atur nilainya sesuai kebutuhan.
CatatanUntuk menerapkan perubahan, restart layanan NameNode atau SecondaryNameNode yang bersangkutan.
Anda dapat melihat jumlah file (Files) dan blok (Blocks) di antarmuka web HDFS. Untuk informasi tentang cara mengakses antarmuka web tersebut, lihat Mengakses antarmuka web komponen open source. Gunakan rumus berikut untuk menghitung ukuran memori JVM NameNode.
Nilai yang direkomendasikan (MB) = (Jumlah file dalam jutaan + Jumlah blok dalam jutaan) × 512Sebagai contoh, jika Anda memiliki 10 juta file berukuran kecil hingga menengah yang masing-masing tidak melebihi satu blok, jumlah bloknya juga sebesar 10 juta. Ukuran memori yang direkomendasikan adalah (10 + 10) × 512 = 10.240 MB.
Tabel berikut mencantumkan nilai yang direkomendasikan untuk skenario di mana sebagian besar file tidak lebih besar dari satu blok.
Jumlah file
Nilai yang direkomendasikan (MB)
10.000.000
10240
20.000.000
20480
50.000.000
51200
100.000.000
102400
-
Menyesuaikan ukuran memori JVM setiap DataNode
- Latar belakang: Di HDFS, DataNode menyimpan metadata blok data yang menempati ruang memori tertentu. Konfigurasi memori JVM default umumnya mencukupi untuk beban kerja HDFS standar. Namun, saat jumlah file yang ditulis ke HDFS terus meningkat, jumlah blok pada DataNode juga bertambah. Jika jumlah file baru melebihi kapasitas memori default, file tersebut tidak dapat disimpan. Dalam situasi ini, Anda perlu menyesuaikan ukuran memori JVM.
- 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.Anda dapat menggunakan rumus berikut untuk menghitung ukuran memori JVM setiap DataNode:
Jumlah replika per DataNode di kluster EMR = Jumlah blok data × 3 / Jumlah DataNode Ukuran memori yang direkomendasikan = Jumlah replika per DataNode, diukur dalam jutaan × 2048 MBCatatan Setelah konfigurasi selesai, Anda harus restart DataNode agar perubahan diterapkan.Sebagai contoh, HDFS di kluster EMR menggunakan penyimpanan triplicate. Instans Elastic Compute Service (ECS) dalam kluster EMR termasuk dalam keluarga instans data besar, dengan jumlah node inti sebanyak 6. Jika Anda memiliki 10 juta file berukuran kecil hingga menengah—sehingga jumlah blok datanya juga 10 juta—jumlah replika per DataNode adalah 5.000.000, dihitung dengan rumus berikut: (10.000.000 × 3 / 6). Ukuran memori yang direkomendasikan adalah 10.240 MB, dihitung dengan rumus berikut: 5 × 2.048 MB.
Tabel berikut menjelaskan pemetaan antara jumlah replika per DataNode dan ukuran memori yang direkomendasikan, dengan asumsi sebagian besar ukuran file tidak melebihi satu 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 telah mencakup ruang memori untuk kernel JVM dan ruang memori tambahan untuk menjalankan pekerjaan selama jam sibuk. Anda dapat langsung menggunakan nilai tersebut dalam kondisi normal.