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: