La relación entre la instalación y verificación de hadoop y hbase y hbase

Como puede ver en la página de inicio del sitio web oficial de hadoop, ahora hay cinco módulos que vienen con el proyecto hadoop, a saber:

hadoop common
hdfs
yarn
map
Reducir hadoop Ozone

El primer elemento que se puede ver por el nombre es el módulo de función básica, hdfs es el sistema de almacenamiento de archivos, yarn es la programación y la gestión de clústeres y mapReduce es el cálculo y procesamiento de datos. Estos son los que inevitablemente entrarán en contacto con el comienzo del aprendizaje del uso de hadoop.
El último Hadoop Ozone es un sistema de almacenamiento distribuido de objetos. Es un complemento de hdfs. Es un contenido relativamente nuevo. Aparece con poca frecuencia en la boca de las personas. Es posible que muchas personas no lo sepan al principio, incluido yo.

También se puede ver desde aquí que las personas que escuchan sobre big data generalmente escuchan sobre hbase, hive, spark, etc., que en realidad no pertenecen al proyecto hadoop en sí, sino a otros proyectos relacionados que se pueden usar basados ​​en hadoop.
En cuanto a los módulos de Hadoop en sí, siempre que la versión correspondiente de Hadoop sea compatible, estas funciones de módulo se pueden usar siempre que Hadoop esté instalado.Los proyectos asociados deben instalarse y desplegarse de forma independiente, y luego asociarse en la configuración.

Hadoop puede hacer muchas cosas, pero cuando lo mencionas, debes pensar en Big Data la primera vez, y cuando se trata de Big Data, debes pensar en el procesamiento, cálculo y almacenamiento de datos.
Si dejas de lado hadoop Ozone primero, el almacenamiento de datos en el sistema de big data que conozco actualmente no se puede separar de hdfs y hbase. Comprensión personal, hbase puede considerarse como un complemento de hdfs en cierto sentido, porque desde el frente Si lo comprende, puede saber que hdfs no admite la modificación del contenido del archivo y es probable que haya desventajas.
Sabemos que la base de datos finalmente se almacena en forma de archivos. Ya sea mysql, mongodb o hbase, el sistema de archivos subyacente actual de hbase es compatible con hdfs. He verificado que no hay ningún problema, pero Internet dice que también es posible cambiar a otros sistemas de archivos. No hay problema, esto requiere más verificación.
Con base en las ideas anteriores, después de aprender inicialmente hdfs, debería ser una alfabetización básica, instalación, configuración y operación básica de hbase.

descargar hbase

Hbase puede encontrar la página de descarga del paquete de instalación http://hbase.apache.org/downloads.html del sitio web oficial. Esta página enumera muchas versiones. Al revisar las notas de la versión, veo que la versión 2.2.5 ya es compatible con la versión 3.2.x hadoop, y mi hadoop es 3.1.3, así que elegí esta versión.
Hay muchas maneras de obtener el paquete de instalación, que se han mencionado en los artículos de instalación Redis e instalación hadoop. Si usted quiere saber, puede pasar a la
preparación entorno de instalación hadoop y análisis de los conocimientos relacionados
. Instalación Redis en Linux e instalación de software relacionados con puntos de conocimiento de Linux
lo haré directamente aquí Utilice la forma más rápida:

wget https://downloads.apache.org/hbase/2.2.5/hbase-2.2.5-bin.tar.gz

Abrir la cremallera

tar -zxvf hbase-2.2.5-bin.tar.gz

Configuración de hbase-env.sh

Configúrelo a tiempo después de la descompresión. Lo primero que debe configurar es el archivo hbase-env.sh, que se encuentra en el directorio conf del directorio de instalación. Por ejemplo, si mi directorio de instalación de hbase es /root/soft/bigdata/hbase/hbase-2.2.5, la ruta del archivo es /root/soft/bigdata/hbase/hbase-2.2.5/conf/hbase-env.sh. El archivo debe configurarse de la siguiente manera

export JAVA_HOME=/root/soft/jdk1.8.0_261
export HBASE_CLASSPATH=/root/soft/bigdata/hbase/hbase-2.2.5/conf
export HBASE_MANAGES_ZK=true

Cabe señalar que la operación real es reemplazar la ruta de instalación de su propio jdk y hbase.

Configuración de hbase-sit.xml

Luego, desea configurar es hbase-sit.xml, donde debe especificar el directorio para almacenar los datos del sistema hbase hdfs, debido a mi modo distribuido hadoop, la configuración también debe activar un modo distribuido, estas configuraciones deben colocarse <configuration>y </configuration>medirse :

<property>
      <name>hbase.rootdir</name>
      <value>hdfs://192.168.139.9:9000/hbase</value>
</property>
<property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
</property>
<!--
<property>
      <name>hbase.tmp.dir</name>
      <value>./tmp</value>
</property>
-->
<property>
      <name>hbase.unsafe.stream.capability.enforce</name>
      <value>false</value>
</property>

De las varias configuraciones anteriores, la primera apunta al sistema de archivos hdfs que construí, donde hbase todavía es un directorio inexistente y se creará automáticamente durante el uso posterior.
La segunda configuración es para mi configuración de modo distribuido hadoop, hbase predetermina esta configuración a false, es decir, modo independiente.
El tercer elemento parece ser un directorio temporal. El archivo de configuración hbase viene originalmente con él. No estoy seguro de su utilidad por el momento. Lo comentaré primero.
El cuarto elemento también se incluye en el archivo de configuración de hbase. Mirando la explicación en línea, es para evitar errores de inicio. Lo dejaré sin cambios por ahora.

configuración de la variable de entorno hbase

Esta es una operación habitual que puede hacer que la operación sea más conveniente. Puede ejecutar comandos relacionados con hbase en cualquier directorio, y no necesita configurarlo si no desea configurarlo:

export HBASE_HOME=/root/soft/bigdata/hbase/hbase-2.2.5
export PATH=$PATH:$HBASE_HOME/bin

ServerNotRunningYetException

De acuerdo con el tutorial en línea, debería poder comenzar con la configuración anterior, siempre que se haya iniciado el hadoop.
Después de iniciar hadoop, ejecuté el comando de inicio de hbase y start-hbase.shdescubrí que el resultado era un error:

ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet 

Busqué en Internet y dije que era porque hdfs abrió el modo seguro, pero después de que solía hdfs dfsadmin -safemode getverificar el estado del modo seguro de hdfs, descubrí que estaba cerrado aquí, y la razón de este error debe ser más que esta. (Nota: hdfs dfsadmin -safemode enterse puede encender hdfs dfsadmin -safemode leaveo apagar manualmente)
Así que verifiqué el registro de inicio de hbase y finalmente descubrí que había sido descuidado. Al configurar la ip de hdfs, 192.168.139.9se escribió 12.168.139.9incorrectamente. Después de cambiar la ip a la correcta, tuvo éxito. puesta en marcha.

múltiples enlaces SLF4J

Aunque hbase se inició correctamente, apareció un recordatorio de alarma cuando se inició:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/soft/bigdata/hadoop/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]

Este recordatorio todavía es muy claro, es decir, hay un conflicto entre las dependencias de registro relacionadas con hbase y hadoop, así que cambié el nombre del jar de registro en hbase, y estuvo bien.

verificación

conexión de shell

Después de que hbase se inicia con éxito, como mysql, mongodb, redis, hbase también tiene su propia herramienta cliente de shell, que se puede conectar y operar:

hbase shell

Después de ejecutar el comando anterior, puede ingresar a la interfaz de línea de comandos de hbase. Tal vez sea por mi máquina. Se necesita mucho tiempo para ingresar.

Crear mesa

La simple operación de crear una estructura de tabla en hbase es la siguiente:

create 'user','name','age','addr','phone','email'

El significado del comando anterior es crear una tabla denominada usuario, que contiene atributos como nombre, edad, dirección, teléfono y correo electrónico.

El maestro se está inicializando

Al crear la tabla anterior, se produjo un episodio. Se lanzó la siguiente excepción durante la primera creación:

ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
        at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2811)
        at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2018)
        at 

Literalmente, el maestro se está iniciando, así que esperé un rato y lo volví a ejecutar, y se creó con éxito.

Ver estructura de la tabla

Después de crear la tabla hbase, puede usar el comando describe para ver la estructura de la tabla, por ejemplo

describe 'user'

El resultado de mi comando anterior es el siguiente:

Table user is ENABLED                                                       
user                                                                        
COLUMN FAMILIES DESCRIPTION                                                 
{NAME => 'addr', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERS
ION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE 
=> 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS =>
 '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE =
> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_
BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOC
KSIZE => '65536'}                                                           
{NAME => 'age', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSI
ON_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE =
> 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => 
'0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE =>
 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_B
LOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCK
SIZE => '65536'}                                                            
{NAME => 'email', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VER
SION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE
 => 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS =
> '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE 
=> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH
_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLO
CKSIZE => '65536'}                                                          
{NAME => 'name', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERS
ION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE 
=> 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS =>
 '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE =
> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_
BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOC
KSIZE => '65536'}                                                           
{NAME => 'phone', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VER
SION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE
 => 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS =
> '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE 
=> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH
_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLO
CKSIZE => '65536'}                                                          
5 row(s)
QUOTAS                                                                      
0 row(s)
Took 4.6373 seconds                     

Hasta ahora, demuestra que la configuración de instalación de hbase está disponible.

Detener hbase

La parada de hbase es originalmente muy simple, iníciela start-hbase.sh, entonces normalmente se dice que se detenga stop-hbase.sh, de hecho lo es.
Pero encontré un pequeño problema cuando me detuve, cuando me detuve por primera vez, siempre estaba en el estado de parada.
Internet dijo que hay que ejecutarlo primero, hbase-daemons.sh stop regionserveryo lo probé y fue realmente efectivo, luego la ejecución se stop-hbase.shdetuvo de inmediato, sin embargo, este fenómeno solo apareció una vez, y luego stop-hbase.shse detuvo rápidamente cada vez .

Para la parte anterior, consulte el siguiente artículo:
http://dblab.xmu.edu.cn/blog/2442-2/

Supongo que te gusta

Origin blog.csdn.net/tuzongxun/article/details/107915720
Recomendado
Clasificación