Как установить 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
задан 10.03.2020, 01:50

5 ответов

Руководства, которыми я руководствовался, когда у меня было 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 и посмотреть, как настраивается каждый файл и как подключается каждая служба.

39
ответ дан 10.03.2020, 01:51

Чтобы установить 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
1
ответ дан 10.03.2020, 01:51

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

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

0
ответ дан 10.03.2020, 01:52

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

Вкратце

  1. Установка Java
  2. Подготовить исполнительного пользователя для Hadoop hduser
  3. С этого момента перейти к hduser
  4. Разрешить hduser удаленное соединение через ssh с парольной фразой -less
  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
[ 1194] у нас должно быть 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
[1198 ] Добавьте в конец эту строку

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

Редактировать файл конфигурации [ 11102]

$ 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
[11106 ] Следует сказать 1, что означает ОК ^^

Скачать и настроить пакет Hadoop

Скачать пакеты Hadoop 2.5.1 с сайта Apache Hadoop

The прямой 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 home

$ 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

Откройте новый домен minal, войдите как 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-сайте. xml

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

enter image description here [ 11120]

Все эти файлы находятся в папке $ HADOOP_HOME / etc / hadoop

Снова определите JAVA_HOME в hadoop-env.sh, отредактировав строку

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
[ 11123] Определите имя 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 [11124 ]

$ 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
ответ дан 10.03.2020, 01:52

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

6
ответ дан 10.03.2020, 01:53
  • 1
    Можно ли быть немного более описательными? – Caridorc 10.03.2020, 01:53

Теги

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