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
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.
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
- 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
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
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>
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
- 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>
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>
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>
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
Este comando muestra todos los filtros presentes en HBase, como ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter, etc.
caer
Syntax:drop <table name>
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
- 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.
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
- 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}
- 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.
- 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.
- 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'
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'
- 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:
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.
- 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.
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.
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.
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'>
- 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>
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.
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:
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:
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.























