En este tutorial, aprenderá,
- Modos de instalación de Apache HBase
- Cómo descargar la versión estable del archivo tar de Hbase
- Hbase: instalación en modo autónomo
- Hbase: modo de instalación pseudo distribuido
- Hbase: instalación en modo totalmente distribuido
- Solución de problemas de instalación de HBase
Modos de instalación de Apache HBase
Apache HBase se puede instalar en tres modos. Las características de estos modos se mencionan a continuación.
1) Instalación en modo autónomo (sin dependencia del sistema Hadoop)
- Este es el modo predeterminado de HBase
- Se ejecuta en el sistema de archivos local.
- No usa Hadoop HDFS
- Solo el demonio HMaster puede ejecutarse
- No recomendado para entorno de producción
- Se ejecuta en una sola JVM
2) Instalación en modo pseudodistribuido (sistema Hadoop de nodo único + instalación HBase)
- Se ejecuta en Hadoop HDFS
- Todos los demonios se ejecutan en un solo nodo
- Recomendado para el entorno de producción.
3) Instalación en modo totalmente distribuido (entorno MultinodeHadoop + instalación HBase)
- Se ejecuta en Hadoop HDFS
- Todos los demonios se ejecutarán en todos los nodos presentes en el clúster.
- Muy recomendado para entornos de producción.
Para la instalación de Hadoop, consulte esta URL aquí
Cómo descargar la versión estable del archivo tar de Hbase
Paso 1) Vaya al enlace aquí para descargar HBase. Abrirá una página web como se muestra a continuación.
Paso 2) Seleccione la versión estable como se muestra a continuación 1.1.2 versión
Paso 3) Haga clic en hbase-1.1.2-bin.tar.gz. Descargará el archivo tar. Copie el archivo tar en una ubicación de instalación.
Hbase - Instalación en modo autónomo:
La instalación se realiza en Ubuntu con Hadoop ya instalado.
Paso 1) Coloque hbase-1.1.2-bin.tar.gz en / home / hduser
Paso 2) Descomprímalo ejecutando el comando $ tar -xvf hbase-1.1.2-bin.tar.gz . Descomprimirá el contenido y creará hbase-1.1.2 en la ubicación / home / hduser
Paso 3) Abra hbase-env.sh como se muestra a continuación y mencione la ruta JAVA_HOME en la ubicación.
Paso 4) Abra el archivo ~ / .bashrc y mencione la ruta HBASE_HOME como se muestra a continuación
export HBASE_HOME = / home / hduser / hbase-1.1.1 export PATH = $ PATH: $ HBASE_HOME / bin |
Paso 5) Abra hbase-site.xml y coloque las siguientes propiedades dentro del archivo
hduser @ ubuntu $ gedit hbase-site.xml (código como a continuación)
hbase.rootdir file:///home/hduser/HBASE/hbase hbase.zookeeper.property.dataDir /home/hduser/HBASE/zookeeper
Aquí estamos colocando dos propiedades
- Uno para el directorio raíz de HBase y
- El segundo para el directorio de datos corresponde a ZooKeeper.
Todas las actividades de HMaster y ZooKeeper apuntan a este hbase-site.xml.
Paso 6) Abra el archivo de hosts presente en / etc. ubicación y mencione las direcciones IP como se muestra a continuación.
Paso 7) Ahora ejecute Start-hbase.sh en la ubicación hbase-1.1.1 / bin como se muestra a continuación.
Y podemos verificar mediante el comando jps para ver si HMaster se está ejecutando o no.
Paso 8) El shell de HBase puede comenzar usando "hbase shell" y entrará en el modo de shell interactivo como se muestra en la siguiente captura de pantalla. Una vez que entra en modo shell, podemos realizar todo tipo de comandos.
El modo autónomo no requiere que los demonios de Hadoop se inicien. HBase puede ejecutarse de forma independiente.
Hbase - Modo de instalación pseudo distribuido:
Este es otro método para la instalación de Apache Hbase, conocido como modo de instalación pseudo distribuido. A continuación se muestran los pasos para instalar HBase mediante este método.
Paso 1) Coloque hbase-1.1.2-bin.tar.gz en / home / hduser
Paso 2) Descomprímalo ejecutando el comando $ tar -xvf hbase-1.1.2-bin.tar.gz . Descomprimirá el contenido y creará hbase-1.1.2 en la ubicación / home / hduser
Paso 3) Abra hbase-env.sh como se muestra a continuación y mencione la ruta JAVA_HOME y la ruta de los servidores de la región en la ubicación y exporte el comando como se muestra
Paso 4) En este paso, vamos a abrir el archivo ~ / .bashrc y mencionar la ruta HBASE_HOME como se muestra en la captura de pantalla.
Paso 5) Abra HBase-site.xml y mencione las siguientes propiedades en el archivo (código como se muestra a continuación)
hbase.rootdir hdfs://localhost:9000/hbase hbase.cluster.distributed true hbase.zookeeper.quorum localhost dfs.replication 1 hbase.zookeeper.property.clientPort 2181 hbase.zookeeper.property.dataDir /home/hduser/hbase/zookeeper
- Configuración del directorio raíz de Hbase en esta propiedad
- Para la configuración distribuida tenemos que configurar esta propiedad
- La propiedad de quórum de ZooKeeper debe configurarse aquí
- Configuración de replicación realizada en esta propiedad. De forma predeterminada, colocamos la replicación como 1.
En el modo completamente distribuido, se presentan varios nodos de datos para que podamos aumentar la replicación colocando más de 1 valor en la propiedad dfs.replication
- El puerto del cliente debe mencionarse en esta propiedad
- El directorio de datos de ZooKeeper se puede mencionar en esta propiedad
Paso 6) Inicie primero los demonios de Hadoop y luego inicie los demonios de HBase como se muestra a continuación
Aquí primero debe iniciar los demonios de Hadoop utilizando el comando "./start-all.sh" como se muestra a continuación.
Después de iniciar los demonios de Hbase por hbase-start.sh
Ahora revisa jps
Hbase - Instalación en modo totalmente distribuido: -
- Esta configuración funcionará en el modo de clúster de Hadoop, donde varios nodos se generan en el clúster y se ejecutan.
- La instalación es la misma que en el modo pseudodistribuido; la única diferencia es que se generará en varios nodos.
- Los archivos de configuración mencionados en HBase-site.xml y hbase-env.sh son los mismos que los mencionados en pseudomodo.
Solución de problemas de instalación de HBase
1) Declaración del problema: el servidor maestro se inicializa pero los servidores de la región no se inicializan
La comunicación entre los servidores Master y de la región a través de sus direcciones IP. Como la forma en que Master escuchará que los servidores de la región se están ejecutando o tienen la dirección IP 127.0.0.1. La dirección IP 127.0.0.1, que es el host local y se resuelve en el host local propio del servidor maestro.
Causa:
En la comunicación dual entre los servidores de la región y el maestro, el servidor de la región informa continuamente al servidor maestro que sus direcciones IP son 127.0.0.1.
Solución:
- Tiene que eliminar el nodo del nombre del servidor maestro del host local que está presente en el archivo de hosts
- Ubicación del archivo de host / etc / hosts
Qué cambiar:
Abra /etc./hosts y vaya a esta ubicación
127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost: : 1 localhost3.localdomain3 localdomain3
Modifique la configuración anterior como se muestra a continuación (elimine el nombre del servidor de la región como se resalta arriba)
127.0.0.1 localhost.localdomainlocalhost: : 1 localhost3.localdomain3 localdomain3
2) Declaración del problema: No pude encontrar mi dirección: XYZ en la lista de servidores de quórum de Zookeeper
Causa:
- El servidor de ZooKeeper no pudo iniciarse y arrojará un error como .xyz en el nombre del servidor.
- HBase intenta iniciar un servidor ZooKeeper en alguna máquina pero al mismo tiempo la máquina no puede encontrar la configuración del quórum, es decir, presente en el archivo de configuración HBase.zookeeper.quorum .
Solución:-
- Tiene que reemplazar el nombre de host con un nombre de host que se presenta en el mensaje de error
- Supongamos que tenemos un servidor DNS, entonces podemos establecer las siguientes configuraciones en HBase-site.xml.
- HBase.zookeeper.dns.interface
- HBase.zookeeper.dns.nameserver
3) Declaración del problema: directorio raíz creado para HBase a través de Hadoop DFS
- Master dice que necesita ejecutar el script de migraciones de HBase.
- Al ejecutar eso , el script de migraciones de HBase responde como si no hubiera archivos en el directorio raíz .
Causa:
- Creación de un nuevo directorio para HBase utilizando el sistema de archivos distribuido de Hadoop
- Aquí HBase espera dos posibilidades
1) El directorio raíz no existe
2) instancia en ejecución anterior de HBase inicializada antes
Solución:
- Asegúrese de que el directorio raíz de HBase no existe actualmente o se ha inicializado mediante una ejecución anterior de la instancia de HBase.
- Como parte de la solución, tenemos que seguir los pasos.
Paso 1) Uso de Hadoop dfs para eliminar el directorio raíz de HBase
Paso 2) HBase crea e inicializa el directorio por sí mismo
4) Declaración del problema: eventos caducados de la sesión de Zookeeper
Causa:
- Los servidores HMaster o HRegion se cierran al lanzar Excepciones
- Si observamos los registros, podemos descubrir las excepciones reales que arrojaron
A continuación se muestra la excepción lanzada debido al evento caducado de Zookeeper. Los eventos resaltados son algunas de las excepciones ocurridas en el archivo de registro
Código de archivos de registro como se muestra a continuación:
WARN org.apache.zookeeper.ClientCnxn: Exceptionclosing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ecjava.io.IOException: TIMED OUT at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906)WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORTINFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT]INFO org.apache.zookeeper.ClientCnxn: Server connection successfulWARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65ejava.io.IOException: Session Expired at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589)at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709)at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945)ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired
Solución:
- El tamaño de RAM predeterminado es 1 GB. Para realizar importaciones de larga duración, hemos mantenido la capacidad de RAM en más de 1 GB.
- Tiene que aumentar el tiempo de espera de la sesión para Zookeeper.
- Para aumentar el tiempo de espera de la sesión de Zookeeper, tenemos que modificar la siguiente propiedad en "hbase-site.xml" que está presente en la ruta de la carpeta hbase / conf.
- El tiempo de espera predeterminado de la sesión es de 60 segundos. Podemos cambiarlo a 120 segundos como se menciona a continuación.
zookeeper.session.timeout 1200000 hbase.zookeeper.property.tickTime 6000