Pull to refresh

Первая альфа hadoop-3.0.0

image Интерес к большим данным возникал уже давно, НО дальше теоретических познаний никак не мог дойти. И лишь спустя некоторое время назад меня стала все чаще посещать мысль, что я хоть и с приличным опытом в IT, НО начинаю прилично выбиваться из нарастающего тренда BIG DATA и мне обязательно необходимо практическое знакомство. Мир больших данных сейчас достаточно многообразен, НО я решил остановиться на Hadoop.

На момент написания этой статьи за плечами уже был опыт нескольких инсталляций версии 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

image

Состояние дата-нод:

hadoop01:9870/dfshealth.html#tab-overview

image

Информация о дата-ноде:

hadoop01:9870/dfshealth.html#tab-datanode

image

Это была моя первая статья. Надеюсь, было полезно. Планирую далее уделить время HP Vertica.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.