В этом уроке вы узнаете,
- Режимы установки Apache HBase
- Как скачать стабильную версию tar-файла Hbase
- Hbase — установка в автономном режиме
- Hbase — псевдо-распределенный режим установки
- Hbase — полностью распределенный режим установки
- Устранение неполадок при установке HBase
Режимы установки Apache HBase
Apache HBase может быть установлен в трех режимах. Особенности этих режимов упомянуты ниже.
1) Установка в автономном режиме (не зависит от системы Hadoop)
- Это режим по умолчанию HBase
- Он работает против локальной файловой системы
- Он не использует Hadoop HDFS
- Только демон HMaster может работать
- Не рекомендуется для производственной среды
- Работает в одной JVM
2) Установка в псевдо-распределенном режиме (система Hadoop с одним узлом + установка HBase)
- Он работает на Hadoop HDFS
- Все демоны работают в одном узле
- Рекомендовать для производственной среды
3) Установка в полностью распределенном режиме (среда MultinodeHadoop + установка HBase)
- Он работает на Hadoop HDFS
- Все демоны будут работать на всех узлах в кластере
- Настоятельно рекомендуется для производственной среды
Для установки Hadoop см. Этот URL здесь
Как скачать стабильную версию tar-файла Hbase
Step 1) Go to the link here to download HBase. It will open a webpage as shown below.
Step 2) Select stable version as shown below 1.1.2 version
Step 3) Click on the hbase-1.1.2-bin.tar.gz. It will download tar file. Copy the tar file into an installation location.
Hbase — Standalone mode installation:
Installation is performed on Ubuntu with Hadoop already installed.
Step 1) Place hbase-1.1.2-bin.tar.gz in /home/hduser
Step 2) Unzip it by executing command $tar -xvf hbase-1.1.2-bin.tar.gz. It will unzip the contents, and it will create hbase-1.1.2 in the location /home/hduser
Step 3) Open hbase-env.sh as below and mention JAVA_HOME path in the location.
Шаг 4) Откройте файл ~ / .bashrc и укажите путь к HBASE_HOME, как показано ниже
export HBASE_HOME = / home / hduser / hbase-1.1.1 export PATH = $ PATH: $ HBASE_HOME / bin |
Шаг 5) Откройте hbase-site.xml и поместите следующие свойства в файл
hduser @ ubuntu $ gedit hbase-site.xml (код, как показано ниже)
<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>
Здесь мы размещаем два свойства
- Один для корневого каталога HBase и
- Второй для каталога данных соответствует ZooKeeper.
Все действия HMaster и ZooKeeper указывают на этот hbase-site.xml.
Шаг 6) Откройте файл hosts в / etc. местоположение и упомяните IP-адреса, как показано ниже.
Шаг 7) Теперь запустите Start-hbase.sh в каталоге hbase-1.1.1 / bin, как показано ниже.
И мы можем проверить командой jps, чтобы увидеть, работает HMaster или нет.
Шаг 8) Оболочку HBase можно запустить с помощью «оболочки hbase», и она перейдет в режим интерактивной оболочки, как показано на скриншоте ниже. Как только он входит в режим оболочки, мы можем выполнять все типы команд.
Автономный режим не требует запуска демонов Hadoop. HBase может работать независимо.
Hbase — Псевдо Распределенный режим установки:
Это еще один метод установки Apache Hbase, известный как псевдо-распределенный режим установки. Ниже приведены инструкции по установке HBase с помощью этого метода.
Шаг 1) Поместите hbase-1.1.2-bin.tar.gz в / home / hduser
Шаг 2) Разархивируйте его, выполнив команду $ tar -xvf hbase-1.1.2-bin.tar.gz . Он распакует содержимое и создаст hbase-1.1.2 в каталоге / home / hduser
Шаг 3) Откройте hbase-env.sh, как показано ниже, и укажите путь JAVA_HOME и путь к серверам регионов в расположении и экспортируйте команду, как показано
Шаг 4) На этом шаге мы собираемся открыть файл ~ / .bashrc и упомянуть путь HBASE_HOME, как показано на скриншоте.
Шаг 5) Откройте HBase-site.xml и укажите нижеприведенные свойства в файле (код как показано ниже).
<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>
- Настройка корневого каталога Hbase в этом свойстве
- Для распределенной настройки мы должны установить это свойство
- Здесь нужно установить свойство кворума ZooKeeper
- Настройка репликации выполняется в этом свойстве. По умолчанию мы размещаем репликацию как 1.
В полностью распределенном режиме присутствует несколько узлов данных, поэтому мы можем увеличить репликацию, поместив более одного значения в свойство dfs.replication.
- Порт клиента должен быть указан в этом свойстве
- Каталог данных ZooKeeper может быть упомянут в этом свойстве
Шаг 6) Сначала запустите демоны Hadoop, а затем запустите демоны HBase, как показано ниже
Здесь сначала вы должны запустить демоны Hadoop с помощью команды «./start-all.sh», как показано ниже.
После запуска демонов Hbase от hbase-start.sh
Сейчас проверь jps
Hbase — Полностью распределенный режим установки: —
- Эта настройка будет работать в режиме кластера Hadoop, когда несколько узлов появляются в кластере и работают.
- Установка аналогична псевдораспределенному режиму; единственное отличие состоит в том, что он будет появляться на нескольких узлах.
- Файлы конфигурации, упомянутые в HBase-site.xml и hbase-env.sh, такие же, как и в псевдо-режиме.
Устранение неполадок при установке HBase
1) Постановка проблемы: главный сервер инициализируется, но региональные серверы не инициализируются
Связь между главными и региональными серверами через их IP-адреса. Подобно тому, как Мастер будет слушать, что серверы региона работают или имеют IP-адрес 127.0.0.1. IP-адрес 127.0.0.1, который является локальным хостом и разрешается на собственный локальный хост главного сервера.
Причина:
При двойном обмене данными между серверами региона и главным сервером регион постоянно информирует главный сервер об их IP-адресах 127.0.0.1.
Решение:
- Необходимо удалить узел имени главного сервера с локального хоста, который присутствует в файле hosts
- Расположение файла хоста / etc / hosts
Что изменить:
Откройте /etc./hosts и перейдите в это местоположение
127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost : : 1 localhost3.localdomain3 localdomain3
Измените приведенную выше конфигурацию, как показано ниже (удалите имя сервера региона, как указано выше)
127.0.0.1 localhost.localdomainlocalhost : : 1 localhost3.localdomain3 localdomain3
2) Постановка проблемы: не удалось найти мой адрес: XYZ в списке серверов кворума Zookeeper
Причина:
- Сервер ZooKeeper не смог запуститься, и он выдаст ошибку типа .xyz в имени сервера.
- HBase пытается запустить сервер ZooKeeper на некоторой машине, но в то же время машина не может найти себе конфигурацию кворума, т.е. присутствует в файле конфигурации HBase.zookeeper.quorum .
Решение:-
- Необходимо заменить имя хоста на имя хоста, которое представлено в сообщении об ошибке
- Предположим, у нас есть DNS-сервер, и мы можем установить следующие конфигурации в HBase-site.xml.
- HBase.zookeeper.dns.interface
- HBase.zookeeper.dns.nameserver
3) Постановка проблемы: Создан корневой каталог для HBase через Hadoop DFS
- Мастер говорит, что вам нужно запустить скрипт миграции HBase.
- После запуска сценарий миграции HBase отвечает, как отсутствие файлов в корневом каталоге .
Причина:
- Создание нового каталога для HBase с использованием распределенной файловой системы Hadoop
- Здесь HBase ожидает две возможности
1) Корневой каталог не существует
2) HBase предыдущий запущенный экземпляр инициализирован раньше
Решение:
- Убедитесь, что корневой каталог HBase в настоящее время не существует или был инициализирован предыдущим запуском экземпляра HBase.
- Как часть решения, мы должны следовать шагам
Шаг 1) Использование Hadoop dfs для удаления корневого каталога HBase
Шаг 2) HBase создает и инициализирует каталог самостоятельно
4) Постановка проблемы: события сессии Zookeeper истекли
Причина:
- Серверы HMaster или HRegion завершают работу, выбрасывая исключения
- Если мы наблюдаем журналы, мы можем узнать фактические исключения, которые бросили
Ниже показано исключение, возникшее из-за истекшего события Zookeeper. Выделенные события — это некоторые исключения, произошедшие в файле журнала.
Код файла журнала, как показано ниже:
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
Решение:
- Объем оперативной памяти по умолчанию составляет 1 ГБ. Для выполнения длительного импорта мы сохранили объем оперативной памяти более 1 ГБ.
- Приходится увеличивать время ожидания сессии для Zookeeper.
- Чтобы увеличить время сеанса вне Zookeeper, мы должны изменить следующее свойство в «hbase-site.xml», которое присутствует в пути к папке hbase / conf.
- Время ожидания сеанса по умолчанию составляет 60 секунд. Мы можем изменить его на 120 секунд, как указано ниже
<property> <name> zookeeper.session.timeout </name> <value>1200000</value> </property> <property> <name> hbase.zookeeper.property.tickTime </name> <value>6000</value> </property>