Inicio rápido: Consulta de Apache HBase en Azure HDInsight con Apache Phoenix
En este inicio rápido, aprenderá a usar Apache Phoenix para ejecutar consultas de HBase en Azure HDInsight. Apache Phoenix es un motor de consultas SQL para Apache HBase. Se obtiene acceso a él como controlador de JDBC y permite consultar y administrar tablas de HBase usando SQL. SQLLine es una utilidad de línea de comandos para ejecutar SQL.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Requisitos previos
Un clúster de Apache HBase Consulte Creación de un clúster para crear un clúster de HDInsight. Asegúrese de elegir el tipo de clúster HBase.
Un cliente SSH. Para más información, consulte Conexión a través de SSH con HDInsight (Apache Hadoop).
Identificación de un nodo de ZooKeeper
Cuando se conecte a un clúster de HBase, debe hacerlo a uno de los nodos de Apache ZooKeeper. Cada clúster de HDInsight tiene tres nodos de Zookeeper. Curl se puede usar para identificar rápidamente un nodo de ZooKeeper. Modifique el siguiente comando curl: reemplace PASSWORD
y CLUSTERNAME
por los valores pertinentes y, luego, escriba el comando en un símbolo del sistema:
curl -u admin:PASSWORD -sS -G https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER
Parte de la salida se parecerá a esta:
{
"href" : "http://hn*.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net:8080/api/v1/clusters/myCluster/hosts/<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net/host_components/ZOOKEEPER_SERVER",
"HostRoles" : {
"cluster_name" : "myCluster",
"component_name" : "ZOOKEEPER_SERVER",
"host_name" : "<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net"
}
Anote el valor de host_name
para usarlo más adelante.
Creación de una tabla y manipulación de los datos
Puede usar SSH para conectarse a clústeres de HBase y, después, utilizar Apache Phoenix para crear tablas de HBase e insertar y consultar datos.
Use el comando
ssh
para conectarse al clúster de HBase. Modifique el comando siguiente: reemplaceCLUSTERNAME
por el nombre del clúster y, luego, escriba el comando:ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Cambie el directorio al cliente de Phoenix. Escriba el comando siguiente:
cd /usr/hdp/current/phoenix-client/bin
Inicie SQLLine. Modifique el comando siguiente: reemplace
ZOOKEEPER
por el nodo de ZooKeeper identificado anteriormente y, luego, escriba el comando:./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
Cree una tabla de HBase. Escriba el comando siguiente:
CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
Use el comando
!tables
de SQLLine para enumerar todas las tablas de HBase. Escriba el comando siguiente:!tables
Inserte valores en la tabla. Escriba el comando siguiente:
UPSERT INTO Company VALUES(1, 'Microsoft'); UPSERT INTO Company VALUES(2, 'Apache');
Consulte la tabla. Escriba el comando siguiente:
SELECT * FROM Company;
Elimine un registro. Escriba el comando siguiente:
DELETE FROM Company WHERE COMPANY_ID=1;
Quite la tabla. Escriba el comando siguiente:
DROP TABLE Company;
Use el comando
!quit
de SQLLine para salir de SQLLine. Escriba el comando siguiente:!quit
Limpieza de recursos
Después de completar el inicio rápido, puede ser conveniente eliminar el clúster. Con HDInsight, los datos se almacenan en Azure Storage, por lo que puede eliminar un clúster de forma segura cuando no se esté usando. También se le cobrará por un clúster de HDInsight aunque no se esté usando. Como en muchas ocasiones los cargos por el clúster son mucho más elevados que los cargos por el almacenamiento, desde el punto de vista económico tiene sentido eliminar clústeres cuando no se estén usando.
Para eliminar un clúster, consulte Eliminación de un clúster de HDInsight con el explorador, PowerShell o la CLI de Azure.
Pasos siguientes
En este tutorial, ha aprendido a usar Apache Phoenix para ejecutar consultas de HBase en Azure HDInsight. Para más información sobre Apache Phoenix, en el siguiente artículo se proporciona un examen más profundo.