Итак, для работы Hadoop нам в первую очередь потребуется Java. Но какая? OpenJDK или с oracle.com? Официальная документация говорит о том, что лучше взять JRE с oracle.com. Делаем это по моему мануалу.
Также нужно поставить rsync:
Далее, чтобы не потеряться в многообразии сборок приведу простую таблицу (источник):
При устанвоке по моему мануалу пусть к папке java будет следующий: /usr/lib/jvm/jre1.7.0_17, его нужно венсти в конфигурацию Hadoop /etc/hadoop/hadoop-env.sh на строке export JAVA_HOME.
А вот бага в скрипте установки, из-за которой можно получить следующие ошибки в установке:
После этого запускаем мастер устанвоки и отвечаем yes на всего его вопросы:
Java откроет прослушку кучи соединений (их должно быть ровно 9 штук! Если их меньше - перезагрзите сервер, так как какой-то из компонентов Hadoop не поднялся):
Выдача её ну очень объемна и выглядит вот так: teragen, terasort, teravalidate passed. Это означает, что Hadoop установлен корректно и работает полностью верно.
Для управления Hadoop имеется ряд веб-интерфейсов доступных только с localhost:
JobTracker website: http://localhost:50030
NameNode website : http://localhost:50070
Task track website: http://localhost:50060
Источники:
http://jinutechworld.blogspot.ru/2012/01/hadoop-100-single-node-configuration-on.html
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
Также нужно поставить rsync:
apt-get install -y rsyncТакже перед началом работ привеодим в корректный вид хостнейм машины и прописываем его резолвинг в hosts
cat /etc/hostname
hadoop.domain.org
cat /etc/hosts
127.0.0.1 localhost
88.yy.144.xx hadoop.domain.org
Далее, чтобы не потеряться в многообразии сборок приведу простую таблицу (источник):
- 1.0.X - current stable version, 1.0 release
- 1.1.X - current beta version, 1.1 release
- 2.X.X - current alpha version
- 0.23.X - simmilar to 2.X.X but missing NN HA.
- 0.22.X - does not include security
- 0.20.203.X - old legacy stable version
- 0.20.X - old legacy version
Я выбираю 1.1.2.
Как предпочтительный вариант устанвоки я выбираю deb пакет, стягиваем его:
cd /usr/src
wget http://www.sai.msu.su/apache/hadoop/common/hadoop-1.1.2/hadoop_1.1.2-1_x86_64.deb
dpkg -i hadoop_1.1.2-1_x86_64.deb
При устанвоке по моему мануалу пусть к папке java будет следующий: /usr/lib/jvm/jre1.7.0_17, его нужно венсти в конфигурацию Hadoop /etc/hadoop/hadoop-env.sh на строке export JAVA_HOME.
А вот бага в скрипте установки, из-за которой можно получить следующие ошибки в установке:
* Starting Apache Hadoop Job Tracker server hadoop-jobtracker chown: changing ownership of `/var/log/hadoop/root': Operation not permitted
starting jobtracker, logging to /var/log/hadoop/root/hadoop-root-jobtracker-hadoop.domain.org.out
/usr/sbin/hadoop-daemon.sh: line 136: /var/log/hadoop/root/hadoop-root-jobtracker-hadoop.domain.org.out: Permission denied
head: cannot open `/var/log/hadoop/root/hadoop-root-jobtracker-hadoop.domain.org.out' for reading: No such file or directory
[fail]
* Starting Apache Hadoop Task Tracker server hadoop-tasktracker chown: changing ownership of `/var/log/hadoop/root': Operation not permitted
starting tasktracker, logging to /var/log/hadoop/root/hadoop-root-tasktracker-hadoop.domain.org.out
/usr/sbin/hadoop-daemon.sh: line 136: /var/log/hadoop/root/hadoop-root-tasktracker-hadoop.domain.org.out: Permission denied
head: cannot open `/var/log/hadoop/root/hadoop-root-tasktracker-hadoop.domain.org.out' for reading: No such file or directory
[fail]
Как ее фиксить - я не знаю и смысла разбираться не вижу, так как баг еще открыт в апстриме, рано или поздно его испарвят. Пока же фикс прост (И КРАЙНЕ НЕБЕЗОПАСЕН! НЕ ДЕЛАЙТЕ ТАК В ПРОДАКШЕНЕ!):
mkdir -p /var/log/hadoop
chmod -R 777 /var/log/hadoop
После этого запускаем мастер устанвоки и отвечаем yes на всего его вопросы:
hadoop-setup-single-node.sh
Welcome to Hadoop single node setup wizard
Would you like to use default single node configuration? (y/n) y
Would you like to format name node? (y/n) y
Would you like to setup default directory structure? (y/n) y
Would you like to start up Hadoop? (y/n) y
Would you like to start up Hadoop on reboot? (y/n) y
Review your choices:
Setup single node configuration : y
Format namenode : y
Setup default file system structure: y
Start up Hadoop : y
Start up Hadoop on reboot : y
Proceed with setup? (y/n) y
Должно быть вадано раз [ok], это будет означать успешный запуск всего необходимого ПО.
Java откроет прослушку кучи соединений (их должно быть ровно 9 штук! Если их меньше - перезагрзите сервер, так как какой-то из компонентов Hadoop не поднялся):
netstat -lnpt|grep java
tcp 0 0 0.0.0.0:50060 0.0.0.0:* LISTEN 1547/java
tcp 0 0 127.0.0.1:8020 0.0.0.0:* LISTEN 1191/java
tcp 0 0 127.0.0.1:50070 0.0.0.0:* LISTEN 1191/java
tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 1316/java
tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 1316/java
tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 1316/java
tcp 0 0 127.0.0.1:34086 0.0.0.0:* LISTEN 1547/java
В моем случае не запускался jobtracker! Баг с jobtracker в логе выглядит так:
2013-04-07 15:24:36,889 INFO org.apache.hadoop.ipc.Server: IPC Server handler 9 on 9000: starting
2013-04-07 15:24:36,889 INFO org.apache.hadoop.mapred.JobTracker: Setting safe mode to true. Requested by : root
2013-04-07 15:24:36,967 INFO org.apache.hadoop.mapred.JobTracker: Setting safe mode to false. Requested by : root
2013-04-07 15:24:36,982 INFO org.apache.hadoop.mapred.JobTracker: Cleaning up the system directory
2013-04-07 15:24:36,986 WARN org.apache.hadoop.mapred.JobTracker: Failed to operate on mapred.system.dir (hdfs://localhost:8020/mapred/mapredsystem) because of permissions.
2013-04-07 15:24:36,986 WARN org.apache.hadoop.mapred.JobTracker: Manually delete the mapred.system.dir (hdfs://localhost:8020/mapred/mapredsystem) and then start the JobTracker.
2013-04-07 15:24:36,986 WARN org.apache.hadoop.mapred.JobTracker: Bailing out ...
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="":hdfs:supergroup:rwxr-xr-x
Источник фикса: http://blog.cuongnv.com/2011/12/how-to-setup-hadoop-100-on-rhelcentos.html
Фикс:
sudo -u hdfs hadoop fs -mkdir /mapred
sudo -u hdfs hadoop fs -chown mapred /mapred
/etc/init.d/hadoop-jobtracker start
Теперь проверяем работу Hadoop специальным тестовым скриптом:
hadoop-validate-setup.sh --user=hdfs
Выдача её ну очень объемна и выглядит вот так: teragen, terasort, teravalidate passed. Это означает, что Hadoop установлен корректно и работает полностью верно.
Для управления Hadoop имеется ряд веб-интерфейсов доступных только с localhost:
JobTracker website: http://localhost:50030
NameNode website : http://localhost:50070
Task track website: http://localhost:50060
Источники:
http://jinutechworld.blogspot.ru/2012/01/hadoop-100-single-node-configuration-on.html
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
Пофиксить HADOOP-8182 можно так
ReplyDeletesudo chmod g+w /var/log/hadoop/root/
sudo chmod g+w /var/log/hadoop/root/SecurityAuth.audit