全部产品
Search
文档中心

Lindorm:Menggunakan API ApsaraDB for HBase untuk Java untuk mengembangkan aplikasi

更新时间:Nov 10, 2025

Topik ini menjelaskan cara menggunakan HBase Java API untuk mengakses LindormTable dan menyertakan contoh penggunaannya.

Prasyarat

Prosedur

  1. Konfigurasikan klien agar terhubung ke instans Lindorm dengan salah satu cara berikut.

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

      <configuration>
            <!--
          Titik akhir kluster. Peroleh dari halaman Koneksi Database di Konsol. Perhatikan perbedaan antara titik akhir publik dan VPC.
          -->
          <property>
              <name>hbase.zookeeper.quorum</name>
              <value>ld-xxxx-proxy-hbaseue.lindormue.xxx.rds.aliyuncs.com:30020</value>
          </property>
          <!--
          Tetapkan nama pengguna dan kata sandi. Nilai default keduanya adalah root. Ubah sesuai kebutuhan.
          -->
          <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 baru.
      Configuration conf = HBaseConfiguration.create();
      // Titik akhir instans. Anda dapat memperolehnya dari halaman Koneksi Database di Konsol.
      conf.set("hbase.zookeeper.quorum", "host:port");
      // xml_template.comment.hbaseue.username_password.default
      conf.set("hbase.client.username", "username");
      conf.set("hbase.client.password", "password");

      Parameter

      Contoh

      Cara mendapatkan 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 di 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 guna mengakses LindormTable. Anda dapat menggunakan kode Java sampel berikut.

    • Operasi DDL

      try (Admin admin = connection.getAdmin()){
          // Buat tabel.
          HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("tablename"));
          htd.addFamily(new HColumnDescriptor(Bytes.toBytes("family")));
          // Buat tabel dengan hanya satu partisi.
          // Satu region membatasi kemampuan pemrosesan paralel dan penyeimbangan beban kluster. Oleh karena itu, pra-partisi tabel berdasarkan karakteristik data Anda saat membuatnya. Jika semua data disimpan dalam satu partisi, pemrosesan paralel dan penyeimbangan beban di beberapa partisi tidak dapat dicapai. Hal ini dapat menyebabkan bottleneck performa dan hot spot data.
          admin.createTable(htd);
          // Untuk membuat tabel dengan beberapa partisi:
          // Contoh berikut menunjukkan cara pra-partisi tabel menjadi dua partisi: [-∞, 10) dan [10, ∞). Hasilkan informasi partisi sesuai kebutuhan.
          // int numRegions = 2; // Tetapkan jumlah region yang akan dibuat.
          // 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("tablename"));
      
          // Truncate tabel untuk menghapus semua data. Anda harus menonaktifkan tabel sebelum melakukan truncate.
          admin.truncateTable(TableName.valueOf("tablename"), true);
      
          // Hapus tabel. Anda harus menonaktifkan tabel sebelum menghapusnya.
          admin.deleteTable(TableName.valueOf("tablename"));
      }
    • Operasi DML

      // Objek Table tidak thread-safe. Setiap thread harus mendapatkan objek Table-nya sendiri dari Connection saat melakukan operasi tabel.
      try (Table table = connection.getTable(TableName.valueOf("tablename"))) {
          // Masukkan data.
          Put put = new Put(Bytes.toBytes("row"));
          put.addColumn(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), Bytes.toBytes("value"));
          table.put(put);
      
          // Baca satu baris.
          Get get = new Get(Bytes.toBytes("row"));
          Result res = table.get(get);
      
          // Hapus satu baris.
          Delete delete = new Delete(Bytes.toBytes("row"));
          table.delete(delete);
      
          // Pindai rentang data.
          Scan scan = new Scan(Bytes.toBytes("startRow"), Bytes.toBytes("endRow"));
          ResultScanner scanner = table.getScanner(scan);
          for (Result result : scanner) {
              // Proses hasil kueri.
              // ...
          }
          scanner.close();
      }