Учебники

HBase — Установка

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

Настройка перед установкой

Перед установкой Hadoop в среду Linux нам нужно настроить Linux с помощью ssh (Secure Shell). Следуйте приведенным ниже инструкциям для настройки среды 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 в author_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 в папке Downloads. Проверьте его и извлеките файл 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 version», как показано ниже.

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.

ядро-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 содержит такую ​​информацию, как значение данных репликации, путь namenode и путь datanode ваших локальных файловых систем, где вы хотите хранить инфраструктуру 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>

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

Пряжа-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 — Проверка Hadoop dfs

Следующая команда используется для запуска 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

Hadoop в браузере

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

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

http://localhost:8088/

Hadoop Applicatin Cluster

Установка 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, используя синтаксис hdfs: //// URI. Мы запускаем 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

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

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

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

$ ./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

Просмотрите домашнюю папку Hadoop sbin и запустите файловую систему 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 Shell, как показано ниже.

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 Region и мастера резервного копирования

Серверы HBase

Таблицы HBase

Таблицы HBase

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

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

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

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

$ gedit ~/.bashrc

Установите classpath для библиотек HBase (папка lib в HBase), как показано ниже.

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

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