Производная от @Luis Альварадо ответа , вот моя версия для Ubuntu 14.04 и Hadoop 2.5.1
Вкратце
- Установить Java
- Подготовить исполнительного пользователя для Hadoop
hduser
- Переключиться на
hduser
с этого момента
- Разрешить
hduser
удаленный доступ через ssh с паролем
- Отключить IPv6
- Скачать и настроить пакет Hadoop
- Подготовьте системный путь $ HADOOP_HOME и $ JAVA_HOME
- Конфиг услуги Hadoop
- Запустите сервисы Hadoop
Выполнено. Удачи!
Подробные шаги
Установить Java
Загрузить и установить
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install oracle-java7-installer
Убедитесь, что у вас установлена Java7
$ which java
$ ls -l /usr/bin/java
$ ls -l /etc/alternatives/java
мы должны java
указать на/usr/lib/jvm/java-7-oracle/jre/bin/java
Подготовить исполнительного пользователя для Hadoophduser
Создать пользователя hduser
в группеhadoop
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
Грант hduser
на SUDO привилегии
Редактировать sudo
$ sudo visudo
Добавьте в конец эту строку
hduser ALL=(ALL:ALL) ALL
Переключиться на hduser
с этого момента
$ su - hduser
Разрешить hduser
удаленный доступ через ssh с паролем
Установить openssh
$ sudo apt-get install openssh-server
Генерируйте открытый / закрытый ключ RSA для соединения SSH; парольная фраза пуста какparameter -P ""
$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Убедитесь, что hduser
ssh может удаленно удаленно без пароля
$ ssh localhost
Отключить IPv6
Отредактируйте файл конфигурации
$ sudo nano /etc/sysctl.conf
Копировать до конца
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Убедитесь, что IPv6 выключен перезагрузкой или вызовом
$ sudo sysctl -p
Тогда позвони
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Должен сказать 1, что означает ОК ^^
Скачать и настроить пакет Hadoop
Загрузите пакеты Hadoop 2.5.1 с сайта Apache Hadoop
Прямой URL для этого пакета - это ссылка
http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
Итак, давайте загрузим в hduser
домашнюю папку, распакуем ее и переименуем вhadoop
$ wget http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
$ tar -xvzf hadoop-2.5.1.tar.gz
$ mv hadoop-2.5.1 hadoop
Убедитесь, что Hadoop хранится hduser
дома
$ ls /home/hduser/hadoop
Подготовьте системный путь $ HADOOP_HOME и $ JAVA_HOME
Редактировать hduser
файл .bashrc
$ nano .bashrc
Положить в конец значения для $HADOOP_HOME
и$JAVA_HOME
# Set Hadoop-related environment variables
export HADOOP_HOME=/home/hduser/hadoop
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Добавьте binary
папки Hadoop в систему$PATH
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Откройте новый терминал, войдите как hduser
и убедитесь, что у вас есть $ HADOOP_HOME с доступными командами
$ echo $HADOOP_HOME
$ which start-all.sh
$ which start-dfs.sh
$ which start-yarn.sh
Мы должны увидеть полный путь этих имен.
Конфиг услуги Hadoop
Каждый компонент в Hadoop настраивается с использованием файла XML.
Общие свойства находятся в core-site.xml
Свойства HDFS находятся в hdfs-site.xml
Свойства MapReduce находятся в mapred-site.xml
Все эти файлы находятся в папке $ HADOOP_HOME / etc / hadoop
Опять определим JAVA_HOME hadoop-env.sh
, отредактировав строку
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Определите Hadoop temp folder
и file system
имя в core-site.xml в
<configuration>
...
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hduser/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
...
</configuration>
Нам нужно подготовить это temp folder
как настроено в/home/hduser/tmp
$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp
Определение file system
«S block replication
в HDFS-site.xml
<configuration>
...
<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
...
</configuration>
Определить map-reduce job
в mapred-site.xml
<configuration>
...
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
...
</configuration>
Формат name node
$ hdfs namenode -format
Запустить сервис Hadoop
Вызов
$ start-dfs.sh && start-yarn.sh
Эти две команды находятся в каталоге $ HADOOP_HOME / sbin, который мы добавили в систему $ PATH ранее.
Убедитесь, что сервисы Hadoop запущены правильно
$ jps
мы должны увидеть