Как установить Hadoop?

Я пытаюсь установить 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-битная ОС.

26
задан 9 April 2013 в 19:19

5 ответов

Я успешно установил Hadoop, установив путь к JAVA_HOME как usr/lib/jvm/java-6-openjdk-amd64.

0
ответ дан 9 April 2013 в 19:19

Более актуальное руководство (не уверенное в различиях) можно найти в видео-уроках hadoop screencasts . Они предоставляют видео и фактические команды для установки снизу. Также, если вы напишите автору по электронной почте, он с радостью ответит и поможет вам, если вы застряли в чем-либо.

Эти инструкции в значительной степени похожи на те, на которые ответил @Luis.

0
ответ дан 9 April 2013 в 19:19

Чтобы установить 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 + X для выхода и y для сохранения.


Теперь введите команду:

sudo apt-get update 

И когда это будет сделано, вы можете успешно выполнить команду:

sudo apt-get install sun-java6-jdk
0
ответ дан 9 April 2013 в 19:19

Полученный на основании ответа @Luis Альварадо, вот моя версия для Ubuntu 14.04 и Hadoop 2.5.1

Вкратце

  1. Java установки
  2. Подготовьте исполнительного пользователя к Hadoop hduser
  3. Переключатель к hduser с этого времени
  4. Позволить hduser к удаленному через ssh с паролем меньше
  5. Отключите IPv6
  6. Загрузите и сконфигурируйте пакет Hadoop
  7. Подготовьте системный $HADOOP_HOME пути и $JAVA_HOME
  8. Сконфигурируйте сервисы Hadoop
  9. Запустите сервисы 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

Подготовьте исполнительного пользователя к Hadoop 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

Отключите 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, что означает OK ^^

Загрузите и сконфигурируйте пакет 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 

Добавьте 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

Каждый компонент в Hadoop настроен с помощью XML-файла.

  • Общая собственность входит в core-site.xml

  • Свойства HDFS входят в hdfs-site.xml

  • Свойства MapReduce входят в mapred-site.xml

enter image description here

Эти файлы все расположены в $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

Запустите сервис Hadoop

Звонить

$ start-dfs.sh && start-yarn.sh

эти две команды расположены на уровне $HADOOP_HOME/sbin, который мы добавили к системному $PATH прежде.

Удостоверьтесь, что сервисы Hadoop запускаются правильно

$ jps

мы должны видеть

enter image description here

3
ответ дан 9 April 2013 в 19:19

Руководства, которыми я руководствовался, когда у меня было 12.04, были:

Я фактически был против MyLearning, потому что первым, что он рекомендовал, была Oracle Java 7 вместо OpenJDK 7, но у меня были некоторые проблемы с OpenJDK 7, когда я пытался это сделать, поэтому мне пришлось пойти с Oracle.

Руководство в основном прямолинейное, и вот оно:

  1. Установить Java

    sudo add-apt-repository ppa:webupd8team/java  
    sudo apt-get update && sudo apt-get upgrade  
    sudo apt-get install oracle-java7-installer  
    
  2. Создать пользователя Hadoop

    sudo addgroup hadoop  
    sudo adduser --ingroup hadoop hduser
    

    Где hduser - это пользователь Hadoop, которого вы хотите иметь.

  3. Настройка 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
    
  4. Редактировать Sudoers

    sudo visudo
    
  5. Добавьте в конце строку для добавления hduser в sudoers

    hduser ALL=(ALL:ALL) ALL
    

    Для сохранения нажмите CTRL + X введите Y и нажмите ENTER

  6. Отключить 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 (в случае, если Судо не достаточно. Для меня это было)

  7. Теперь перезагрузите компьютер.

    Вы также можете сделать sudo sysctl -p, но я лучше перезагружаюсь.

    После перезагрузки убедитесь, что IPv6 выключен:

    cat /proc/sys/net/ipv6/conf/all/disable_ipv6
    

    должно быть 1 . Если там написано 0 , вы что-то упустили.

  8. Установка 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.

  9. Обновление $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  
    
  10. Настройка 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> 
    
  11. Форматирование NameNode

    Теперь вы можете начать работу над узлом. Первый формат:

    ~/hduser/hadoop/bin/hadoop namenode -format
    

    или

    ./home/hduser/hadoop/bin/hadoop namenode -format
    

    Вы должны отформатировать NameNode в вашей HDFS. Вы не должны делать этот шаг, когда система работает. Обычно это делается один раз при первой установке.

  12. Запуск кластера 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 на вашей машине.

  13. Проверка, работает ли Hadoop

    Существует хороший инструмент под названием jps. Вы можете использовать его, чтобы убедиться, что все услуги работают. В вашей папке bin bin hadoop введите:

    jps
    

    Он должен показать вам все процессы, связанные с Hadoop.

    ПРИМЕЧАНИЕ. Поскольку для меня это было сделано около 6 месяцев назад, если какая-либо часть не работает, сообщите мне.

Hadoop с использованием Juju (Очарование Джуджу для Hadoop)

Взято из Очаровательный Hadoop

Я предполагаю, что уже установлено следующее:

  • У вас есть сервер с уже установленным Juju
  • У вас есть доступ к серверу (локально или удаленно)
  • У вас настроен Juju и вы готовы начать добавлять чудо-кнопки
  • Вы используете 12.04 (это потому, что я проверил все это с 12.04)
  • Вы уже настроили ~/.juju/environments.yaml с информацией о сервере, который вы будете использовать, включая источник PPA.

Хорошо, теперь выполните следующие шаги, чтобы запустить службу Hadoop:

  1. Загрузите среду для Hadoop

    juju bootstrap
    

    Подождите, пока она не закончится, затем проверьте чтобы проверить правильность подключения:

    juju status
    
  2. Развернуть 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
    
  3. Создать отношения

    juju add-relation hadoop-master:namenode hadoop-slave:datanode  
    
    juju add-relation hadoop-master:jobtracker hadoop-slave:tasktracker
    
  4. Expose Hadoop (поскольку вы уже развернули и создали отношения, служба должна работать)

    juju expose hadoop-master
    

    И проверьте состояние, чтобы убедиться, что оно работает правильно:

    juju status hadoop-master
    

До сих пор у вас работает Hadoop. Есть еще много вещей, которые вы можете сделать, которые можно найти в приведенной ссылке или в официальном Juju Charm for Hadoop

. подробнее) вы можете посетить: JuJu Charms и создать собственную среду JuJu и посмотреть, как настраивается каждый файл и как подключается каждая служба.

0
ответ дан 9 April 2013 в 19:19

Другие вопросы по тегам:

Похожие вопросы: