

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konfigurasikan HBase
<a name="emr-hbase-configure"></a>

Meskipun HBase pengaturan default harus berfungsi untuk sebagian besar aplikasi, Anda dapat mengubah pengaturan HBase konfigurasi Anda. Untuk melakukan ini, gunakan properti klasifikasi HBase konfigurasi. Untuk informasi selengkapnya, lihat [Konfigurasikan aplikasi](emr-configure-apps.md).

Contoh berikut membuat cluster dengan direktori HBase root alternatif berdasarkan file konfigurasi,`myConfig.json`, disimpan di Amazon S3.

**catatan**  
Karakter lanjutan baris Linux (\$1) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

```
aws emr create-cluster --release-label emr-7.12.0 --applications Name=HBase \
--instance-type m5.xlarge --instance-count 3 --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.json
```

File `myConfig.json` menentukan `hbase.rootdir` properti untuk properti `hbase-site` klasifikasi konfigurasi seperti yang ditunjukkan dalam contoh berikut. Ganti *ip-XXX-XX-XX-XXX.ec2.internal* dengan nama host DNS internal dari simpul utama cluster.

```
[
  {
    "Classification":"hbase-site",
    "Properties": {
       "hbase.rootdir": "hdfs://ip-XXX-XX-XX-XXX.ec2.internal:8020/user/myCustomHBaseDir"
    }
  }
]
```

**catatan**  
Dengan Amazon EMR versi 5.21.0 dan yang lebih baru, Anda dapat mengganti konfigurasi klaster dan menentukan klasifikasi konfigurasi tambahan untuk setiap grup instans dalam klaster berjalan. Anda melakukan ini dengan menggunakan konsol Amazon EMR, the AWS Command Line Interface (AWS CLI), atau SDK AWS . Untuk informasi selengkapnya, lihat [Menyediakan Konfigurasi untuk Grup Instans dalam Klaster Berjalan](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

## Perubahan alokasi memori di YARN
<a name="emr-hbase-configure-yarn"></a>

HBase tidak berjalan sebagai aplikasi YARN, sehingga perlu untuk menghitung ulang memori yang dialokasikan ke YARN dan aplikasinya, yang menghasilkan pengurangan memori keseluruhan yang tersedia untuk YARN jika diinstal. HBase Anda harus mempertimbangkan hal ini saat berencana untuk menempatkan bersama aplikasi YARN dan HBase pada cluster yang sama. Jenis instans dengan memori kurang dari 64 GB memiliki setengah memori yang tersediaNodeManager, yang kemudian dialokasikan ke file. HBase RegionServer Misalnya jenis dengan memori lebih besar dari 64 GB, HBase RegionServer memori dibatasi pada 32 GB. Sebagai aturan umum, memori pengaturan YARN adalah beberapa kelipatan dari memori tugas MapReduce peredam.

Tabel di [Nilai default untuk pengaturan konfigurasi tugas](emr-hadoop-task-config.md#emr-hadoop-task-jvm) menunjukkan perubahan pada pengaturan YARN berdasarkan memori yang dibutuhkan untuk HBase.

## HBase nomor port
<a name="emr-hbase-ports"></a>

Beberapa nomor port HBase yang dipilih berbeda dari default. Berikut ini adalah antarmuka dan port untuk HBase Amazon EMR.


**HBase pelabuhan**  

| Antarmuka | Port | Protokol | 
| --- | --- | --- | 
| HMaster | 16000 | TCP | 
| HMaster UI | 16010 | HTTP | 
| RegionServer | 16020 | TCP | 
| RegionServer Info | 16030 | HTTP | 
| Server REST | 8070 | HTTP | 
| REST UI | 8085 | HTTP | 
| Server penghematan | 9090 | TCP | 
| UI Server penghematan | 9095 | HTTP | 

**penting**  
Adalah `kms-http-port` 9700 dan `kms-admin-port` adalah 9701 di rilis Amazon EMR versi 4.6.0 dan yang lebih baru.

## HBase pengaturan situs untuk mengoptimalkan
<a name="emr-hbase-settings-optimize"></a>

Anda dapat mengatur salah satu atau semua pengaturan HBase situs untuk mengoptimalkan HBase klaster untuk beban kerja aplikasi Anda. Kami merekomendasikan pengaturan berikut sebagai titik awal dalam penyelidikan Anda.

### zookeeper.session.timeout
<a name="emr-hbase-zookeeper.session.timeout"></a>

Waktu habis default adalah 40 detik (40000 ms). Jika server wilayah lumpuh, ini adalah waktu yang dibutuhkan server master untuk menyadari tidak adanya server wilayah dan memulai pemulihan. Untuk membantu server master pulih lebih cepat, Anda dapat mengurangi nilai ini untuk jangka waktu yang lebih singkat. Contoh berikut menggunakan 30 detik, atau 30000 ms: 

```
[
  {
    "Classification":"hbase-site",
    "Properties": {
       "zookeeper.session.timeout": "30000"
    }
  }
]
```

### hbase.regionserver.handler.count
<a name="emr-hbase-hbase.regionserver.handler.count"></a>

Ini menentukan jumlah utas yang tetap dibuka oleh server wilayah untuk melayani permintaan ke tabel. Default 10 rendah, untuk mencegah pengguna agar tidak membunuh server wilayah mereka ketika menggunakan buffer penulisan large dengan jumlah klien bersamaan yang tinggi. Aturan praktisnya adalah menjaga angka ini tetap rendah ketika muatan per permintaan mendekati kisaran MB (penempatan besar, pemindaian menggunakan cache besar) dan tinggi ketika muatan kecil (mendapat, menempatkan kecil,, menghapus). ICVs Contoh berikut menimbulkan jumlah utas terbuka hingga 30: 

```
[
  {
    "Classification":"hbase-site",
    "Properties": {
       "hbase.regionserver.handler.count": "30"
    }
  }
]
```

### hbase.hregion.max.filesize
<a name="emr-hbase-hbase.hregion.max.filesize"></a>

Parameter ini mengatur ukuran, dalam byte, dari masing-masing wilayah. Secara default, nilainya ditetapkan ke `1073741824`. Jika Anda menulis banyak data ke dalam HBase cluster Anda, dan itu menyebabkan pemisahan yang sering, Anda dapat meningkatkan ukuran ini untuk membuat masing-masing wilayah lebih besar. Ini meredam pemisahan tetapi membutuhkan lebih banyak waktu untuk wilayah keseimbangan beban dari satu server ke server lain. 

```
[
  {
    "Classification":"hbase-site",
    "Properties": {
       "hbase.hregion.max.filesize": "1073741824"
    }
  }
]
```

### hbase.hregion.memstore.flush.size
<a name="emr-hbase-hbase.hregion.memstore.flush.size"></a>

Parameter ini mengatur ukuran maksimum memstore, dalam byte, sebelum di-flush ke disk. Secara default, itu adalah `134217728`. Jika beban kerja Anda terdiri dari semburan singkat operasi tulis, Anda mungkin ingin meningkatkan batas ini sehingga semua penulisan tetap berada di memori selama semburan dan dipindahkan ke disk nanti. Hal ini dapat meningkatkan performa selama semburan. 

```
[
  {
    "Classification":"hbase-site",
    "Properties": {
       "hbase.hregion.memstore.flush.size": "134217728"
    }
  }
]
```

## Pertimbangan performa
<a name="hbase-performance-considerations"></a>

### Mengaktifkan Z Garbage Collector (ZGC) untuk HBase
<a name="hbase-performance-considerations-enable"></a>

Dengan Amazon EMR versi 7.10.0 dan yang lebih baru, pengguna dapat mengonfigurasi pengaturan Pengumpulan Sampah (GC) dengan mulus untuk klaster mereka. HBase Sebaiknya aktifkan Z Garbage Collector (ZGC) untuk mencapai latensi rendah dan waktu jeda GC sub-milidetik.

Berikut konfigurasi untuk mengaktifkan ZGC untuk HBase RegionServer (s):

```
[
    {
        "Classification": "hbase-env",
        "Properties": {},
        "Configurations": [
            {
                "Classification": "export",
                "Properties": {
                    "JAVA_HOME": "/usr/lib/jvm/jre-21",
                    "HBASE_REGIONSERVER_GC_OPTS": "\"-XX:+UseZGC -XX:+ZGenerational\""
                }
            }
        ]
    }
]
```

**catatan**  
**Variabel lingkungan **JAVA\$1HOME** harus disetel saat menggunakan Generational ZGC (disarankan) karena diperkenalkan di JDK 21, jika Anda ingin menggunakan mode non-generasi (tanpa`-XX:+ZGenerational`) ZGC tidak perlu mengatur JAVA\$1HOME.** Di JDK 24, mode ZGC non-generasi telah dihapus.

#### Penyetelan ZGC
<a name="hbase-performance-considerations-tuning-"></a>

1. **Aktifkan Tumpukan Tetap JVM**

   Z Garbage Collector (ZGC) bekerja lebih efisien ketika dikonfigurasi dengan memori heap tetap, menghilangkan overhead mengembalikan memori ke sistem operasi. Untuk mengonfigurasi memori heap tetap untuk HBase klaster Anda, gunakan konfigurasi berikut:

   ```
   [
       {
           "Classification": "hbase",
           "Properties": {
               "hbase.regionserver.fixed.heap.enabled": "true"
           }
       }
   ]
   ```

1. **Aktifkan Pra-sentuh**

   Mengaktifkan pra-sentuh meningkatkan kinerja pengumpulan sampah (GC) dengan mengurangi latensi awal dan memberikan kinerja yang lebih dapat diprediksi. Untuk mengaktifkan pra-sentuh untuk HBase Cluster Anda, gunakan konfigurasi berikut:

   ```
   [
       {
           "Classification": "hbase-env",
           "Properties": {},
           "Configurations": [
               {
                   "Classification": "export",
                   "Properties": {
                       "JAVA_HOME": "/usr/lib/jvm/jre-21",
                       "HBASE_REGIONSERVER_GC_OPTS": "\"-XX:+UseZGC -XX:+ZGenerational -XX:+AlwaysPreTouch\""
                   }
               }
           ]
       }
   ]
   ```