Cómo instalar HBase en Ubuntu (Instalación 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 independiente (sin dependencia del sistema Hadoop)

  • Este es el modo predeterminado de HBase
  • Se ejecuta contra el sistema de archivos local.
  • no usa Hadoop HDFS
  • Sólo el demonio HMaster puede ejecutarse
  • No recomendado para entornos de producción.
  • Se ejecuta en una sola JVM

2) Instalación en modo pseudodistribuido (sistema Hadoop de un solo nodo + instalación de HBase)

  • Se ejecuta en Hadoop HDFS
  • Todos los demonios se ejecutan en un solo nodo.
  • Recomendado para entorno de producción.

3) Instalación en modo totalmente distribuido (entorno MultinodeHadoop + instalación HBase)

  • Se ejecuta en Hadoop HDFS
  • Todos los daemons se ejecutarán en todos los nodos presentes en el clúster.
  • Altamente 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 HBase

Paso 1) Ir al enlace aquí para descargar HBase. Se abrirá una página web como se muestra a continuación.

Descargar la versión estable del archivo HBase Tar

Paso 2) Seleccione la versión estable como se muestra a continuación, versión 1.1.2

Descargar la versión estable del archivo HBase Tar

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.

Descargar la versión estable del archivo HBase Tar

Cómo instalar HBase en Ubuntu con modo independiente

Aquí está el proceso paso a paso de la instalación del modo independiente de HBase en Ubuntu:

Paso 1) Coloque el siguiente comando
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
Abra hbase-env.sh como se muestra a continuación y mencione la ruta JAVA_HOME en la ubicación.

Instalar HBase en Ubuntu con modo independiente

Paso 4) Abra el archivo y mencione la ruta.
Abra el archivo ~/.bashrc y mencione la ruta HBASE_HOME como se muestra a continuación

exportar HBASE_HOME=/home/hduser/hbase-1.1.1
exportar RUTA= $RUTA:$HBASE_HOME/bin

Instalar HBase en Ubuntu con modo independiente

Paso 5) Agregar propiedades en el archivo
Abra hbase-site.xml y coloque las siguientes propiedades dentro del archivo

hduser@ubuntu$ gedit hbase-site.xml (código como se muestra a continuación)

<property>

<name>hbase.rootdir</name>

<value>file:///home/hduser/HBASE/hbase</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/HBASE/zookeeper</value>

</property>

Instalar HBase en Ubuntu con modo independiente

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) Mencione las IP
Abra el archivo de hosts presente en /etc. ubicación y mencione las IP como se muestra a continuación.

Instalar HBase en Ubuntu con modo independiente

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.

Instalar HBase en Ubuntu con modo independiente

Paso 8) Inicie HBase Shell
El shell HBase puede comenzar usando "shell hbase”Y entrará en el modo Shell interactivo como se muestra en la siguiente captura de pantalla. Una vez que entra en modo shell, podemos realizar todo tipo de comandos.

Instalar HBase en Ubuntu con modo independiente

El modo independiente no requiere que se inicien los demonios de Hadoop. HBase puede ejecutarse de forma independiente.

Modo de instalación pseudodistribuido de HBase

Este es otro método para la instalación de Apache HBase, conocido como modo de instalación pseudodistribuido.
A continuación se detallan los pasos para instalar HBase a través del modo pseudodistribuido:

Paso 1) Coloque hbase-1.1.2-bin.tar.gz en /home/hduser

Paso 2) Descomprímelo 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

Modo de instalación pseudodistribuido de HBase

Paso 4) En este paso, abriremos el archivo ~/.bashrc y mencionaremos la ruta HBASE_HOME como se muestra en la captura de pantalla.

Instalación en modo pseudodistribuido de HBase

Paso 5) Abra HBase-site.xml y mencione las siguientes propiedades en el archivo (código como se muestra a continuación).

<property>

<name>hbase.rootdir</name>

<value>hdfs://localhost:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>localhost</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/hbase/zookeeper</value>

</property>

Modo de instalación pseudodistribuido de HBase

Modo de instalación pseudodistribuido de HBase

  1. Configurando el directorio raíz de Hbase en esta propiedad
  2. Para la configuración distribuida tenemos que establecer esta propiedad
  3. La propiedad de quórum de ZooKeeper debe configurarse aquí
  4. Configuración de replicación realizada en esta propiedad. De forma predeterminada, colocamos la replicación como 1. En el modo completamente distribuido, hay múltiples nodos de datos presentes, por lo que podemos aumentar la replicación colocando más de 1 valor en la propiedad dfs.replication.
  5. El puerto del cliente debe mencionarse en esta propiedad.
  6. El directorio de datos de ZooKeeper se puede mencionar en esta propiedad

Paso 6) Inicie los demonios de Hadoop primero y luego inicie los demonios de HBase como se muestra a continuación

Aquí primero debes iniciar los demonios de Hadoop usando“./inicio-todo.sh” comando como se muestra a continuación.

Modo de instalación pseudodistribuido de HBase

Después de iniciar los demonios de Hbase mediante hbase-start.sh

Modo de instalación pseudodistribuido de HBase

Ahora revisa jps

Modo de instalación pseudodistribuido de HBase

Instalación en modo totalmente distribuido de HBase

  • Esta configuración funcionará en modo de clúster Hadoop, donde varios nodos se generan en todo el clúster y se ejecutan.
  • La instalación es la misma que la del 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 se mencionan en modo pseudo.

Solución de problemas de instalación de HBase

1) Planteamiento del problema: El servidor maestro se inicializa pero los servidores de región no se inicializan

La comunicación entre los servidores maestro y regional 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 que 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 propio host local del servidor maestro.

Causa:

En la comunicación dual entre los servidores de región y el maestro, el servidor de región informa continuamente al servidor maestro que sus direcciones IP son 127.0.0.1.

Solución:

  • Debe eliminar el nodo del nombre del servidor maestro del host local que está presente en el archivo de hosts
  • Ubicación del archivo 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 región como se resalta arriba)

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Planteamiento del problema: No pude encontrar mi dirección: XYZ en la lista de servidores de quórum de Zookeeper

Causa:

  • El servidor 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 de quórum, es decir, presente en HBase.zookeeper.quorum archivo de configuración.

Solución:-

  • Debe reemplazar el nombre de host con el 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.
    • Interfaz HBase.zookeeper.dns
    • HBase.zookeeper.dns.servidor de nombres

3) Planteamiento del problema: Directorio raíz creado para HBase a través de Hadoop DFS

  • El Maestro dice que necesitas 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 usando Hadoop Sistema de archivos distribuido
  • Aquí HBase espera dos posibilidades.

1) El directorio raíz no existe

2) La instancia en ejecución anterior de HBase se inicializó antes

Solución:

  • Asegúrese de que el directorio raíz de HBase no exista actualmente o haya sido inicializado mediante una ejecución anterior de la instancia de HBase.
  • Como parte de la solución, debemos seguir los pasos.

Paso 1) Usando Hadoop dfs para eliminar el directorio raíz de HBase

Paso 2) HBase crea e inicializa el directorio por sí mismo

4) Planteamiento del problema: Eventos de sesión caducada de Zookeeper

Causa:

  • Los servidores HMaster o HRegion se apagan al generar excepciones
  • Si observamos los registros, podemos descubrir las excepciones reales que generaron

A continuación se muestra la excepción generada debido al evento de expiración de Zookeeper. Los eventos resaltados son algunas de las excepciones que se produjeron en el archivo de registro.

Código de archivos de registro como se muestra a continuación:

WARN org.apache.zookeeper.ClientCnxn: Exception
closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec

java.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: 5000
INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT
INFO 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 successful
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e

java.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 una capacidad de RAM de más de 1 GB.
  • Tienes que aumentar el tiempo de espera de la sesión para Zookeeper.
  • Para aumentar el tiempo de sesión fuera 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.
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>