Comment installer HBase sur Ubuntu (Installation HBase)

Modes d'installation d'Apache HBase

Apache HBase peut être installé selon trois modes. Les caractéristiques de ces modes sont mentionnées ci-dessous.

1) Installation en mode autonome (Aucune dépendance au système Hadoop)

  • C'est le mode par défaut de HBase
  • Il fonctionne sur le système de fichiers local
  • Il n'utilise pas Hadoop HDFS
  • Seul le démon HMaster peut s'exécuter
  • Non recommandé pour l'environnement de production
  • Fonctionne dans une seule JVM

2) Installation en mode pseudo-distribué (système Hadoop à nœud unique + installation HBase)

  • Il fonctionne sur Hadoop HDFS
  • Tous les démons s'exécutent sur un seul nœud
  • Recommandé pour l'environnement de production

3) Installation en mode entièrement distribué (environnement MultinodeHadoop + installation HBase)

  • Il fonctionne sur Hadoop HDFS
  • Tous les démons vont s'exécuter sur tous les nœuds présents dans le cluster
  • Fortement recommandé pour l'environnement de production

Pour l'installation de Hadoop, reportez-vous à cette URL Ici

Comment télécharger la version stable du fichier tar HBase

Étape 1) Aller sur le lien here. pour télécharger HBase. Cela ouvrira une page Web comme indiqué ci-dessous.

Télécharger la version stable du fichier Tar HBase

Étape 2) Sélectionnez la version stable comme indiqué ci-dessous la version 1.1.2

Télécharger la version stable du fichier Tar HBase

Étape 3) Cliquez sur hbase-1.1.2-bin.tar.gz. Il téléchargera le fichier tar. Copiez le fichier tar dans un emplacement d'installation.

Télécharger la version stable du fichier Tar HBase

Comment installer HBase dans Ubuntu avec mode autonome

Voici le processus étape par étape d'installation en mode autonome de HBase dans Ubuntu:

Étape 1) Placez la commande ci-dessous
Placez hbase-1.1.2-bin.tar.gz dans /home/hduser
Étape 2) Décompressez-le en exécutant la commande $tar -xvf hbase-1.1.2-bin.tar.gz.
Il décompressera le contenu et créera hbase-1.1.2 à l'emplacement /home/hduser

Étape 3) Ouvrez hbase-env.sh
Ouvrez hbase-env.sh comme ci-dessous et mentionnez le chemin JAVA_HOME à l'emplacement.

Installer HBase dans Ubuntu avec mode autonome

Étape 4) Ouvrez le fichier et mentionnez le chemin
Ouvrez le fichier ~/.bashrc et mentionnez le chemin HBASE_HOME comme indiqué ci-dessous

exporter HBASE_HOME=/home/hduser/hbase-1.1.1
export PATH= $PATH:$HBASE_HOME/bin

Installer HBase dans Ubuntu avec mode autonome

Étape 5) Ajouter des propriétés dans le fichier
Ouvrez hbase-site.xml et placez les propriétés suivantes dans le fichier

hduser@ubuntu$ gedit hbase-site.xml (code comme ci-dessous)

<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>

Installer HBase dans Ubuntu avec mode autonome

Ici nous plaçons deux propriétés

  • Un pour le répertoire racine HBase et
  • Le deuxième pour le répertoire de données correspond à ZooKeeper.

Toutes les activités HMaster et ZooKeeper pointent vers ce hbase-site.xml.

Étape 6) Mentionnez les IP
Ouvrez le fichier hosts présent dans /etc. emplacement et mentionnez les adresses IP comme indiqué ci-dessous.

Installer HBase dans Ubuntu avec mode autonome

Étape 7) Exécutez maintenant Start-hbase.sh à l'emplacement hbase-1.1.1/bin comme indiqué ci-dessous.

Et nous pouvons vérifier par la commande jps pour voir que HMaster est en cours d'exécution ou non.

Installer HBase dans Ubuntu avec mode autonome

Étape 8) Démarrez le shell HBase
Le shell HBase peut démarrer en utilisant "shell hbase" et il entrera en mode shell interactif comme indiqué dans la capture d'écran ci-dessous. Une fois qu'il entre en mode shell, nous pouvons exécuter tout type de commandes.

Installer HBase dans Ubuntu avec mode autonome

Le mode autonome ne nécessite pas le démarrage des démons Hadoop. HBase peut fonctionner indépendamment.

Mode d'installation pseudo-distribué HBase

Il s'agit d'une autre méthode d'installation d'Apache HBase, connue sous le nom de mode d'installation pseudo-distribué.
Vous trouverez ci-dessous les étapes pour installer HBase via le mode pseudo-distribué :

Étape 1) Placez hbase-1.1.2-bin.tar.gz dans /home/hduser

Étape 2) Décompressez-le en exécutant command$tar -xvf hbase-1.1.2-bin.tar.gz. Il décompressera le contenu et créera hbase-1.1.2 à l'emplacement /home/hduser

Étape 3) Ouvrez hbase-env.sh comme suit ci-dessous et mentionnez le chemin JAVA_HOME et le chemin des serveurs de région à l'emplacement et exportez la commande comme indiqué.

Mode d'installation pseudo-distribué HBase

Étape 4) Dans cette étape, nous allons ouvrir le fichier ~/.bashrc et mentionner le chemin HBASE_HOME comme indiqué dans la capture d'écran.

Installation en mode pseudo-distribué HBase

Étape 5) Ouvrez HBase-site.xml et mentionnez les propriétés ci-dessous dans le fichier. (Codez comme ci-dessous)

<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>

Mode d'installation pseudo-distribué HBase

Mode d'installation pseudo-distribué HBase

  1. Configuration du répertoire racine Hbase dans cette propriété
  2. Pour une configuration distribuée, nous devons définir cette propriété
  3. La propriété de quorum ZooKeeper doit être configurée ici
  4. Configuration de la réplication effectuée dans cette propriété. Par défaut, nous plaçons la réplication sur 1. En mode entièrement distribué, plusieurs nœuds de données sont présents afin que nous puissions augmenter la réplication en plaçant plus d'une valeur dans la propriété dfs.replication.
  5. Le port client doit être mentionné dans cette propriété
  6. Le répertoire de données ZooKeeper peut être mentionné dans cette propriété

Étape 6) Démarrez d'abord les démons Hadoop, puis démarrez les démons HBase comme indiqué ci-dessous.

Ici, vous devez d'abord démarrer les démons Hadoop en utilisant"./start-all.sh" commande comme indiqué ci-dessous.

Mode d'installation pseudo-distribué HBase

Après avoir démarré les démons Hbase par hbase-start.sh

Mode d'installation pseudo-distribué HBase

Maintenant, vérifie les jps

Mode d'installation pseudo-distribué HBase

Installation en mode entièrement distribué HBase

  • Cette configuration fonctionnera en mode cluster Hadoop où plusieurs nœuds apparaissent sur le cluster et sont en cours d'exécution.
  • L'installation est la même qu'en mode pseudo distribué ; la seule différence est qu'il apparaîtra sur plusieurs nœuds.
  • Les fichiers de configuration mentionnés dans HBase-site.xml et hbase-env.sh sont les mêmes que ceux mentionnés en mode pseudo.

Dépannage de l'installation de HBase

1) Énoncé du problème : Le serveur maître s'initialise mais les serveurs de région ne s'initialisent pas

La communication entre les serveurs maîtres et régionaux via leurs adresses IP. Comme la façon dont Master va écouter que les serveurs de région sont en cours d'exécution ou ont l'adresse IP de 127.0.0.1. L'adresse IP 127.0.0.1 qui est l'hôte local et se résout en l'hôte local du serveur maître.

Cause:

Dans une double communication entre les serveurs de région et le maître, le serveur de région informe en permanence le serveur maître que leurs adresses IP sont 127.0.0.1.

Solution:

  • Doit supprimer le nœud de nom de serveur maître de l'hôte local présent dans le fichier hosts
  • Emplacement du fichier hôte /etc/hosts

Que changer :

Ouvrez /etc./hosts et accédez à cet emplacement

127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost
: : 1              localhost3.localdomain3 localdomain3

Modifiez la configuration ci-dessus comme ci-dessous (supprimez le nom du serveur de région comme indiqué ci-dessus)

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Énoncé du problème : Impossible de trouver mon adresse : XYZ dans la liste des serveurs de quorum Zookeeper

Cause:

  • Le serveur ZooKeeper n'a pas pu démarrer et il générera une erreur telle que .xyz au nom du serveur.
  • HBase tente de démarrer un serveur ZooKeeper sur une machine mais en même temps, la machine n'est pas en mesure de trouver elle-même la configuration du quorum, c'est-à-dire présente dans HBase.zookeeper.quorum fichier de configuration.

La solution:-

  • Doit remplacer le nom d'hôte par un nom d'hôte présenté dans le message d'erreur
  • Supposons que nous ayons un serveur DNS, nous pouvons définir les configurations ci-dessous dans HBase-site.xml.
    • HBase.zookeeper.dns.interface
    • HBase.zookeeper.dns.nameserver

3) Énoncé du problème : Création du répertoire racine pour HBase via Hadoop DFS

  • Le maître dit que vous devez exécuter le script de migration HBase.
  • En exécutant cela, le script de migration HBase répond comme s'il n'y avait aucun fichier dans le répertoire racine.

Cause:

  • Création d'un nouveau répertoire pour HBase en utilisant Hadoop Système de fichiers distribué
  • Ici, HBase s'attend à deux possibilités

1) Le répertoire racine ne doit pas exister

2) L'instance en cours d'exécution précédente de HBase a été initialisée avant

Solution:

  • Assurez-vous que le répertoire racine HBase n'existe pas actuellement ou a été initialisé par une exécution précédente de l'instance HBase.
  • Dans le cadre de la solution, nous devons suivre les étapes

Étape 1) Utilisation de Hadoop dfs pour supprimer le répertoire racine HBase

Étape 2) HBase crée et initialise le répertoire par lui-même

4) Énoncé du problème : Événements expirés de la session Zookeeper

Cause:

  • Les serveurs HMaster ou HRegion s'arrêtent en lançant des exceptions
  • Si nous observons les journaux, nous pouvons découvrir les exceptions réelles qui ont été générées.

Ce qui suit montre l'exception levée en raison de l'expiration de l'événement Zookeeper. Les événements mis en évidence sont quelques-unes des exceptions survenues dans le fichier journal

Code des fichiers journaux comme affiché ci-dessous :

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

Solution:

  • La taille de RAM par défaut est de 1 Go. Pour effectuer des importations de longue durée, nous avons maintenu une capacité de RAM supérieure à 1 Go.
  • Je dois augmenter le délai d'expiration de la session pour Zookeeper.
  • Pour augmenter la durée de session hors de Zookeeper, nous devons modifier la propriété suivante dans « hbase-site.xml » présente dans le chemin du dossier hbase /conf.
  • Le délai d'expiration de session par défaut est de 60 secondes. Nous pouvons le changer à 120 secondes comme mentionné ci-dessous
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>