全部产品
Search
文档中心

:Gunakan API ApsaraDB for HBase untuk Java untuk terhubung dan menggunakan LindormTable

更新时间:Nov 09, 2025

Topik ini menjelaskan cara menggunakan API ApsaraDB for HBase untuk Java guna terhubung ke LindormTable, serta menyediakan contoh penggunaannya.

Prasyarat

  • Java Development Kit (JDK) V1.8 atau yang lebih baru telah diinstal.

  • Titik akhir LindormTable yang ditampilkan setelah Access by Using HBase Java API pada tab Wide Table Engine dari konsol Lindorm telah diperoleh. Untuk informasi lebih lanjut, lihat Lihat titik akhir.

  • Alamat IP klien Anda telah ditambahkan ke daftar putih instance Lindorm. Untuk informasi lebih lanjut, lihat Konfigurasi daftar putih.

  • ApsaraDB for HBase SDK untuk Java telah diinstal. Untuk informasi lebih lanjut, lihat Instal ApsaraDB for HBase SDK untuk Java.

Prosedur

  1. Konfigurasikan klien untuk terhubung ke instance Lindorm.

    • Tambahkan item konfigurasi berikut ke file konfigurasi hbase-site.xml:

      <configuration>
            <!--
          // Tentukan titik akhir yang dapat Anda gunakan untuk terhubung ke instance Lindorm. Anda dapat melihat titik akhir di halaman Koneksi Database dari konsol Lindorm. Jika Anda ingin terhubung ke instance Lindorm melalui Internet, gunakan titik akhir publik. Jika Anda ingin terhubung ke instance Lindorm melalui virtual private cloud (VPC), gunakan titik akhir VPC.
          -->
          <property>
              <name>hbase.zookeeper.quorum</name>
              <value>ld-xxxx-proxy-hbaseue.lindormue.xxx.rds.aliyuncs.com:30020</value>
          </property>
          <!--
          Tentukan nama pengguna dan kata sandi sebenarnya yang Anda gunakan untuk terhubung ke instance Lindorm. Nama pengguna dan kata sandi default adalah root.
          -->
          <property>
              <name>hbase.client.username</name>
              <value>testuser</value>
          </property>
          <property>
              <name>hbase.client.password</name>
              <value>password</value>
          </property>
          </configuration>
    • Tambahkan potongan kode berikut ke proyek Anda untuk membuat objek Configuration dan mengonfigurasi parameter yang dijelaskan dalam tabel berikut.

      // Buat objek Configuration.
      Configuration conf = HBaseConfiguration.create();
      // Tentukan titik akhir publik instance Lindorm. Anda bisa mendapatkan titik akhir publik di halaman Koneksi Database dari konsol Lindorm.
      conf.set("hbase.zookeeper.quorum", "host:port");
      // xml_template.comment.hbaseue.username_password.default
      conf.set("hbase.client.username", "Nama Pengguna");
      conf.set("hbase.client.password", "Kata Sandi");

      Anotasi

      Contoh

      Cara memperoleh nilai parameter

      host:port

      ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30020

      Titik akhir LindormTable yang ditampilkan setelah Access by Using HBase Java API pada tab Wide Table Engine dari konsol Lindorm. Untuk informasi lebih lanjut, lihat Lihat titik akhir.

      Nama pengguna.

      testuser

      Nama pengguna dan kata sandi yang Anda gunakan untuk terhubung ke instance Lindorm. Jika Anda lupa kata sandi, Anda dapat mengubah kata sandi di sistem manajemen kluster LindormTable. Untuk informasi lebih lanjut, lihat Ubah kata sandi pengguna.

      Kata Sandi

      password

  2. Buat koneksi antara klien Lindorm dan database.

    Connection connection = ConnectionFactory.createConnection(conf);
    Catatan

    Koneksi hanya dibuat sekali selama siklus hidup program. Koneksi bersifat thread-safe dan dapat dibagikan di antara semua thread. Setelah program berhenti berjalan, tutup objek Connection untuk mencegah kebocoran koneksi. Anda juga dapat mengeksekusi pernyataan try-finally untuk mencegah kebocoran koneksi.

  3. Setelah koneksi dibuat, gunakan API ApsaraDB for HBase untuk Java untuk mengakses LindormTable. Anda dapat menggunakan kode Java sampel berikut.

    • Operasi DDL

      try (Admin admin = connection.getAdmin()){
          // Buat tabel.
          HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("namatabel"));
          htd.addFamily(new HColumnDescriptor(Bytes.toBytes("keluarga")));
          // Buat tabel yang hanya memiliki satu partisi.
          // Kemampuan pemrosesan paralel dan penyeimbangan beban kluster terbatas jika tabel hanya memiliki satu partisi. Oleh karena itu, kami sarankan Anda mempartisi tabel terlebih dahulu berdasarkan karakteristik data. Jika semua data disimpan di partisi yang sama, pemrosesan paralel dan penyeimbangan beban di antara partisi tidak dapat dilakukan. Ini dapat menyebabkan hambatan kinerja dan data panas.
          admin.createTable(htd);
          // Untuk membuat tabel yang memiliki beberapa partisi, lihat kode sampel berikut.
          // Dalam kode sampel, tabel dipartisi sebelumnya menjadi dua partisi: [-∞, 10) dan [10, ∞). Tentukan rentang partisi berdasarkan bisnis aktual Anda.
          // int numRegions = 2; // Tentukan jumlah partisi.
          // byte[][] splitKeys = new byte[numRegions-1][];
          // for (int i = 1; i < numRegions; i++) {
          //     splitKeys[i-1] = new byte[]{(byte)(i * 10)};
          // }
          // admin.createTable(tableDescriptor, splitKeys);
      
          // Nonaktifkan tabel.
          admin.disableTable(TableName.valueOf("namatabel"));
      
          // Bersihkan semua data dalam tabel. Anda harus menonaktifkan tabel sebelum membersihkan semua datanya.
          admin.truncateTable(TableName.valueOf("namatabel"), true);
      
          // Hapus tabel. Anda harus menonaktifkan tabel sebelum menghapusnya.
          admin.deleteTable(TableName.valueOf("namatabel"));
      }
    • Operasi DML

      // Tabel adalah objek non-thread-safe. Saat sebuah thread melakukan operasi pada tabel, thread tersebut harus mendapatkan tabel yang diperlukan dari objek Connection.
      try (Table table = connection.getTable(TableName.valueOf("namatabel"))) {
          // Masukkan data.
          Put put = new Put(Bytes.toBytes("baris"));
          put.addColumn(Bytes.toBytes("keluarga"), Bytes.toBytes("kualifikasi"), Bytes.toBytes("nilai"));
          table.put(put);
      
          // Baca satu baris data.
          Get get = new Get(Bytes.toBytes("baris"));
          Result res = table.get(get);
      
          // Hapus satu baris data.
          Delete delete = new Delete(Bytes.toBytes("baris"));
          table.delete(delete);
      
          // Pindai data dalam rentang tertentu.
          Scan scan = new Scan(Bytes.toBytes("barisAwal"), Bytes.toBytes("barisAkhir"));
          ResultScanner scanner = table.getScanner(scan);
          for (Result result : scanner) {
              // Proses hasilnya.
              // ...
          }
          scanner.close();
      }