En este tutorial, aprenderá:
- Escribir datos en la tabla HBase: Shell
- Leer datos de la tabla HBase: Shell
- Escribir datos en la tabla HBase: API JAVA
- Leer datos de la tabla HBase: API JAVA
Escribir datos en la tabla HBase: Shell
El comando put se usa para almacenar datos en una tabla
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Este comando se usa para las siguientes cosas
- Pondrá un 'valor' de celda en una tabla, fila o columna definida o especificada.
- Opcionalmente, coordinará la marca de tiempo.
Ejemplo:
- Aquí estamos colocando valores en la tabla "guru99" debajo de la fila r1 y la columna c1.
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Hemos colocado tres valores, 10,15 y 30 en la tabla "guru99" como se muestra en la captura de pantalla a continuación.
-
Supongamos que la tabla "Guru99" tiene alguna referencia de tabla como, por ejemplo, g. También podemos ejecutar el comando en la referencia de la tabla también como
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
-
La salida será como se muestra en la captura de pantalla anterior después de colocar valores en "guru99".
Leer datos de la tabla HBase: Shell
En esta sección, comprobaremos lo siguiente
- Valores que se insertan en la tabla HBase "guru99"
- Nombres de columna con valores presentes en la tabla HBase guru99
De la captura de pantalla anterior, podemos inferir
- Si ejecutamos el comando "escanear" en el shell de HBase, mostrará los valores insertados en "guru99" de la siguiente manera
- En el shell de HBase, mostrará los valores insertados por nuestro código con nombres de columna y fila
- Aquí podemos ver que el nombre de la columna insertado es "educación" y "proyectos".
- Los valores insertados son "BigData" y "Tutoriales de HBase" en las columnas mencionadas
También puede usar el comando Obtener para leer datos de una tabla
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Aquí
Al usar este comando, obtendrá un contenido de fila o celda presente en la tabla. Además de eso, también puede agregarle parámetros adicionales como TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, etc. para obtener un contenido de fila o celda en particular.
Ejemplos: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Para la tabla "guru99 ', los valores de la fila r1 y la columna c1 se mostrarán usando este comando como se muestra en la captura de pantalla anterior.
hbase> get 'guru99', 'r1'
Para la tabla "guru99", los valores de la fila r1 se mostrarán usando este comando
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Para la tabla "guru99", los valores de la fila 1 en el rango de tiempo ts1 y ts2 se mostrarán usando este comando.
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Para la tabla "guru99", la fila r1 y las familias de columnas, los valores c1, c2, c3 se mostrarán usando este comando
Escribir datos en la tabla HBase: API JAVA
En este paso, vamos a escribir datos en la tabla HBase "guru99".
Primero, tenemos que escribir código para insertar y recuperar valores de HBase usando el programa HBaseLoading.java.
Para crear e insertar valores en una tabla a nivel de columna, debe codificar como se muestra a continuación .
De la captura de pantalla de arriba
- Cuando creamos la configuración de HBase, apuntará a las configuraciones que establezcamos en los archivos base-site.xml y hbase-default.xml durante las instalaciones de HBase
- Creación de la tabla "guru99" mediante el método HTable
- Añadiendo fila1 a la tabla "guru99"
- Especificar los nombres de las columnas "educación" y "proyectos" e insertar valores en los nombres de las columnas en la fila correspondiente1. Los valores insertados aquí son "BigData" y "HBaseTutorials".
Leer datos de la tabla HBase: API de Java
Cualesquiera que sean los valores que colocamos en las tablas de HBase en la sección anterior, aquí vamos a buscar y mostrar esos valores.
Para recuperar los resultados almacenados en "guru99"
La captura de pantalla anterior muestra que los datos se leen de la tabla HBase 'guru99'
- En esto, vamos a buscar los valores que están almacenados en familias de columnas, es decir, "educación" y "proyectos".
- Usando el comando "get" vamos a buscar los valores almacenados en la tabla HBase
- Escaneo de resultados usando el comando "escanear". Los valores que están almacenados en la fila1 se mostrarán en la consola.
Una vez que haya terminado de escribir el código, debe ejecutar la aplicación Java como esta
- Haga clic derecho en HBaseLoading.java -> Ejecutar como -> Aplicación Java
- Después de ejecutar "HBaseLoading .java", los valores se van a insertar en "guru99" en cada columna de HBase y en el mismo programa también se pueden recuperar los valores.
Aquí está el código completo
import java.io.IOException;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;public class HBaseLoading{public static void main(String[] args) throws IOException{/* When you create a HBaseConfiguration, it reads in whatever you've set into your hbase-site.xml and in hbase-default.xml, as long as these can be found on the CLASSPATH*/org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create();/*This instantiates an HTable object that connects you to the "test" table*/HTable table = new HTable(config, "guru99");/* To add to a row, use Put. A Put constructor takes the name of the row you want to insert into as a byte array.*/Put p = new Put(Bytes.toBytes("row1"));/*To set the value you'd like to update in the row 'row1', specify the column family, column qualifier, and value of the table cell you'd like to update. The column family must already exist in your table schema. The qualifier can be anything.*/p.add(Bytes.toBytes("education"), Bytes.toBytes("col1"),Bytes.toBytes("BigData"));p.add(Bytes.toBytes("projects"),Bytes.toBytes("col2"),Bytes.toBytes("HBaseTutorials"));// Once you've adorned your Put instance with all the updates you want to make, to commit it do the followingtable.put(p);// Now, to retrieve the data we just wrote.Get g = new Get(Bytes.toBytes("row1"));Result r = table.get(g);byte [] value = r.getValue(Bytes.toBytes("education"),Bytes.toBytes("col1"));byte [] value1 = r.getValue(Bytes.toBytes("projects"),Bytes.toBytes("col2"));String valueStr = Bytes.toString(value);String valueStr1 = Bytes.toString(value1);System.out.println("GET: " +"education: "+ valueStr+"projects: "+valueStr1);Scan s = new Scan();s.addColumn(Bytes.toBytes("education"), Bytes.toBytes("col1"));s.addColumn(Bytes.toBytes("projects"), Bytes.toBytes("col2"));ResultScanner scanner = table.getScanner(s);try{for (Result rr = scanner.next(); rr != null; rr = scanner.next()){System.out.println("Found row : " + rr);}} finally{// Make sure you close your scanners when you are done!scanner.close();}}}
Resumen:
Como discutimos en este tutorial, puede usar el comando put para insertar datos en una tabla. Puede usar el comando scan, get para leer datos de una tabla