Интерес к большим данным возникал уже давно, НО дальше теоретических познаний никак не мог дойти. И лишь спустя некоторое время назад меня стала все чаще посещать мысль, что я хоть и с приличным опытом в IT, НО начинаю прилично выбиваться из нарастающего тренда BIG DATA и мне обязательно необходимо практическое знакомство. Мир больших данных сейчас достаточно многообразен, НО я решил остановиться на Hadoop.
На момент написания этой статьи за плечами уже был опыт нескольких инсталляций версии 2.6.0 по рекомендациям-инструкциям, найденным на просторах сети.
Вчера же у меня возникло желание установить hadoop-3.0.0 альфа 1. Ниже я подробно изложу весь процесс и результат.
Установку будем делать на Ubuntu 16.10 Server в конфигурации кластера с одной нодой.
1. Установка Java
Из-под пользователя с правами администратора
обновляем пакет
устанавливаем пакет с Java:
проверяем результат:
2. Создаем выделенного пользователя для запуска Hadoop и создаем для него SSH сертификат.
Добавляем в ОС нового пользователя (рекомендуется не предоставлять ему права администратора)
Далее переходим на работу из-под пользователя hduser:
генерируем SSH-сертификат:
сохраняем сертификат в файл:
предоставляем права на файл с сертификатом:
Проверяем SSH-подключение:
3. Скачиваем и распаковываем пакет Hadoop
4. Настройка переменных окружения для Hadoop
Открываем на редактирование файл ~/.bashrc и добавляем информацию. Для редактирования рекомендую использовать редактор nano (ctrl+O — сохранить и ctrl+X — выход)
Вносим:
Подтверждаем изменения:
Вносим переменную окружения в $HADOOP_HOME/etc/hadoop/hadoop-env.sh
Вносим:
5. Редактируем конфигурационные файлы Hadoop
— редактируем core-site.xml
— редактируем hdfs-site.xml:
— редактируем mapred-site.xml
— редактируем yarn-site.xml
6. Создаем Data каталоги и форматируем HDFS ноду
Создаем подкаталоги в папке hadoop домашнего каталога hduser:
форматируем ноду:
7. Запуск Hadoop кластера
Запускаем start-dfs.sh:
Запускаем start-yarn.sh:
Проверяем результат:
Смотрим открывшиеся порты:
8. Доступ к Hadoop из браузера
Информация о hadoop кластере: hadoop01:8088/cluster/nodes
Состояние дата-нод:
hadoop01:9870/dfshealth.html#tab-overview
Информация о дата-ноде:
hadoop01:9870/dfshealth.html#tab-datanode
Это была моя первая статья. Надеюсь, было полезно. Планирую далее уделить время HP Vertica.
На момент написания этой статьи за плечами уже был опыт нескольких инсталляций версии 2.6.0 по рекомендациям-инструкциям, найденным на просторах сети.
Вчера же у меня возникло желание установить hadoop-3.0.0 альфа 1. Ниже я подробно изложу весь процесс и результат.
Установку будем делать на Ubuntu 16.10 Server в конфигурации кластера с одной нодой.
1. Установка Java
Из-под пользователя с правами администратора
обновляем пакет
$ sudo apt-get update
устанавливаем пакет с Java:
$ sudo apt-get install default-jdk
проверяем результат:
$ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
2. Создаем выделенного пользователя для запуска Hadoop и создаем для него SSH сертификат.
Добавляем в ОС нового пользователя (рекомендуется не предоставлять ему права администратора)
$ adduser hduser
$ passwd hduser
Далее переходим на работу из-под пользователя hduser:
$ su - hadoop
генерируем SSH-сертификат:
$ ssh-keygen -t rsa
сохраняем сертификат в файл:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
предоставляем права на файл с сертификатом:
$ chmod 0600 ~/.ssh/authorized_keys
Проверяем SSH-подключение:
$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is e1:8b:a0:a5:75:ef:f4:b4:5e:a9:ed:be:64:be:5c:2f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.10 (GNU/Linux 4.8.0-22-generic x86_64)
$ exit
3. Скачиваем и распаковываем пакет Hadoop
$ cd ~
$ wget http://mirrors.sonic.net/apache/hadoop/common/hadoop-3.0.0-alpha1/hadoop-3.0.0-alpha1.tar.gz
$ tar xvzf hadoop-3.0.0-alpha1.tar.gz
$ mv hadoop-3.0.0-alpha1 hadoop
4. Настройка переменных окружения для Hadoop
Открываем на редактирование файл ~/.bashrc и добавляем информацию. Для редактирования рекомендую использовать редактор nano (ctrl+O — сохранить и ctrl+X — выход)
$ nano ~/.bashrc
Вносим:
export HADOOP_HOME=/home/hduser/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
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
Подтверждаем изменения:
$ source ~/.bashrc
Вносим переменную окружения в $HADOOP_HOME/etc/hadoop/hadoop-env.sh
$ nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
Вносим:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
5. Редактируем конфигурационные файлы Hadoop
— редактируем core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
— редактируем hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hduser/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hduser/hadoopdata/hdfs/datanode</value>
</property>
</configuration>
— редактируем mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
— редактируем yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6. Создаем Data каталоги и форматируем HDFS ноду
Создаем подкаталоги в папке hadoop домашнего каталога hduser:
$ mkdir -p /hadoopdata/hdfs/datanode
$ mkdir -p /hadoopdata/hdfs/namenode
форматируем ноду:
$ hdfs namenode -format
2016-12-06 21:56:37,131 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: user = hduser
STARTUP_MSG: host = hadoop01/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 3.0.0-alpha1
STARTUP_MSG: classpath = /home/hduser/hadoop/etc/hadoop:/home/hduser/hadoop/share/hadoop/common/lib/netty-
...
STARTUP_MSG: build = https://git-wip-us.apache.org/repos/asf/hadoop.git -r a990d2ebcd6de5d7dc2d3684930759b0f0ea4dc3; compiled by 'andrew' on 2016-08-30T07:02Z
STARTUP_MSG: java = 1.8.0_111
************************************************************/
2016-12-06 21:56:37,170 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
....
2016-12-06 21:57:15,975 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop01/127.0.1.1
************************************************************/
7. Запуск Hadoop кластера
Запускаем start-dfs.sh:
$ start-dfs.sh
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [hadoop01]
2016-12-06 22:01:43,311 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Запускаем start-yarn.sh:
$ start-yarn.sh
Starting resourcemanager
Starting nodemanagers
Проверяем результат:
$ jps
11985 SecondaryNameNode
12324 NodeManager
11661 NameNode
12205 ResourceManager
12686 Jps
Смотрим открывшиеся порты:
$ netstat -plten | grep java
(Не все процессы были идентифицированы, информация о процессах без владельца
не будет отображена, вам нужны права суперпользователя (root), чтобы увидеть всю информацию.)
tcp 0 0 0.0.0.0:8040 0.0.0.0:* LISTEN 1001 93147 12324/java
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1001 84985 11661/java
tcp 0 0 0.0.0.0:8042 0.0.0.0:* LISTEN 1001 93869 12324/java
tcp 0 0 0.0.0.0:9868 0.0.0.0:* LISTEN 1001 86737 11985/java
tcp 0 0 0.0.0.0:9870 0.0.0.0:* LISTEN 1001 84126 11661/java
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 1001 89017 12205/java
tcp 0 0 0.0.0.0:34393 0.0.0.0:* LISTEN 1001 93139 12324/java
tcp 0 0 0.0.0.0:13562 0.0.0.0:* LISTEN 1001 93868 12324/java
tcp 0 0 0.0.0.0:8030 0.0.0.0:* LISTEN 1001 88618 12205/java
tcp 0 0 0.0.0.0:8031 0.0.0.0:* LISTEN 1001 88610 12205/java
tcp 0 0 0.0.0.0:8032 0.0.0.0:* LISTEN 1001 88624 12205/java
tcp 0 0 0.0.0.0:8033 0.0.0.0:* LISTEN 1001 93873 12205/java
8. Доступ к Hadoop из браузера
Информация о hadoop кластере: hadoop01:8088/cluster/nodes
Состояние дата-нод:
hadoop01:9870/dfshealth.html#tab-overview
Информация о дата-ноде:
hadoop01:9870/dfshealth.html#tab-datanode
Это была моя первая статья. Надеюсь, было полезно. Планирую далее уделить время HP Vertica.