Эта глава объясняет, как 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
Шаг 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, используя синтаксис 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
Настройка среды 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.