HBase Crear tabla con Java Ejemplo de API y shell

โšก Resumen inteligente

HBase almacena datos en tablas, y puede crear y manejar esas tablas de dos maneras: a travรฉs de la Java API con HTableDescripto bien HBaseAdmin, o directamente en la consola de HBase usando el comando create.

  • โ˜• Java API: Crear tablas en cรณdigo con HTableDescripto bien, Columna HDescripto bien, y HBaseAdmin.
  • ๐Ÿš Shell crear: El comando create crea una tabla a partir de un nombre y una o mรกs familias de columnas.
  • ๐Ÿงฌ Familias de columnas: Cada tabla necesita al menos una familia de columnas, que se define al crear la tabla.
  • ๐Ÿ”ง Modificar tablas: El comando ALTER agrega familias de columnas, establece VERSIONES o cambia atributos del รกmbito de la tabla.
  • ๐Ÿ—‘๏ธ Ciclo de vida de la tabla: Desactive una tabla antes de modificarla o eliminarla, y luego vuelva a activarla para reanudar las escrituras.
  • ๐Ÿค– Asistencia de IA: Los asistentes de IA redactan comandos para crear, modificar y eliminar elementos, y revisan el diseรฑo de las familias de columnas.

HBase crear tabla con Java Ejemplo de API y comando de shell

Cรณmo crear una tabla en HBase con Java API

En HBase, las tablas se pueden crear de dos maneras: a travรฉs de la Java API y a travรฉs del shell de HBase. Esta secciรณn cubre la Java API, que permite a una aplicaciรณn crear tablas y cargar datos mediante programaciรณn como parte de una tarea mรกs amplia.

A travรฉs de la Java API, podemos crear tablas en HBase y tambiรฉn cargar datos en tablas usando Java codificaciรณn. Las dos cosas que configuramos aquรญ son:

  • Establecer una conexiรณn con HBase a travรฉs de Java API.
  • El uso de Eclipse por la Java codificaciรณn, depuraciรณn y pruebas.

A continuaciรณn se muestran los pasos para crear tablas en HBase a travรฉs de Java API.

Paso 1) Crea un Java Proyecto en Eclipse

En este paso, vamos a crear un Java proyecto en Eclipse para la conexiรณn HBase, denominada โ€œHbaseConnectionโ€.

The New Java El cuadro de diรกlogo del proyecto que aparece a continuaciรณn muestra cรณmo se estรก configurando el proyecto "HbaseConnection":

Eclipse New Java Diรกlogo del proyecto que crea el proyecto HbaseConnection con un JavaEntorno SE-1.7

Si observamos la captura de pantalla anterior:

  • Introduzca el nombre del proyecto en este recuadro. En nuestro caso, el nombre del proyecto es โ€œHbaseConnectionโ€.
  • Marque esta casilla para establecer la ubicaciรณn predeterminada donde se guardarรก la conexiรณn. En este caso, la ruta es /home/hduser/work/HbaseConnection.
  • Marque la casilla de la Java ambiente aquรญ. En este caso JavaSE-1.7 es el Java ediciรณn.
  • Seleccione la opciรณn donde desea guardar el archivo. En nuestro caso, seleccionamos la segunda opciรณn: "Crear una carpeta separada para archivos fuente y de clase".
  • Haga clic en el botรณn Finalizar, que crea el proyecto โ€œHbaseConnectionโ€ en Eclipse y abre el Eclipse

Paso 2) Configure la ruta de compilaciรณn en Eclipse

En la Eclipse Pรกgina de inicio, siga estos pasos para abrir la configuraciรณn de la ruta de compilaciรณn:

Right click on project -> Select Build Path -> Configure build path

La siguiente captura de pantalla muestra el menรบ contextual que se utiliza para abrir la configuraciรณn de la ruta de compilaciรณn:

Eclipse Menรบ contextual del proyecto (clic derecho): seleccione Ruta de compilaciรณn y luego Configurar ruta de compilaciรณn.

Segรบn la captura de pantalla anterior:

  • Haz clic con el botรณn derecho en un proyecto.
  • Seleccione la ruta de compilaciรณn.
  • Seleccione Configurar ruta de compilaciรณn.

Tras hacer clic en Configurar ruta de compilaciรณn, se abre otra ventana, como se muestra en la captura de pantalla a continuaciรณn. En la pestaรฑa Bibliotecas es donde se aรฑaden los archivos JAR de HBase y Hadoop al proyecto:

Eclipse Java Pestaรฑa Bibliotecas de ruta de compilaciรณn: agregar archivos JAR externos de HBase y Hadoop.

En este paso, agregamos los JAR de HBase relevantes al Java proyecto tal como se muestra en la captura de pantalla.

  • Archivos JAR importantes que deben agregarse: hbase-0.94.8.jar y hadoop-core-1.1.2.jar.
  • Dirรญgete a la pestaรฑa Bibliotecas.
  • Pulse la opciรณn Agregar JAR externos.
  • Seleccione los archivos JAR importantes necesarios.
  • Presione el botรณn Finalizar para agregar estos archivos al โ€œsrcโ€ de la Java proyecto dentro de Bibliotecas.

Una vez aรฑadidos los archivos JAR, aparecerรกn en la ubicaciรณn "src" del proyecto, como se muestra a continuaciรณn:

Eclipse Explorador de proyectos que muestra los archivos JAR de HBase y Hadoop agregados en el cรณdigo fuente del proyecto.

Todos los archivos JAR que forman parte del proyecto ya estรกn listos para su uso con el ecosistema Hadoop.

Paso 3) Establecer la conexiรณn HBase

En este paso, utilizando HBaseConnection.java, se establece la conexiรณn HBase a travรฉs de Java codificaciรณn.

En la Eclipse menรบ superior, ejecutar una Java programa como se muestra a continuaciรณn: Ejecutar -> Ejecutar como -> Java Aplicaciรณn. El menรบ que aparece a continuaciรณn muestra el programa que se estรก iniciando:

Eclipse Correr como Java Menรบ de la aplicaciรณn que inicia el programa HBaseConnection.

  • Seleccione Ejecutar.
  • Seleccione Ejecutar como Java Solicitud.
  • Este cรณdigo establece una conexiรณn con HBase a travรฉs de Java API.
  • Tras ejecutar este cรณdigo, se crea la tabla โ€œguru99โ€ en HBase con dos familias de columnas llamadas โ€œeducationโ€ y โ€œprojectsโ€. Actualmente, solo se crea el esquema vacรญo en HBase.

El fragmento de cรณdigo que aparece a continuaciรณn resalta la tabla HTable.Descripto bien, y las llamadas a addFamily que construyen el esquema de la tabla:

Java cรณdigo usando HTableDescripto y addFamily para definir la tabla guru99 con familias de columnas de educaciรณn y proyectos.

En la captura de pantalla anterior, estamos realizando las siguientes funciones:

  • Usando HTableDescripto bien, podemos crear la tabla โ€œguru99โ€ en HBase.
  • Utilizando el mรฉtodo addFamily, aรฑadimos โ€œeducationโ€ y โ€œprojectsโ€ como familias de columnas a la tabla โ€œguru99โ€.

El siguiente cรณdigo establecerรก una conexiรณn con HBase y crearรก la tabla โ€œguru99โ€ con dos familias de columnas. Coloque este cรณdigo debajo del documento HBaseConnection.java:

// Place this code inside Hbase connection
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
Import org.apache.hadoop.hbase.client.HBaseAdmin;

public class HBaseConnection
{
    public static void main(String[] args) throws IOException
    {
	HBaseConfigurationhc = new HBaseConfiguration(new Configuration());
	HTableDescriptorht = new HTableDescriptor("guru99");

	ht.addFamily( new HColumnDescriptor("education"));
	ht.addFamily( new HColumnDescriptor("projects"));
	System.out.println( "connecting" );
	HBaseAdminhba = new HBaseAdmin( hc );

	System.out.println( "Creating Table" );
	hba.createTable( ht );
	System.out.println("Done......");
    }
}

Este es el cรณdigo requerido que debe colocar en HBaseConnection.java antes de ejecutar el Java .

Tras ejecutar este programa, se establece una conexiรณn con HBase y, a su vez, se crea una tabla con nombres de columna.

  • El nombre de la tabla es โ€œguru99โ€.
  • Las familias de columnas son โ€œeducaciรณnโ€ y โ€œproyectosโ€.

Paso 4) Verifique la tabla creada en HBase

Podemos comprobar si la tabla โ€œguru99โ€ se creรณ con dos familias de columnas en HBase utilizando el modo de consola de HBase con el comando โ€œlistโ€. El comando โ€œlistโ€ proporciona informaciรณn sobre todas las tablas creadas en HBase.

Al ejecutar el comando de lista en la consola de HBase, se confirma la nueva tabla, como se muestra a continuaciรณn:

Salida del comando `HBase shell list` que muestra que se creรณ la tabla `guru99`.

  • Code Comprobando en la consola de HBase ejecutando el comando โ€œlistโ€.
  • Si ejecutamos el comando โ€œlistโ€, se mostrarรกn las tablas creadas en HBase. En nuestro caso, podemos ver que se ha creado la tabla โ€œguru99โ€.

HBase Crear tabla con Shell

Ademรกs de la Java Mediante la API, puede crear una tabla directamente desde la consola de HBase, que es la forma mรกs rรกpida de configurar una tabla para realizar pruebas rรกpidas. La sintaxis para crear una tabla en HBase mediante la consola es:

Syntax: create <tablename>, <columnfamilyname>

Ejemplo:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table โ€“ education

El ejemplo anterior explica cรณmo crear una tabla en HBase con el nombre especificado segรบn las caracterรญsticas de cada familia de columnas. Ademรกs, tambiรฉn podemos pasarle atributos especรญficos de la tabla.

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}

Aquรญ, el bloque {NAME=>'Edu', VERSIONS=>โ€ฆ} define una familia de columnas llamada โ€œEduโ€ y el nรบmero de versiones de celda que conserva. El nรบmero elevado es solo un ejemplo; en la prรกctica, VERSIONS es un valor pequeรฑo, como 3 o 5.

Enumerar, describir y verificar las tablas de HBase.

Crear una tabla es solo la primera parte del manejo de tablas en HBase. Una vez que existe la tabla "guru99", algunos comandos generales le permiten inspeccionarla y confirmar su estado antes de leer, escribir o modificar datos. Puede ejecutar todos ellos desde el Caparazรณn HBase.

El comando de lista devuelve todas las tablas de usuario en HBase:

hbase> list

El comando describe muestra la estructura de una tabla, incluyendo sus familias de columnas y si estรก habilitada actualmente:

hbase> describe 'guru99'

El comando exists comprueba si existe una tabla, e is_enabled informa si la tabla puede aceptar escrituras:

hbase> exists 'guru99'
hbase> is_enabled 'guru99'

Estas comprobaciones de solo lectura se pueden ejecutar de forma segura en cualquier momento. Son la manera mรกs rรกpida de confirmar que una tabla se creรณ correctamente y de revisar sus familias de columnas antes de cargar los datos.

Modificar una tabla de HBase

El esquema de una tabla de HBase no es fijo tras su creaciรณn. El comando `alter` modifica las familias de columnas y los atributos del รกmbito de la tabla sin recrearla. Dependiendo de su versiรณn de HBase, es posible que deba deshabilitar la tabla primero, luego ejecutar `alter` y volver a habilitarla.

Para agregar una nueva familia de columnas a la tabla โ€œguru99โ€:

hbase> alter 'guru99', {NAME => 'contact'}

Para configurar cuรกntas versiones conserva una familia de columnas:

hbase> alter 'guru99', NAME => 'education', VERSIONS => 5

Para eliminar una familia de columnas de la tabla:

hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}

Tambiรฉn puede cambiar los atributos del รกmbito de la tabla. Por ejemplo, marcar la tabla como de solo lectura o establecer el tamaรฑo mรกximo del archivo de regiรณn en 128 MB:

hbase> alter 'guru99', READONLY
hbase> alter 'guru99', MAX_FILESIZE => '134217728'

Dado que la modificaciรณn reescribe el esquema, planifique los cambios cuidadosamente en una tabla de producciรณn y confirme el resultado posteriormente con la funciรณn describe.

Deshabilitar, habilitar y eliminar tablas de HBase

Para eliminar una tabla o aplicar ciertos cambios, HBase requiere que primero la desactives. Al desactivarla, la tabla queda fuera de lรญnea, impidiendo que cualquier cliente pueda leerla o escribir en ella, lo que garantiza la seguridad de los cambios estructurales.

Deshabilita una tabla y comprueba su estado con is_disabled:

hbase> disable 'guru99'
hbase> is_disabled 'guru99'

Vuelva a habilitar la tabla para reanudar las operaciones de lectura y escritura:

hbase> enable 'guru99'

Una tabla debe estar deshabilitada antes de poder ser eliminada. Eliminarping Elimina la tabla y todos sus datos de forma permanente, asรญ que รบselo con cuidado:

hbase> disable 'guru99'
hbase> drop 'guru99'

Para eliminar varias tablas a la vez, drop_all elimina todas las tablas cuyo nombre coincide con una expresiรณn regular. Juntos, create, alter, disable, enable y drop cubren el ciclo de vida completo de manejo de datos en tablas de HBase.

Preguntas Frecuentes

Las mejores prรกcticas mantienen bajo el nรบmero de familias de columnas, idealmente de una a tres. HBase vacรญa y compacta todas las familias de una regiรณn juntas, por lo que las familias adicionales distribuyen los datos en mรกs archivos y ralentizan las lecturas y escrituras. Agrupe las columnas relacionadas en una sola familia siempre que sea posible.

No. Al crear la tabla, solo se definen las familias de columnas. Los calificadores de columna son dinรกmicos y se pueden agregar a cualquier fila al escribir datos. Este diseรฑo flexible permite que cada fila contenga columnas diferentes sin necesidad de modificar la tabla previamente.

Utilice `truncate 'guru99'`, que desactiva la tabla, la elimina y la vuelve a crear con las mismas familias de columnas. El esquema permanece intacto mientras se eliminan todas las filas. Esto es mรกs rรกpido y limpio que eliminar las filas una por una.

El ejemplo utiliza HBaseAdmin y HTable.Descripto bien, ambos obsoletos desde HBase 1.0. El cรณdigo moderno obtiene un objeto Admin de una conexiรณn a travรฉs de ConnectionFactory y construye el esquema con TableDescriptoBuilder y ColumnFamilyDescriptorBuilder. La lรณgica de creaciรณn de tablas permanece igual.

VERSIONS establece cuรกntas versiones con marca de tiempo conserva una familia de columnas de cada celda. El valor predeterminado es 1. Al solicitar versiones anteriores mediante get o scan, se devuelven hasta que se supera el nรบmero de versiones retenidas, momento en el que la compactaciรณn elimina las celdas mรกs antiguas.

HBase es ideal para conjuntos de datos muy grandes y dispersos que requieren lecturas y escrituras aleatorias rรกpidas sobre Hadoop y HDFS. Entre sus usos tรญpicos se incluyen datos de series temporales, mensajerรญa y anรกlisis en tiempo real, donde las tablas alcanzan miles de millones de filas distribuidas en mรบltiples nodos.

Los asistentes de codificaciรณn de IA y los grandes modelos de lenguaje elaboran comandos de creaciรณn, modificaciรณn y eliminaciรณn a partir de indicaciones en lenguaje natural, explican el diseรฑo de familias de columnas y seรฑalan operaciones riesgosas como la eliminaciรณn.ping una tabla. El aprendizaje automรกtico tambiรฉn puede analizar los patrones de acceso para recomendar mejores diseรฑos de filas, claves y familias, aunque un ingeniero debe verificar cada sugerencia.

Sรญ. Copiloto de GitHub puede generar comandos de shell de HBase y Java cรณdigo de cliente para crear, modificar y eliminarping tablas a partir de un breve comentario. RevAntes de ejecutarlo, revise su salida para verificar el nombre correcto de la tabla, las familias de columnas y la API de administraciรณn actual.

Resumir este post con: