Я пытаюсь установить Hadoop в версии Ubuntu 12.04. Следуя инструкциям http://michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ , я установил java-6-openjdk
из программного центра Ubuntu. Я установил java_home
в .bashrc
. Также установите java_home
в Hadoop conf/env.sh
. При форматировании наменода я получаю следующую ошибку:
usr/lib/jvm/java-6-openjdk/bin/java no such file or directory.
Спасибо. Но это 64-битная ОС.
Я успешно установил Hadoop, установив путь к JAVA_HOME
как usr/lib/jvm/java-6-openjdk-amd64
.
Более актуальное руководство (не уверенное в различиях) можно найти в видео-уроках hadoop screencasts . Они предоставляют видео и фактические команды для установки снизу. Также, если вы напишите автору по электронной почте, он с радостью ответит и поможет вам, если вы застряли в чем-либо.
Эти инструкции в значительной степени похожи на те, на которые ответил @Luis.
Чтобы установить sun-java
с помощью команды apt-get
, необходимо добавить строку в файл с именем sources.list
. Этот файл можно найти в /etc/apt/sources.list
.
Откройте файл с помощью этой команды:
sudo nano /etc/apt/sources.list
Затем в самом конце (внизу) этого файла вы скопируете / вставите строку:
deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse
Теперь нажмите Ctrl kbd> + X kbd> для выхода и y kbd> для сохранения.
Теперь введите команду:
sudo apt-get update
И когда это будет сделано, вы можете успешно выполнить команду:
sudo apt-get install sun-java6-jdk
Полученный на основании ответа @Luis Альварадо, вот моя версия для Ubuntu 14.04 и Hadoop 2.5.1
hduser
hduser
с этого времениhduser
к удаленному через ssh с паролем меньшеГотово. Удачи!
Загрузите и установите
$ 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
hduser
Создайте пользователя 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
Отредактируйте конфигурационный файл
$ 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, что означает OK ^^
Загрузите 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
Править 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
Добавьте Hadoop binary
папки к системе $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 настроен с помощью 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
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
Звонить
$ start-dfs.sh && start-yarn.sh
эти две команды расположены на уровне $HADOOP_HOME/sbin, который мы добавили к системному $PATH прежде.
Удостоверьтесь, что сервисы Hadoop запускаются правильно
$ jps
мы должны видеть
Руководства, которыми я руководствовался, когда у меня было 12.04, были:
Я фактически был против MyLearning, потому что первым, что он рекомендовал, была Oracle Java 7 вместо OpenJDK 7, но у меня были некоторые проблемы с OpenJDK 7, когда я пытался это сделать, поэтому мне пришлось пойти с Oracle.
Руководство в основном прямолинейное, и вот оно:
Установить Java
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install oracle-java7-installer
Создать пользователя Hadoop
sudo addgroup hadoop
sudo adduser --ingroup hadoop hduser
Где hduser - это пользователь Hadoop, которого вы хотите иметь.
Настройка SSH
su - hduser
ssh-keygen -t rsa -P ""
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Чтобы убедиться, что установка SSH прошла успешно, вы можете открыть новый терминал и попытаться создать сеанс ssh, используя hduser
, с помощью следующей команды:
ssh localhost
переустановите ssh, если localhost не подключается (вам может потребоваться добавить hduser
в sudo, как показано ниже)
sudo apt-get install openssh-server
Редактировать Sudoers
sudo visudo
Добавьте в конце строку для добавления hduser в sudoers
hduser ALL=(ALL:ALL) ALL
Для сохранения нажмите CTRL kbd> + X kbd> введите Y kbd> и нажмите ENTER kbd>
Отключить IPv6
sudo gedit /etc/sysctl.conf
или
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
Если вы столкнулись с проблемой, сообщающей вам, у вас нет прав, просто выполните предыдущую команду с учетной записью root (в случае, если Судо не достаточно. Для меня это было)
Теперь перезагрузите компьютер.
Вы также можете сделать sudo sysctl -p
, но я лучше перезагружаюсь.
После перезагрузки убедитесь, что IPv6 выключен:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
должно быть 1 . Если там написано 0 , вы что-то упустили.
Установка Hadoop
Есть несколько способов сделать это, один из предложенных в Руководстве, это скачать с сайта Apache Hadoop и распаковать файл в вашем hduser
домашняя папка. Переименуйте извлеченную папку в hadoop
.
Другой способ заключается в использовании PPA, который был протестирован для 12.04:
sudo add-apt-repository ppa:hadoop-ubuntu/stable
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install hadoop
ПРИМЕЧАНИЕ. Для некоторых PPA может работать, а для других - нет. Тот, который я попробовал, был загружен с официального сайта, потому что я не знал о PPA.
Обновление $HOME/.bashrc
Вам необходимо обновить .bashrc
для hduser
(и для каждого пользователя вам нужно администрировать Hadoop). Чтобы открыть файл .bashrc
, вам необходимо открыть его как root:
sudo gedit /home/hduser/.bashrc
или
sudo nano /home/hduser/.bashrc
Затем вы добавите следующие конфигурации в конец файла .bashrc
# 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
Теперь, если у вас OpenJDK7, он будет выглядеть примерно так:
export JAVA_HOME=/usr/lib/java-7-openjdk-amd64
Здесь следует обратить внимание на папку, в которой находится Java с AMD64. версия. Если вышеупомянутое не работает, вы можете попробовать поискать в этой конкретной папке или установить Java, который будет использоваться с:
sudo update-alternatives --config java
Теперь для некоторых полезных псевдонимов:
# Some convenient aliases and functions for running Hadoop-related commands
unalias fs &> /dev/null
alias fs="hadoop fs"
unalias hls &> /dev/null
alias hls="fs -ls"
# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/bin
Настройка Hadoop
Ниже приведены файлы конфигурации, которые мы можем использовать для правильной настройки. Вот некоторые из файлов, которые вы будете использовать с Hadoop (дополнительная информация на на этом сайте ):
start-dfs.sh
- Запускает демоны Hadoop DFS, namenode и датододы. Используйте это перед start-mapred.sh
stop-dfs.sh
- Останавливает демоны Hadoop DFS.
start-mapred.sh
- Запускает карту Hadoop / Уменьшает демонов, трекеров и треккеров.
stop-mapred.sh
- Останавливает карту Hadoop / Уменьшает демонов.
start-all.sh
- Запускает все демоны Hadoop, namenode, датододы, трекеры и трекеры. Устаревшие; используйте start-dfs.sh, затем start-mapred.sh
stop-all.sh
- Останавливает все демоны Hadoop. Устаревшие; используйте stop-mapred.sh, затем stop-dfs.sh
Но прежде чем мы начнем их использовать, нам нужно изменить несколько файлов в папке /conf
.
hadoop- env.sh
Найдите файл hadoop-env.sh
, нам нужно только обновить переменную JAVA_HOME в этом файле:
sudo gedit /home/hduser/hadoop/conf/hadoop-env.sh
или
sudo nano /home/hduser/hadoop/conf/hadoop-env.sh
или в последних версиях это будет в
sudo nano /etc/hadoop/conf.empty/hadoop-env.sh
или
sudo nano /etc/hadoop/hadoop-env.sh
Затем измените следующую строку:
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
на
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Примечание: если вы получили Error: JAVA_HOME is not set
Ошибка при запуске служб, вы забыли раскомментировать предыдущую строку (просто удалите #).
core-site.xml
Теперь нам нужно создать временный каталог для фреймворка Hadoop. Если вам нужна эта среда для тестирования или быстрого прототипа (например, разработка простых программ hadoop для вашего личного теста ...), я предлагаю создать эту папку в каталоге /home/hduser/
, в противном случае вам следует создать эту папку в общем месте в общая папка (например, / usr / local ...), но вы можете столкнуться с некоторыми проблемами безопасности. Но чтобы преодолеть исключения, которые могут быть вызваны безопасностью (например, java.io.IOException), я создал папку tmp в пространстве hduser.
Чтобы создать эту папку, введите следующую команду:
sudo mkdir /home/hduser/tmp
Обратите внимание, что если вы хотите сделать другого пользователя-администратора (например, hduser2 в группе hadoop), вы должны предоставить ему разрешение на чтение и запись. в этой папке с помощью следующих команд:
sudo chown hduser:hadoop /home/hduser/tmp
sudo chmod 755 /home/hduser/tmp
Теперь мы можем открыть hadoop/conf/core-site.xml
для редактирования записи hadoop.tmp.dir. Мы можем открыть core-site.xml с помощью текстового редактора:
sudo gedit /home/hduser/etc/hadoop/core-site.xml
или
nano /home/hduser/etc/hadoop/core-site.xml
Затем добавьте следующие конфигурации между <configure>
элементами xml :
<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>
Теперь отредактируйте mapred-site.xml
<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>
Теперь отредактируйте hdfs-site.xml
<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>
Форматирование NameNode
Теперь вы можете начать работу над узлом. Первый формат:
~/hduser/hadoop/bin/hadoop namenode -format
или
./home/hduser/hadoop/bin/hadoop namenode -format
Вы должны отформатировать NameNode в вашей HDFS. Вы не должны делать этот шаг, когда система работает. Обычно это делается один раз при первой установке.
Запуск кластера Hadoop
Вам нужно перейти в каталог hadoop / bin и запустить скрипт ./start-all.sh
.
cd ~/hduser/hadoop/bin/
start-all.sh
Если у вас есть версия, отличная от той, которая показана в руководствах (которая, скорее всего, будет у вас, если вы сделаете это с PPA или более новой версией), попробуйте это следующим образом:
cd ~/hduser/hadoop/bin/
start-dfs.sh
start-mapred.sh
Это запустит Namenode, Datanode, Jobtracker и Tasktracker на вашей машине.
Проверка, работает ли Hadoop
Существует хороший инструмент под названием jps
. Вы можете использовать его, чтобы убедиться, что все услуги работают. В вашей папке bin bin hadoop введите:
jps
Он должен показать вам все процессы, связанные с Hadoop.
ПРИМЕЧАНИЕ. Поскольку для меня это было сделано около 6 месяцев назад, если какая-либо часть не работает, сообщите мне.
Взято из Очаровательный Hadoop
Я предполагаю, что уже установлено следующее:
~/.juju/environments.yaml
с информацией о сервере, который вы будете использовать, включая источник PPA. Хорошо, теперь выполните следующие шаги, чтобы запустить службу Hadoop:
Загрузите среду для Hadoop
juju bootstrap
Подождите, пока она не закончится, затем проверьте чтобы проверить правильность подключения:
juju status
Развернуть Hadoop (Master и Slave)
juju deploy --constraints="instance-type=m1.large" hadoop hadoop-master
juju deploy --constraints="instance-type=m1.medium" -n 5 hadoop hadoop-slave
Создать отношения
juju add-relation hadoop-master:namenode hadoop-slave:datanode
juju add-relation hadoop-master:jobtracker hadoop-slave:tasktracker
Expose Hadoop (поскольку вы уже развернули и создали отношения, служба должна работать)
juju expose hadoop-master
И проверьте состояние, чтобы убедиться, что оно работает правильно:
juju status hadoop-master
До сих пор у вас работает Hadoop. Есть еще много вещей, которые вы можете сделать, которые можно найти в приведенной ссылке или в официальном Juju Charm for Hadoop
. подробнее) вы можете посетить: JuJu Charms и создать собственную среду JuJu и посмотреть, как настраивается каждый файл и как подключается каждая служба.