Comandos de HBase Shell con ejemplos

Después de una instalación exitosa de HBase sobre Hadoop, obtenemos un shell interactivo para ejecutar varios comandos y realizar varias operaciones. Usando estos comandos, podemos realizar múltiples operaciones en tablas de datos que pueden brindar mejores eficiencias de almacenamiento de datos y una interacción flexible por parte del cliente.

Podemos interactuar con HBase de dos maneras,

  • Modo de shell interactivo de HBase y
  • A través de la Java API

En HBase, el modo de shell interactivo se utiliza para interactuar con HBase para operaciones de tablas, administración de tablas y modelado de datos. Mediante el uso Java Modelo API, podemos realizar todo tipo de operaciones con tablas y datos en HBase. Podemos interactuar con HBase utilizando ambos métodos.

La única diferencia entre estos dos es Java La API usa código Java para conectarse con HBase y el modo shell usa comandos shell para conectarse con HBase.

Sobrecaptación rápida de HBase antes de continuar.

  • Usos de HBase Hadoop Archivos como sistema de almacenamiento para almacenar grandes cantidades de datos. Hbase consta de servidores maestros y servidores de regiones
  • Los datos que se almacenarán en HBase estarán en forma de regiones. Además, estas regiones se dividirán y almacenarán en varios servidores regionales.
  • Estos comandos de shell permiten al programador definir esquemas de tablas y operaciones de datos utilizando una interacción completa en modo shell.
  • Cualquiera que sea el comando que usemos, se reflejará en el modelo de datos de HBase.
  • Usamos comandos de shell HBase en intérpretes de scripts del sistema operativo como Bash shell
  • Bash Shell es el intérprete de comandos predeterminado para la mayoría de Linux y Unix distribuciones operativas
  • Las versiones avanzadas de HBase proporcionan comandos de shell, referencias orientadas a objetos estilo jruby para tablas
  • Las variables de referencia de tabla se pueden utilizar para realizar operaciones de datos en el modo shell HBase

Por ejemplo,

  • En este tutorial, hemos creado una tabla en la que "educación" representa el nombre de la tabla y corresponde al nombre de la columna "guru99".
  • En algunos comandos, “guru99” representa el nombre de una tabla.

Comandos generales

En Hbase, los comandos generales se clasifican en los siguientes comandos

  • Estado
  • Versión
  • Table_help (escanear, soltar, obtener, colocar, deshabilitar, etc.)
  • Quién soy

Para ingresar al comando de shell HBase, primero que nada, debemos ejecutar el código como se menciona a continuación

Comandos generales

hbase Shell

Una vez que ingresamos al shell de HBase, podemos ejecutar todos los comandos del shell que se mencionan a continuación. Con la ayuda de estos comandos, podemos realizar todo tipo de operaciones de tabla en el modo shell HBase.

Analicemos todos estos comandos y su uso uno por uno con un ejemplo.

Estado

Syntax:status

Este comando proporcionará detalles sobre el estado del sistema, como la cantidad de servidores presentes en el clúster, el recuento de servidores activos y el valor de carga promedio. También puede pasar parámetros particulares según el nivel de detalle que desee conocer sobre el sistema. Los parámetros pueden ser: 'resumen', 'simple' o 'detallado', el parámetro predeterminado proporcionado es "resumen".

A continuación, mostramos cómo puede pasar diferentes parámetros al comando de estado.

Si observamos la siguiente captura de pantalla, tendremos una mejor idea.

Estado

hbase(main):001:0>status
hbase(main):002:0>status 'simple'
hbase(main):003:0>status 'summary'
hbase(main):004:0> status 'detailed'

Cuando ejecutamos el estado de este comando, brindará información sobre la cantidad de servidores presentes, servidores inactivos y la carga promedio del servidor, aquí en la captura de pantalla se muestra información como: 1 servidor activo, 1 servidor inactivo y carga promedio de 7.0000.

Versión

Syntax: version

Versión

  • Este comando mostrará la versión de HBase utilizada actualmente en modo comando
  • Si ejecuta el comando de versión, obtendrá el resultado como se muestra arriba

Tabla de ayuda

Syntax:table_help

Ayuda de tabla

Este comando guía

  • Qué y cómo utilizar los comandos con referencia a tablas
  • Proporcionará diferentes usos de comandos de shell de HBase y sus sintaxis.
  • Aquí, en la captura de pantalla anterior, se muestra la sintaxis de "crear" y "obtener_tabla” comando con su uso. Podemos manipular la tabla mediante estos comandos una vez que se crea la tabla en HBase.
  • Proporcionará comandos de manipulación de tablas como put, get y toda la información de otros comandos.

whoami

Sintaxis:

Syntax: Whoami

Quién soy

Este comando “whoami” se utiliza para devolver la información del usuario actual de HBase del clúster de HBase.

Proporcionará información como

  • Grupos presentes en HBase
  • La información del usuario, por ejemplo en este caso "hduser", representa el nombre de usuario como se muestra en la captura de pantalla.

TTL (Tiempo de vida) – Atributo

En HBase, las familias de columnas se pueden configurar en valores de tiempo en segundos usando TTL. HBase eliminará filas automáticamente una vez que se alcance el tiempo de vencimiento. Este atributo se aplica a todas las versiones de una fila, incluso a la versión actual.

La hora TTL codificada en HBase para la fila se especifica en UTC. Este atributo se utiliza con los comandos de administración de tablas.

A continuación se muestran diferencias importantes entre el manejo de TTL y los TTL de la familia de columnas.

  • Los TTL de las células se expresan en unidades de milisegundos en lugar de segundos.
  • Los TTL de una celda no pueden extender la vida útil efectiva de una celda más allá de una configuración de TTL de nivel de familia de columnas.

Comandos de gestión de tablas.

Estos comandos permitirán a los programadores crear tablas y esquemas de tablas con familias de filas y columnas.

Los siguientes son comandos de administración de tablas

  • Crear
  • Lista
  • Describir
  • Deshabilitar
  • Desactivar todo
  • Active
  • Activar todo
  • Necesario
  • Drop_all
  • Mostrar filtros
  • Alterar
  • Alterar_estado

Veamos varios usos de comandos en HBase con un ejemplo.

Crear

Syntax: create <tablename>, <columnfamilyname>

Comandos de gestión de tablas: Crear

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 el diccionario o las especificaciones según la familia de columnas. Además de esto, también podemos pasarle algunos atributos de alcance de tabla.

Para comprobar si la tabla 'educación' está creada o no, tenemos que utilizar el "lista" comando como se menciona a continuación.

Lista

Syntax:list

Comandos de gestión de tablas: Lista

  • El comando "Lista" mostrará todas las tablas que están presentes o creadas en HBase
  • La salida que se muestra en la captura de pantalla anterior muestra actualmente las tablas existentes en HBase
  • Aquí, en esta captura de pantalla, se muestra que hay un total de 8 tablas presentes dentro de HBase.
  • Podemos filtrar los valores de salida de las tablas pasando parámetros de expresión regular opcionales.

Describir

Syntax:describe <table name>

Comandos de gestión de tablas: describir

hbase(main):010:0>describe 'education'

Este comando describe la tabla nombrada.

  • Proporcionará más información sobre las familias de columnas presentes en la tabla mencionada.
  • En nuestro caso, da la descripción sobre la mesa “educación”.
  • Proporcionará información sobre el nombre de la tabla con familias de columnas, filtros asociados, versiones y algunos detalles más.

inhabilitar

Syntax: disable <tablename>

Comandos de gestión de tablas: Desactivar

hbase(main):011:0>disable 'education'
  • Este comando comenzará a deshabilitar la tabla nombrada.
  • Si es necesario eliminar o eliminar la tabla, primero debe deshabilitarse

Aquí, en la captura de pantalla anterior, estamos deshabilitando la educación de tablas.

Desactivar todo

 Syntax: disable_all<"matching regex"
  • Este comando deshabilitará todas las tablas que coincidan con la expresión regular dada.
  • La implementación es la misma que la del comando eliminar (excepto agregar expresiones regulares para hacer coincidir)
  • Una vez que la tabla se desactiva, el usuario puede eliminarla de HBase.
  • Antes de eliminar o eliminar una tabla, primero debe desactivarse

Active

Syntax: enable <tablename>

Comandos de gestión de tablas: habilitar

hbase(main):012:0>enable 'education'
  • Este comando comenzará a habilitar la tabla nombrada.
  • Cualquiera que sea la tabla que esté deshabilitada, para recuperar su estado anterior usamos este comando
  • Si una tabla está deshabilitada en primera instancia y no se elimina ni se elimina, y si queremos reutilizar la tabla deshabilitada, entonces tenemos que habilitarla usando este comando.
  • Aquí, en la captura de pantalla anterior, habilitamos la tabla "educación".

mostrar filtros

Syntax: show_filters

Comandos de gestión de tablas: show_filters

Este comando muestra todos los filtros presentes en HBase, como ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter, etc.

caer

Syntax:drop <table name>

Comandos de gestión de tablas: soltar

hbase(main):017:0>drop 'education'

Tenemos que observar los puntos a continuación para soltar el comando.

  • Para eliminar la tabla presente en HBase, primero tenemos que deshabilitarla
  • Para eliminar la tabla presente en HBase, primero tenemos que desactivarla
  • Entonces, ya sea que la tabla se elimine o se elimine primero, la tabla debe deshabilitarse usando el comando deshabilitar.
  • Aquí, en la captura de pantalla anterior, eliminamos la tabla "educación".
  • Antes de ejecutar este comando, es necesario desactivar la tabla "educación".

soltar_todo

Syntax: drop_all<"regex">
  • Este comando eliminará todas las tablas que coincidan con la expresión regular dada
  • Las tablas deben deshabilitarse primero antes de ejecutar este comando usando enable_all
  • Las tablas con expresiones de coincidencia de expresiones regulares se eliminarán de HBase

está habilitado

Syntax: is_enabled 'education'

Este comando verificará si la tabla nombrada está habilitada o no. Por lo general, existe una pequeña confusión entre la acción del comando "enable" y "is_enabled", que aclaramos aquí

  • Supongamos que una tabla está deshabilitada, para usar esa tabla tenemos que habilitarla usando el comando enable
  • El comando is_enabled verificará si la tabla está habilitada o no

alterar

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

Este comando altera el esquema de la familia de columnas. Para entender qué hace exactamente, lo hemos explicado aquí con un ejemplo.

Ejemplos:

En estos ejemplos, vamos a realizar operaciones de comando de modificación en tablas y en sus columnas. Realizaremos operaciones como

  • Modificación de nombres de familias de una o varias columnas
  • Eliminar nombres de familias de columnas de la tabla
  • Varias otras operaciones que utilizan atributos de alcance con la tabla
  1. Para cambiar o agregar la familia de columnas 'guru99_1' en la tabla 'educación' desde el valor actual para mantener un máximo de 5 VERSIONES de celda,
  • “educación” es el nombre de la tabla creada anteriormente con el nombre de columna “guru99”
  • Aquí, con la ayuda de un comando de modificación, estamos intentando cambiar el esquema de la familia de columnas a guru99_1 desde guru99.

Comandos de gestión de tablas: alterar

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
  1. También puede operar el comando alterar en varias familias de columnas. Por ejemplo, definiremos dos columnas nuevas en nuestra tabla existente "educación".
 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}

Comandos de gestión de tablas: alterar

  • Podemos cambiar más de un esquema de columna a la vez usando este comando
  • guru99_2 y guru99_3, como se muestra en la captura de pantalla anterior, son los dos nuevos nombres de columnas que hemos definido para la tabla educación.
  • Podemos ver la forma de utilizar este comando en la captura de pantalla anterior.
  1. En este paso, veremos cómo eliminar una familia de columnas de la tabla. Eliminar la familia de columnas 'f1' en la tabla 'educación'.

Utilice uno de estos comandos a continuación,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
  • En este comando, estamos intentando eliminar el nombre del espacio de columna guru99_1 que creamos previamente en el primer paso.

Comandos de gestión de tablas: alterar

  1. Como se muestra en las capturas de pantalla a continuación, se muestran dos pasos: cómo cambiar el atributo de alcance de la tabla y cómo eliminar el atributo de alcance de la tabla.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Comandos de gestión de tablas: alterar

Paso 1) Puede cambiar los atributos del alcance de la tabla como MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Estos se pueden poner al final; por ejemplo, para cambiar el tamaño máximo de una región a 128 MB o cualquier otro valor de memoria, usamos este comando.

Uso:

  • Podemos usar MAX_FILESIZE con la tabla como atributo de alcance como se muestra arriba
  • El número representado en MAX_FILESIZE está en términos de memoria en bytes

NBENEFICIOS SEGÚN OBJETIVOS: El alcance de la tabla de atributos MAX_FILESIZE estará determinado por algunos atributos presentes en HBase. MAX_FILESIZE también se incluye en los atributos del alcance de la tabla.

Paso 2) También puede eliminar un atributo de alcance de tabla utilizando el método table_att_unset. Si ves el comando

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • La captura de pantalla anterior muestra el nombre de la tabla modificado con atributos de alcance
  • El método table_att_unset se utiliza para anular los atributos presentes en la tabla.
  • En la segunda instancia, estamos desarmantando el atributo MAX_FILESIZE.
  • Después de la ejecución del comando, simplemente eliminará el atributo MAX_FILESIZE de la tabla "educación".

alterar_estado

 Syntax: alter_status 'education'

Comandos de gestión de tablas: alter_status

  • A través de este comando, puede obtener el estado del comando de modificación.
  • Lo que indica el número de regiones de la tabla que han recibido el nombre de la tabla de pase de esquema actualizado.
  • Aquí, en la captura de pantalla anterior, se muestran 1/1 regiones actualizadas. Significa que ha actualizado una región. Después de eso, si tiene éxito, mostrará el comentario realizado.

Comandos de manipulación de datos

Estos comandos funcionarán en la tabla relacionada con manipulaciones de datos, como colocar datos en una tabla, recuperar datos de una tabla y eliminar esquemas, etc.

Los comandos que vienen bajo estos son

  • Contar
  • poner
  • Obtén
  • Eliminar
  • Eliminar todos
  • Truncar
  • Escanear

Analicemos el uso de estos comandos con un ejemplo.

Contar

Syntax: count <'tablename'>, CACHE =>1000
  • El comando recuperará el recuento de varias filas de una tabla. El valor devuelto por éste es el número de filas.
  • El recuento actual se muestra por cada 1000 filas de forma predeterminada.
  • El intervalo de recuento se puede especificar opcionalmente.
  • El tamaño de caché predeterminado es 10 filas.
  • El comando Count funcionará rápido cuando esté configurado con el caché correcto.

Ejemplo:

Contar

hbase> count 'guru99', CACHE=>1000

Este recuento de ejemplo recupera 1000 filas a la vez de la tabla "Guru99".

Podemos hacer que el caché tenga un valor más bajo si la tabla consta de más filas.

Pero de forma predeterminada buscará una fila a la vez.

hbase>count 'guru99', INTERVAL => 100000
hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

Supongamos que la tabla "Guru99" tiene alguna referencia de tabla como, por ejemplo, g.

Podemos ejecutar el comando de conteo en la referencia de la tabla también como se muestra a continuación

hbase>g.count INTERVAL=>100000
hbase>g.count INTERVAL=>10, CACHE=>1000

poner

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Este comando se utiliza 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í colocamos valores en la tabla "guru99" en 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 siguiente captura de pantalla.

poner

  • 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
  • El resultado será como se muestra en la captura de pantalla anterior después de colocar los valores en "guru99".

Para comprobar si el valor de entrada está insertado correctamente en la tabla, utilizamos el comando "escanear". En la siguiente captura de pantalla, podemos ver que los valores se insertan correctamente.

poner

Fragmento de código: para practicar

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
put 'guru99', 'r1', 'Edu:c1', 'value', 10
put 'guru99', 'r1', 'Edu:c1', 'value', 15
put 'guru99', 'r1', 'Edu:c1', 'value', 30

Desde el fragmento de código, estamos haciendo estas cosas

  • Aquí estamos creando una tabla llamada "guru99" con el nombre de columna "Edu".
  • Al usar el comando "poner", colocamos valores en el nombre de fila r1 en la columna "Edu" en la tabla "guru99".

Obtén

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Aquí los incluyen TIMERANGE, TIMESTAMP, VERSIONES y FILTERS.

Al utilizar este comando, obtendrá el contenido de una 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 una fila o contenido de celda en particular.

Obtén

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 los valores c1, c2, c3 de las familias de columnas se mostrarán usando este comando

Eliminar

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Este comando eliminará el valor de la celda en la tabla definida de fila o columna.
  • La eliminación debe y debe coincidir exactamente con las coordenadas de las celdas eliminadas.
  • Al escanear, eliminar celda suprime las versiones anteriores de los valores.

Eliminar

Ejemplo:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • La ejecución anterior eliminará la fila r1 de la familia de columnas c1 en la tabla "guru99".
  • 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 como base> g.eliminar 'guru99', 'r1', 'c1′".

eliminar todos

Syntax: deleteall <'tablename'>, <'rowname'>

Eliminar todos

  • Este comando eliminará todas las celdas de una fila determinada.
  • Opcionalmente, podemos definir nombres de columnas y marcas de tiempo para la sintaxis.

Ejemplo:-

hbase>deleteall 'guru99', 'r1', 'c1'

Esto eliminará todas las filas y columnas presentes en la tabla. Opcionalmente podemos mencionar nombres de columnas en eso.

Truncar

Syntax:  truncate <tablename>

Truncar

Después de truncar una tabla hbase, se presentará el esquema pero no los registros. Este comando realiza 3 funciones; esos se enumeran a continuación

  • Deshabilita la tabla si ya se presenta
  • Suelta la tabla si ya se presenta
  • Recrea la tabla mencionada.

Escanear

Syntax: scan <'tablename'>, {Optional parameters}

Este comando escanea toda la tabla y muestra el contenido de la tabla.

  • Podemos pasar varias especificaciones opcionales a este comando de escaneo para obtener más información sobre las tablas presentes en el sistema.
  • Las especificaciones del escáner pueden incluir uno o más de los siguientes atributos.
  • Estos son TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW y STOPROW.
scan 'guru99'

El resultado como se muestra a continuación en la captura de pantalla.

Escanear

En la captura de pantalla de arriba

  • Muestra la tabla "guru99" con el nombre de la columna y los valores.
  • Consta de tres valores de fila r1, r2, r3 para el valor de una sola columna c1
  • Muestra los valores asociados con las filas.

Ejemplos: -

Los diferentes usos del comando de escaneo

Comando Uso
escanear '.META.', {COLUMNAS => 'info:regioninfo'} Muestra toda la información de metadatos relacionada con las columnas que están presentes en las tablas en HBase.
escanear 'guru99', {COLUMNAS => ['c1', 'c2'], LÍMITE => 10, STARTROW => 'xyz'} Muestra el contenido de la tabla guru99 con sus familias de columnas c1 y c2 limitando los valores a 10.
escanear 'guru99', {COLUMNAS => 'c1', RANGO DE TIEMPO => [1303668804, 1303668904]} Muestra el contenido de guru99 con su nombre de columna c1 con los valores presentes entre el valor del atributo de rango de tiempo mencionado.
escanear 'guru99', {RAW => verdadero, VERSIONES =>10} En este comando, RAW=> true proporciona funciones avanzadas como mostrar todos los valores de celda presentes en la tabla guru99

Ejemplo de código:

Primero cree una tabla y coloque valores en la tabla.

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}
put 'guru99', 'r1', 'e:c1', 'value', 10
put 'guru99', 'r1', 'e:c1', 'value', 12
put 'guru99', 'r1', 'e:c1', 'value', 14
delete 'guru99', 'r1', 'e:c1', 11

Captura de pantalla de entrada:

Ejemplo de escaneo

Si ejecutamos el comando de escaneo

Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}

Mostrará el resultado que se muestra a continuación.

Captura de pantalla de salida:

Ejemplo de escaneo

La salida que se muestra en la captura de pantalla anterior proporciona la siguiente información

  • Escaneando la tabla guru99 con atributos RAW=>true, VERSIONES=>1000
  • Mostrar filas con familias de columnas y valores
  • En la tercera fila, los valores mostrados muestran el valor eliminado presente en la columna
  • La salida que muestra es aleatoria; no puede ser el mismo orden que los valores que insertamos en la tabla

Cluster Comandos de replicación

  • Estos comandos funcionan en el modo de configuración de clúster de HBase.
  • Para agregar y eliminar pares del clúster y para iniciar y detener la replicación, estos comandos se utilizan en general.
Comando Funcionalidad
agregar_peer Agregar pares al clúster para replicar

hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod

eliminar_peer Detiene el flujo de replicación definido.

Elimina toda la información de metadatos sobre el par.

hbase> eliminar_peer '1'

inicio_replicación Reinicia todas las funciones de replicación.

hbase> inicio_replicación

detener_replicación Detiene todas las funciones de replicación.

hbase>detener_replicación

Resumen

Los comandos generales y del shell de HBase brindan información completa sobre los diferentes tipos de manipulación de datos, administración de tablas y comandos de replicación de clústeres. Podemos realizar varias funciones utilizando estos comandos en las tablas presentes en HBase.

Resumir este post con: