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.
Étape 2) Sélectionnez la version stable comme indiqué ci-dessous la version 1.1.2
É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.
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.
É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 |
É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>
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.
É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.
É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.
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é.
Étape 4) Dans cette étape, nous allons ouvrir le fichier ~/.bashrc et mentionner le chemin HBASE_HOME comme indiqué dans la capture d'écran.
É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>
- Configuration du répertoire racine Hbase dans cette propriété
- Pour une configuration distribuée, nous devons définir cette propriété
- La propriété de quorum ZooKeeper doit être configurée ici
- 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.
- Le port client doit être mentionné dans cette propriété
- 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.
Après avoir démarré les démons Hbase par hbase-start.sh
Maintenant, vérifie les jps
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>