O LindormTable permite usar a ApsaraDB for HBase API for Java para ler e gravar dados. Este tópico descreve como usar a ApsaraDB for HBase API for Java para se conectar ao LindormTable.
Pré-requisitos
Java Development Kit (JDK) V1.8 ou posterior instalado.
Endereço IP do cliente adicionado à lista de permissões da instância Lindorm. Para mais informações, consulte Configure a whitelist.
ApsaraDB for HBase SDK for Java instalado. Para mais informações, consulte Install ApsaraDB for HBase SDK for Java.
Procedimento
-
Crie um objeto de configuração e defina o endpoint, o nome de usuário e a senha para conexão com o LindormTable.
// Create a configuration object. Configuration conf = HBaseConfiguration.create(); Specify the endpoint used to connect to LindormTable by using ApsaraDB for HBase SDK for Java. 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");Parâmetro
Exemplo
Como obter o valor do parâmetro
host:port
ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30020
Endpoint do LindormTable exibido após clicar em Access by Using HBase Java API na aba Wide Table Engine do console Lindorm.
ImportanteSe a aplicação estiver implantada em uma instância Elastic Compute Service (ECS), conecte-se à instância Lindorm por meio de uma Virtual Private Cloud (VPC) para garantir maior segurança e menor latência de rede. Para mais informações sobre como obter o endpoint do LindormTable para VPC, consulte View endpoints.
Se a aplicação estiver em um servidor local e precisar se conectar à instância Lindorm pela Internet, ative o endpoint público no console Lindorm: no painel de navegação à esquerda, selecione . Na aba Wide Table Engine, clique em Enable Public Endpoint.
Nome de usuário
testuser
Nome de usuário e senha usados para conectar à instância Lindorm. Se esquecer a senha, altere-a no sistema de gerenciamento de cluster do LindormTable. Para mais informações, consulte Change the password of a user.
Senha
password
-
Estabeleça a conexão usando o objeto de configuração criado na Etapa 1.
Connection connection = ConnectionFactory.createConnection(conf);NotaCrie a conexão apenas uma vez durante o ciclo de vida do programa. A conexão é thread-safe e pode ser compartilhada entre todas as threads. // Após o término da execução do programa, feche o objeto Connection para evitar vazamento de conexões. Também é possível usar a instrução try-finally para prevenir esse problema.
-
Após estabelecer a conexão, use a ApsaraDB for HBase API for Java para acessar o LindormTable. Consulte os exemplos de código Java a seguir.
-
Operações DDL
try (Admin admin = connection.getAdmin()){ // Create a table. HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("tablename")); htd.addFamily(new HColumnDescriptor(Bytes.toBytes("family"))); // Create a table that has only one partition. // If you create a table in a production environment, we recommend that you partition the table in advance based on the data characteristics. admin.createTable(htd); // Disable a table. admin.disableTable(TableName.valueOf("tablename")); // Clear all data in a table. You must disable a table before you clear all data in it. admin.truncateTable(TableName.valueOf("tablename"), true); // Delete a table. You must disable a table before you delete it. admin.deleteTable(TableName.valueOf("tablename")); } -
Operações DML
// A table is a non-thread-safe object. When a thread performs operations on a table, the thread must obtain the required table from the Connection object. try (Table table = connection.getTable(TableName.valueOf("tablename"))) { // Insert data. Put put = new Put(Bytes.toBytes("row")); put.addColumn(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), Bytes.toBytes("value")); table.put(put); // Read a single row of data. Get get = new Get(Bytes.toBytes("row")); Result res = table.get(get); // Delete a row of data. Delete delete = new Delete(Bytes.toBytes("row")); table.delete(delete); // Scan the data within the specified range. Scan scan = new Scan(Bytes.toBytes("startRow"), Bytes.toBytes("endRow")); ResultScanner scanner = table.getScanner(scan); for (Result result : scanner) { // Process the result. System.out.println(result.toString()); } scanner.close(); }
-