Topik ini menjelaskan cara mengakses instans ApsaraDB for HBase Performance-enhanced Edition menggunakan API Java ApsaraDB for HBase.
Prasyarat
SDK Java telah diinstal. Untuk informasi selengkapnya, lihat Upgrade SDK Java HBase.
Jika aplikasi Anda dideploy pada Instance ECS, pastikan instans ApsaraDB for HBase Performance-enhanced Edition dan Instance ECS memenuhi kondisi berikut untuk konektivitas jaringan. Untuk informasi tentang cara melihat detail Instance ECS, lihat Lihat informasi instans.
Instans berada di wilayah yang sama. Disarankan menempatkannya di zona ketersediaan yang sama untuk mengurangi latensi jaringan.
Instans menggunakan jenis jaringan yang sama.
CatatanVPC menyediakan keamanan yang lebih tinggi. Disarankan menggunakan VPC. Jika jenis jaringannya adalah VPC, pastikan kedua instans berada dalam VPC yang sama.
Alamat IP Instance ECS atau klien telah ditambahkan ke daftar putih instans ApsaraDB for HBase Performance-enhanced Edition. Untuk informasi selengkapnya, lihat Konfigurasi daftar putih.
Prosedur
Inisialisasi konfigurasi HBase. Di proyek Anda, masukkan kode berikut dan konfigurasikan parameter sesuai dengan tabel di bawah ini.
// Buat objek Configuration. Configuration conf = HBaseConfiguration.create(); // Titik akhir API Java kluster. Anda dapat memperoleh titik akhir ini di halaman Database Connection pada Konsol. conf.set("hbase.zookeeper.quorum", "ld-bp150tns0sjxs****-proxy-hbaseue.hbaseue.rds.aliyuncs.com:30020"); // Atur username dan password. conf.set("hbase.client.username", "testuser"); conf.set("hbase.client.password", "password"); // Jika Anda langsung bergantung pada client Alibaba Cloud HBase, Anda tidak perlu mengonfigurasi parameter connection.impl. Jika Anda bergantung pada alihbase-connector, Anda harus mengonfigurasi parameter ini. //conf.set("hbase.client.connection.impl", AliHBaseUEClusterConnection.class.getName());Parameter
Nilai
Deskripsi
host:port
ld-bp150tns0sjxs****-proxy-hbaseue.hbaseue.rds.aliyuncs.com:30020
String koneksi untuk Java API endpoint instans ApsaraDB for HBase Performance-enhanced Edition Anda. Untuk memperoleh nilai ini, buka Konsol ApsaraDB for HBase dan klik ID instans target. Di panel navigasi sebelah kiri, klik Database Connection. Di bagian Connection Information, temukan Java API endpoint.
username
testuser
Jika Anda lupa username atau password, Anda dapat mengatur ulang di sistem manajemen kluster ApsaraDB for HBase. Untuk informasi selengkapnya, lihat Manage users.
password
password
Buat koneksi ke instans ApsaraDB for HBase Performance-enhanced Edition.
Connection connection = ConnectionFactory.createConnection(conf);CatatanBuat koneksi hanya sekali selama siklus hidup aplikasi. Koneksi bersifat thread-safe dan dapat digunakan bersama oleh semua thread. Untuk mencegah kebocoran koneksi, tutup objek Connection setelah program selesai. Anda juga dapat menggunakan pernyataan try-with-resources atau blok
try...finallyuntuk mencegah kebocoran.Setelah terhubung, Anda dapat menggunakan API Java untuk mengakses instans ApsaraDB for HBase Performance-enhanced Edition. Berikut adalah contoh Java sederhana.
CatatanUntuk memastikan kompatibilitas dengan client HBase 1.x, contoh ini menggunakan sintaksis untuk client HBase 1.x. Jika Anda menggunakan client HBase 2.x, beberapa IDE mungkin menampilkan peringatan
Deprecated, tetapi hal ini tidak memengaruhi operasinya.Pernyataan 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 satu partisi. // Di lingkungan produksi, kami menyarankan melakukan pre-split pada tabel berdasarkan karakteristik data Anda. admin.createTable(htd); // Nonaktifkan tabel. admin.disableTable(TableName.valueOf("tablename")); // Truncate tabel. admin.truncateTable(TableName.valueOf("tablename"), true); // Hapus tabel. admin.deleteTable(TableName.valueOf("tablename")); }Pernyataan DML
// Objek Table tidak thread-safe. Setiap thread harus mendapatkan objek Table unik dari Connection. 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 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(); }