HBase - Установка

В этой главе объясняется, как HBase устанавливается и изначально настраивается. Для продолжения работы с HBase требуются Java и Hadoop, поэтому вам необходимо загрузить и установить java и Hadoop в своей системе.

Подготовка к установке

Перед установкой Hadoop в среду Linux нам необходимо настроить Linux с помощью ssh(Безопасная оболочка). Следуйте инструкциям, приведенным ниже, для настройки среды Linux.

Создание пользователя

Прежде всего, рекомендуется создать отдельного пользователя для Hadoop, чтобы изолировать файловую систему Hadoop от файловой системы Unix. Следуйте инструкциям ниже, чтобы создать пользователя.

  • Откройте корень с помощью команды «su».
  • Создайте пользователя из учетной записи root с помощью команды «useradd username».
  • Теперь вы можете открыть существующую учетную запись пользователя с помощью команды «su username».

Откройте терминал Linux и введите следующие команды, чтобы создать пользователя.

$ su
password:
# useradd hadoop
# passwd hadoop
New passwd:
Retype new passwd

Настройка SSH и генерация ключей

Настройка SSH требуется для выполнения различных операций в кластере, таких как запуск, остановка и операции распределенной оболочки демона. Для аутентификации разных пользователей Hadoop необходимо предоставить пару открытого и закрытого ключей для пользователя Hadoop и поделиться ею с разными пользователями.

Следующие команды используются для генерации пары ключ-значение с помощью SSH. Скопируйте форму открытых ключей id_rsa.pub в authorized_keys и предоставьте права владельца, чтение и запись в файл authorized_keys соответственно.

$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

Проверить ssh

ssh localhost

Установка Java

Java - это главное условие для Hadoop и HBase. Прежде всего, вы должны проверить наличие java в вашей системе с помощью «java -version». Синтаксис команды версии java приведен ниже.

$ java -version

Если все работает нормально, вы получите следующий результат.

java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Если java не установлен в вашей системе, выполните следующие действия для установки java.

Шаг 1

Загрузите java (JDK <последняя версия> - X64.tar.gz), перейдя по следующей ссылке Oracle Java .

потом jdk-7u71-linux-x64.tar.gz будет загружен в вашу систему.

Шаг 2

Обычно загруженный файл java находится в папке «Загрузки». Проверьте это и извлекитеjdk-7u71-linux-x64.gz файл, используя следующие команды.

$ cd Downloads/
$ ls
jdk-7u71-linux-x64.gz

$ tar zxf jdk-7u71-linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-linux-x64.gz

Шаг 3

Чтобы сделать java доступным для всех пользователей, вы должны переместить его в папку «/ usr / local /». Откройте root и введите следующие команды.

$ su
password:
# mv jdk1.7.0_71 /usr/local/
# exit

Шаг 4

Для настройки PATH и JAVA_HOME переменных, добавьте следующие команды в ~/.bashrc файл.

export JAVA_HOME=/usr/local/jdk1.7.0_71
export PATH= $PATH:$JAVA_HOME/bin

Теперь примените все изменения к текущей работающей системе.

$ source ~/.bashrc

Шаг 5

Используйте следующие команды для настройки альтернатив Java:

# alternatives --install /usr/bin/java java usr/local/java/bin/java 2

# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2

# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2


# alternatives --set java usr/local/java/bin/java

# alternatives --set javac usr/local/java/bin/javac

# alternatives --set jar usr/local/java/bin/jar

Теперь проверьте java -version команду из терминала, как описано выше.

Скачивание Hadoop

После установки java необходимо установить Hadoop. Прежде всего, проверьте наличие Hadoop с помощью команды «Версия Hadoop», как показано ниже.

hadoop version

Если все работает нормально, вы получите следующий результат.

Hadoop 2.6.0
Compiled by jenkins on 2014-11-13T21:10Z
Compiled with protoc 2.5.0
From source with checksum 18e43357c8f927c0695f1e9522859d6a
This command was run using
/home/hadoop/hadoop/share/hadoop/common/hadoop-common-2.6.0.jar

Если ваша система не может найти Hadoop, загрузите Hadoop в свою систему. Для этого следуйте приведенным ниже командам.

Загрузите и извлеките hadoop-2.6.0 из Apache Software Foundation, используя следующие команды.

$ su
password:
# cd /usr/local
# wget http://mirrors.advancedhosters.com/apache/hadoop/common/hadoop-
2.6.0/hadoop-2.6.0-src.tar.gz
# tar xzf hadoop-2.6.0-src.tar.gz
# mv hadoop-2.6.0/* hadoop/
# exit

Установка Hadoop

Установите Hadoop в любом из требуемых режимов. Здесь мы демонстрируем функциональные возможности HBase в псевдораспределенном режиме, поэтому установите Hadoop в псевдораспределенном режиме.

Следующие шаги используются для установки Hadoop 2.4.1.

Шаг 1 - Настройка Hadoop

Вы можете установить переменные среды Hadoop, добавив следующие команды в ~/.bashrc файл.

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME

Теперь примените все изменения к текущей работающей системе.

$ source ~/.bashrc

Шаг 2 - Конфигурация Hadoop

Вы можете найти все файлы конфигурации Hadoop в папке «$ HADOOP_HOME / etc / hadoop». Вам необходимо внести изменения в эти файлы конфигурации в соответствии с вашей инфраструктурой Hadoop.

$ cd $HADOOP_HOME/etc/hadoop

Чтобы разрабатывать программы Hadoop на java, необходимо сбросить переменную среды java в hadoop-env.sh файл, заменив JAVA_HOME значение с расположением java в вашей системе.

export JAVA_HOME=/usr/local/jdk1.7.0_71

Для настройки Hadoop вам нужно будет отредактировать следующие файлы.

core-site.xml

В core-site.xml Файл содержит такую ​​информацию, как номер порта, используемый для экземпляра Hadoop, память, выделенная для файловой системы, ограничение памяти для хранения данных и размер буферов чтения / записи.

Откройте core-site.xml и добавьте следующие свойства между тегами <configuration> и </configuration>.

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value>
   </property>
</configuration>

hdfs-site.xml

В hdfs-site.xml Файл содержит такую ​​информацию, как значение данных репликации, путь к узлу имени и путь к узлу данных в ваших локальных файловых системах, где вы хотите хранить инфраструктуру Hadoop.

Предположим следующие данные.

dfs.replication (data replication value) = 1
(In the below given path /hadoop/ is the user name.
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.)

namenode path = //home/hadoop/hadoopinfra/hdfs/namenode
(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.)

datanode path = //home/hadoop/hadoopinfra/hdfs/datanode

Откройте этот файл и добавьте следующие свойства между тегами <configuration>, </configuration>.

<configuration>
   <property>
      <name>dfs.replication</name >
      <value>1</value>
   </property>
	
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode</value>
   </property>
	
   <property>
      <name>dfs.data.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode</value>
   </property>
</configuration>

Note: В приведенном выше файле все значения свойств определяются пользователем, и вы можете вносить изменения в соответствии с вашей инфраструктурой Hadoop.

yarn-site.xml

Этот файл используется для настройки пряжи в Hadoop. Откройте файл yarn-site.xml и добавьте следующее свойство между <configuration $ gt ;, </ configuration $ gt; теги в этом файле.

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
</configuration>

mapred-site.xml

Этот файл используется, чтобы указать, какой фреймворк MapReduce мы используем. По умолчанию Hadoop содержит шаблон yarn-site.xml. Прежде всего, необходимо скопировать файл изmapred-site.xml.template к mapred-site.xml файл, используя следующую команду.

$ cp mapred-site.xml.template mapred-site.xml

открыто mapred-site.xml файл и добавьте следующие свойства между тегами <configuration> и </configuration>.

<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

Проверка установки Hadoop

Следующие шаги используются для проверки установки Hadoop.

Шаг 1 - Настройка узла имени

Настройте namenode с помощью команды «hdfs namenode -format» следующим образом.

$ cd ~
$ hdfs namenode -format

Ожидаемый результат выглядит следующим образом.

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.1
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/

Шаг 2 - Проверка dfs Hadoop

Следующая команда используется для запуска dfs. Выполнение этой команды запустит вашу файловую систему Hadoop.

$ start-dfs.sh

Ожидаемый результат выглядит следующим образом.

10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/hadoop-
2.4.1/logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop-
2.4.1/logs/hadoop-hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]

Шаг 3 - Проверка скрипта пряжи

Следующая команда используется для запуска сценария пряжи. Выполнение этой команды запустит ваши демоны пряжи.

$ start-yarn.sh

Ожидаемый результат выглядит следующим образом.

starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /home/hadoop/hadoop-
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

Шаг 4 - Доступ к Hadoop в браузере

Номер порта по умолчанию для доступа к Hadoop - 50070. Используйте следующий URL-адрес, чтобы получить услуги Hadoop в своем браузере.

http://localhost:50070

Шаг 5 - Проверьте все приложения кластера

Номер порта по умолчанию для доступа ко всем приложениям кластера - 8088. Используйте следующий URL-адрес, чтобы посетить эту службу.

http://localhost:8088/

Установка HBase

Мы можем установить HBase в любом из трех режимов: автономном режиме, псевдо-распределенном режиме и полностью распределенном режиме.

Установка HBase в автономном режиме

Загрузите последнюю стабильную версию формы HBase http://www.interior-dsgn.com/apache/hbase/stable/с помощью команды «wget» и извлеките его с помощью команды tar «zxvf». См. Следующую команду.

$cd usr/local/
$wget http://www.interior-dsgn.com/apache/hbase/stable/hbase-0.98.8-
hadoop2-bin.tar.gz
$tar -zxvf hbase-0.98.8-hadoop2-bin.tar.gz

Перейдите в режим суперпользователя и переместите папку HBase в / usr / local, как показано ниже.

$su
$password: enter your password here
mv hbase-0.99.1/* Hbase/

Настройка HBase в автономном режиме

Прежде чем продолжить работу с HBase, вам необходимо отредактировать следующие файлы и настроить HBase.

hbase-env.sh

Установите java Home для HBase и откройте hbase-env.shфайл из папки conf. Отредактируйте переменную среды JAVA_HOME и измените существующий путь к текущей переменной JAVA_HOME, как показано ниже.

cd /usr/local/Hbase/conf
gedit hbase-env.sh

Это откроет файл env.sh HBase. Теперь замените существующийJAVA_HOME значение с вашим текущим значением, как показано ниже.

export JAVA_HOME=/usr/lib/jvm/java-1.7.0

hbase-site.xml

Это основной файл конфигурации HBase. Установите каталог данных в подходящее место, открыв домашнюю папку HBase в / usr / local / HBase. Внутри папки conf вы найдете несколько файлов, откройтеhbase-site.xml файл, как показано ниже.

#cd /usr/local/HBase/
#cd conf
# gedit hbase-site.xml

Внутри hbase-site.xmlВ файле вы найдете теги <configuration> и </configuration>. В них установите каталог HBase под ключом свойства с именем «hbase.rootdir», как показано ниже.

<configuration>
   //Here you have to set the path where you want HBase to store its files.
   <property>
      <name>hbase.rootdir</name>
      <value>file:/home/hadoop/HBase/HFiles</value>
   </property>
	
   //Here you have to set the path where you want HBase to store its built in zookeeper  files.
   <property>
      <name>hbase.zookeeper.property.dataDir</name>
      <value>/home/hadoop/zookeeper</value>
   </property>
</configuration>

На этом установка и настройка HBase успешно завершены. Мы можем запустить HBase, используяstart-hbase.shскрипт находится в папке bin HBase. Для этого откройте домашнюю папку HBase и запустите сценарий запуска HBase, как показано ниже.

$cd /usr/local/HBase/bin
$./start-hbase.sh

Если все пойдет хорошо, при попытке запустить сценарий запуска HBase появится сообщение о запуске HBase.

starting master, logging to /usr/local/HBase/bin/../logs/hbase-tpmaster-localhost.localdomain.out

Установка HBase в псевдо-распределенном режиме

Давайте теперь проверим, как HBase установлен в псевдораспределенном режиме.

Настройка HBase

Прежде чем продолжить работу с HBase, настройте Hadoop и HDFS в локальной или удаленной системе и убедитесь, что они работают. Остановите HBase, если он запущен.

hbase-site.xml

Отредактируйте файл hbase-site.xml, чтобы добавить следующие свойства.

<property>
   <name>hbase.cluster.distributed</name>
   <value>true</value>
</property>

Будет указано, в каком режиме следует запускать HBase. В том же файле из локальной файловой системы измените hbase.rootdir, адрес вашего экземпляра HDFS, используя синтаксис URI hdfs: ////. Мы запускаем HDFS на локальном хосте на порту 8030.

<property>
   <name>hbase.rootdir</name>
   <value>hdfs://localhost:8030/hbase</value>
</property>

Запуск HBase

После завершения настройки перейдите в домашнюю папку HBase и запустите HBase, используя следующую команду.

$cd /usr/local/HBase
$bin/start-hbase.sh

Note: Перед запуском HBase убедитесь, что Hadoop запущен.

Проверка каталога HBase в HDFS

HBase создает свой каталог в HDFS. Чтобы увидеть созданный каталог, перейдите в корзину Hadoop и введите следующую команду.

$ ./bin/hadoop fs -ls /hbase

Если все пойдет хорошо, вы получите следующий результат.

Found 7 items
drwxr-xr-x - hbase users 0 2014-06-25 18:58 /hbase/.tmp
drwxr-xr-x - hbase users 0 2014-06-25 21:49 /hbase/WALs
drwxr-xr-x - hbase users 0 2014-06-25 18:48 /hbase/corrupt
drwxr-xr-x - hbase users 0 2014-06-25 18:58 /hbase/data
-rw-r--r-- 3 hbase users 42 2014-06-25 18:41 /hbase/hbase.id
-rw-r--r-- 3 hbase users 7 2014-06-25 18:41 /hbase/hbase.version
drwxr-xr-x - hbase users 0 2014-06-25 21:49 /hbase/oldWALs

Запуск и остановка мастера

Используя «local-master-backup.sh», вы можете запустить до 10 серверов. Откройте домашнюю папку HBase, master и выполните следующую команду, чтобы запустить ее.

$ ./bin/local-master-backup.sh 2 4

Чтобы убить мастер резервного копирования, вам понадобится его идентификатор процесса, который будет храниться в файле с именем “/tmp/hbase-USER-X-master.pid.” вы можете убить мастера резервного копирования, используя следующую команду.

$ cat /tmp/hbase-user-1-master.pid |xargs kill -9

Запуск и остановка серверов RegionServers

Вы можете запустить несколько региональных серверов из одной системы, используя следующую команду.

$ .bin/local-regionservers.sh start 2 3

Чтобы остановить региональный сервер, используйте следующую команду.

$ .bin/local-regionservers.sh stop 3

 

Запуск HBaseShell

После успешной установки HBase вы можете запустить HBase Shell. Ниже приведена последовательность шагов, которые необходимо выполнить для запуска оболочки HBase. Откройте терминал и войдите как суперпользователь.

Запустить файловую систему Hadoop

Просмотрите домашнюю папку sbin Hadoop и запустите файловую систему Hadoop, как показано ниже.

$cd $HADOOP_HOME/sbin
$start-all.sh

Запустить HBase

Просмотрите папку bin корневого каталога HBase и запустите HBase.

$cd /usr/local/HBase
$./bin/start-hbase.sh

Запустить главный сервер HBase

Это будет тот же каталог. Запустите его, как показано ниже.

$./bin/local-master-backup.sh start 2 (number signifies specific
server.)

Начальный регион

Запустите региональный сервер, как показано ниже.

$./bin/./local-regionservers.sh start 3

Запустить HBase Shell

Вы можете запустить оболочку HBase с помощью следующей команды.

$cd bin
$./hbase shell

Это даст вам приглашение оболочки HBase, как показано ниже.

2014-12-09 14:24:27,526 INFO [main] Configuration.deprecation:
hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.8-hadoop2, r6cfc8d064754251365e070a10a82eb169956d5fe, Fri
Nov 14 18:26:29 PST 2014

hbase(main):001:0>

Веб-интерфейс HBase

Чтобы получить доступ к веб-интерфейсу HBase, введите в браузере следующий URL-адрес.

http://localhost:60010

В этом интерфейсе перечислены текущие запущенные серверы региона, мастера резервного копирования и таблицы HBase.

Серверы региона HBase и мастера резервного копирования

Таблицы HBase

Настройка среды Java

Мы также можем взаимодействовать с HBase с помощью библиотек Java, но перед доступом к HBase с помощью Java API вам необходимо указать путь к классам для этих библиотек.

Установка пути к классам

Прежде чем приступить к программированию, установите путь к классам для библиотек HBase в .bashrcфайл. открыто.bashrc в любом из редакторов, как показано ниже.

$ gedit ~/.bashrc

Задайте в нем путь к классам для библиотек HBase (папка lib в HBase), как показано ниже.

export CLASSPATH = $CLASSPATH://home/hadoop/hbase/lib/*

Это сделано для предотвращения исключения «класс не найден» при доступе к HBase с использованием java API.