Запуск Hadoop в Ubuntu Linux (одноузловой кластер)

  1. Sun Java 6
  2. Настройка SSH
  3. Отключение IPv6
  4. альтернатива
  5. Монтаж
  6. Экскурс: распределенная файловая система Hadoop (HDFS)
  7. конфигурация
  8. hadoop-env.sh
  9. конф / * - site.xml
  10. Запуск вашего одноузлового кластера
  11. Остановка вашего одноузлового кластера
  12. Выполнение задания MapReduce
  13. Скачать пример входных данных
  14. Перезапустите кластер Hadoop
  15. Запустите задание MapReduce
  16. Получить результат работы из HDFS
  17. Веб-интерфейсы Hadoop
  18. NameNode Web Interface (уровень HDFS)
  19. Веб-интерфейс JobTracker (слой MapReduce)
  20. Веб-интерфейс TaskTracker (слой MapReduce)

В этом руководстве я опишу необходимые шаги для настройки псевдораспределенного кластера Hadoop с одним узлом, поддерживаемого распределенной файловой системой Hadoop, работающей в Ubuntu Linux.

Hadoop - это инфраструктура, написанная на Java для запуска приложений на больших кластерах аппаратного обеспечения, и включает в себя функции, аналогичные Файловая система Google (GFS) и из Уменьшение карты вычислительная парадигма. Hadoop-х HDFS является очень отказоустойчивой распределенной файловой системой и, как и Hadoop в целом, предназначена для развертывания на недорогом оборудовании. Он обеспечивает высокопроизводительный доступ к данным приложения и подходит для приложений с большими наборами данных.

Основная цель этого руководства - запустить простую установку Hadoop, чтобы вы могли поиграться с программным обеспечением и узнать о нем больше.

Этот учебник был протестирован со следующими версиями программного обеспечения:

  • Ubuntu Linux 10,04 LTS (устарело: 8,10 LTS, 8,04, 7,10, 7,04)
  • Hadoop 1.0.3, выпущено в мае 2012

3, выпущено в мае 2012

Рисунок 1: Кластер машин, на которых работает Hadoop в Yahoo! (Источник: Yahoo!)

Sun Java 6

Hadoop требует работающей установки Java 1.5+ (она же Java 5). Однако, используя Java 1.6 (также известный как Java 6) рекомендуется для запуска Hadoop. Поэтому в этом руководстве я опишу установку Java 1.6.

Важное примечание: приведенные ниже инструкции взяты из этот поток SuperUser.com , Я получил уведомление, что предыдущие инструкции, которые я предоставил, больше не работают. Помните, что добавление стороннего репозитория в конфигурацию Ubuntu считается угрозой безопасности. Если вы не хотите следовать приведенным ниже инструкциям, смело устанавливайте Sun JDK 6 альтернативными способами (например, загрузка двоичного пакета из Oracle ), а затем перейдите к следующему разделу руководства. # Добавьте репозиторий Ferramosca Roberto в свои репозитории apt # См. Https://launchpad.net/~ferramroberto/ # $ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa: ferramroberto / java # Обновите список исходных текстов $ sudo apt-get update # Установить Sun Java 6 JDK $ sudo apt-get установить sun-java6-jdk # Выбрать Sun Java в качестве настройки по умолчанию на вашем компьютере. # Смотрите 'sudo update-alternatives --config java' для получения дополнительной информации. # $ sudo update-java-alternatives -s java-6-sun

Полный JDK, который будет помещен в / usr / lib / jvm / java-6-sun (ну, на самом деле этот каталог является символической ссылкой на Ubuntu).

После установки быстро проверьте, правильно ли настроен Sun JDK:

user @ ubuntu: ~ # java -version версия java "1.6.0_20" Java (TM) среда выполнения SE (сборка 1.6.0_20-b02) клиентская виртуальная машина Java HotSpot (TM) (сборка 16.3-b01, смешанный режим, совместное использование)

Мы будем использовать выделенную учетную запись пользователя Hadoop для запуска Hadoop. Хотя это и не требуется, рекомендуется, потому что это помогает отделить установку Hadoop от других программных приложений и учетных записей пользователей, работающих на одном компьютере (подумайте: безопасность, разрешения, резервные копии и т. Д.).

$ sudo addgroup hadoop $ sudo adduser --ingroup hadoop hduser

Это добавит пользователя hduser и группу hadoop на ваш локальный компьютер.

Настройка SSH

Hadoop требует SSH-доступа для управления своими узлами, т. Е. Удаленными машинами и вашим локальным компьютером, если вы хотите использовать Hadoop на нем (что мы и собираемся сделать в этом коротком руководстве). Поэтому для нашей установки Hadoop с одним узлом нам необходимо настроить SSH-доступ к localhost для пользователя hduser, который мы создали в предыдущем разделе.

Я предполагаю, что у вас есть SSH, запущенный и работающий на вашем компьютере, и настроил его для аутентификации с открытым ключом SSH Если нет, то есть несколько онлайн-гидов имеется в наличии.

Сначала мы должны сгенерировать ключ SSH для пользователя hduser.

user @ ubuntu: ~ $ su - hduser hduser @ ubuntu: ~ $ ssh-keygen -t rsa -P "" Создание пары открытых / закрытых ключей rsa. Введите файл, в котором нужно сохранить ключ (/home/hduser/.ssh/id_rsa): Создан каталог «/home/hduser/.ssh». Ваша идентификация была сохранена в /home/hduser/.ssh/id_rsa. Ваш открытый ключ был сохранен в /home/hduser/.ssh/id_rsa.pub. Отпечаток ключа: 9b: 82: ea: 58: b4: e0: 35: d7: ff: 19: 66: a6: ef: ae: 0e: d2 hduser @ ubuntu Образ randomart ключа: [... snipp ...] hduser @ ubuntu: ~ $

Вторая строка создаст пару ключей RSA с пустым паролем. Как правило, использование пустого пароля не рекомендуется, но в этом случае необходимо разблокировать ключ без вашего взаимодействия (вы не хотите вводить ключевую фразу каждый раз, когда Hadoop взаимодействует со своими узлами).

Во-вторых, вы должны разрешить SSH-доступ к вашему локальному компьютеру с помощью этого вновь созданного ключа.

hduser @ ubuntu: ~ $ cat $ HOME / .ssh / id_rsa.pub & gt; & gt; $ HOME / .ssh / authorized_keys

Последний шаг - проверить настройку SSH, подключившись к локальному компьютеру с пользователем hduser. Этот шаг также необходим для сохранения отпечатка ключа хоста вашего локального компьютера в файле known_hosts пользователя hduser. Если у вас есть какая-либо специальная конфигурация SSH для вашего локального компьютера, например нестандартный порт SSH, вы можете определить специфичные для хоста опции SSH в $ HOME / .ssh / config (дополнительную информацию смотрите в man ssh_config).

hduser @ ubuntu: ~ $ ssh localhost Подлинность хоста localhost (:: 1) не может быть установлена. Отпечаток ключа RSA: d7: 87: 25: 47: ae: 02: 00: eb: 1d: 75: 4f: bb: 44: f9: 36: 26. Вы уверены, что хотите продолжить подключение (да / нет)? да Предупреждение: постоянно добавлен «localhost» (RSA) в список известных хостов. Linux Ubuntu 2.6.32-22-generic # 33-Ubuntu SMP Ср 28 апреля 13:27:30 UTC 2010 i686 GNU / Linux Ubuntu 10.04 LTS [... snipp ...] hduser @ ubuntu: ~ $

В случае сбоя подключения SSH могут помочь следующие общие советы:

  • Включите отладку с помощью ssh -vvv localhost и подробно изучите ошибку.
  • Проверьте конфигурацию сервера SSH в / etc / ssh / sshd_config, в частности, параметры PubkeyAuthentication (который должен быть установлен в yes) и AllowUsers (если эта опция активна, добавьте в нее пользователя hduser). Если вы внесли какие-либо изменения в файл конфигурации сервера SSH, вы можете принудительно перезагрузить конфигурацию с помощью sudo /etc/init.d/ssh reload.

Отключение IPv6

Одна проблема с IPv6 в Ubuntu заключается в том, что использование 0.0.0.0 для различных сетевых параметров конфигурации Hadoop приведет к привязке Hadoop к адресам IPv6 моего Ubuntu. В моем случае я понял, что нет практического смысла включать IPv6 на устройстве, когда вы не подключены к какой-либо сети IPv6. Поэтому я просто отключил IPv6 на своей машине с Ubuntu. Ваш пробег может варьироваться.

Чтобы отключить IPv6 в Ubuntu 10.04 LTS, откройте /etc/sysctl.conf в любом редакторе и добавьте следующие строки в конец файла:

# /etc/sysctl.conf # отключите ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1

Вы должны перезагрузить компьютер, чтобы изменения вступили в силу.

Вы можете проверить, включен ли IPv6 на вашем компьютере, с помощью следующей команды:

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

Возвращаемое значение 0 означает, что IPv6 включен, значение 1 означает, что отключено (это то, что мы хотим).

альтернатива

Вы также можете отключить IPv6 только для Hadoop, как описано в Hadoop-3437 , Вы можете сделать это, добавив следующую строку в файл conf / hadoop-env.sh:

# conf / hadoop-env.sh export HADOOP_OPTS = -Djava .net.preferIPv4Stack = true

Монтаж

Скачать Hadoop от Apache Скачать Зеркала и извлеките содержимое пакета Hadoop в любое место по вашему выбору. Я выбрал / usr / local / hadoop. Убедитесь, что изменили владельца всех файлов на пользователя hduser и группу hadoop, например:

$ cd / usr / local $ sudo tar xzf hadoop-1.0.3.tar.gz $ sudo mv hadoop-1.0.3 hadoop $ sudo chown -R hduser: hadoop hadoop

(Просто чтобы дать вам идею, YMMV - лично я создаю символическую ссылку с hadoop-1.0.3 на hadoop.)

Добавьте следующие строки в конец файла $ HOME / .bashrc пользователя hduser. Если вы используете оболочку, отличную от bash, вам, конечно, следует обновить соответствующие файлы конфигурации вместо .bashrc.

# $ HOME / .bashrc # Установить экспорт переменных среды, связанных с Hadoop HADOOP_HOME = / usr / local / hadoop # Установить JAVA_HOME (позже мы также настроим JAVA_HOME напрямую для Hadoop), экспортировать JAVA_HOME = / usr / lib / jvm / java-6 -sun # Некоторые удобные псевдонимы и функции для запуска связанных с Hadoop команд unalias fs &> / dev / null alias fs = "hadoop fs" unalias hls &> / dev / null alias hls = "fs -ls" # Если у вас есть LZO сжатие включено в вашем кластере Hadoop и # сжимает выходные данные задания с помощью LZOP (не рассматривается в этом руководстве): # Удобно проверять сжатый файл LZOP из командной строки #; запустите через: # # $ lzohead /hdfs/path/to/lzop/compressed/file.lzo # # Требуется установленная команда lzop. # lzohead () {hadoop fs -cat $ 1 | lzop -dc | голова -1000 | меньше} # Добавить каталог Hadoop bin / в экспорт PATH PATH = $ PATH: $ HADOOP_HOME / bin

Вы можете повторить это упражнение и для других пользователей, которые хотят использовать Hadoop.

Экскурс: распределенная файловая система Hadoop (HDFS)

Прежде чем мы продолжим, давайте кратко познакомимся с распределенной файловой системой Hadoop.

Распределенная файловая система Hadoop (HDFS) - это распределенная файловая система, предназначенная для работы на обычном оборудовании. Он имеет много общего с существующими распределенными файловыми системами. Однако отличия от других распределенных файловых систем значительны. HDFS обладает высокой отказоустойчивостью и предназначена для развертывания на недорогом оборудовании. HDFS обеспечивает высокопроизводительный доступ к данным приложения и подходит для приложений с большими наборами данных. HDFS ослабляет некоторые требования POSIX для обеспечения потокового доступа к данным файловой системы. Изначально HDFS была построена в качестве инфраструктуры для проекта веб-поисковой системы Apache Nutch. HDFS является частью проекта Apache Hadoop, который является частью проекта Apache Lucene.

На следующем рисунке представлен обзор наиболее важных компонентов HDFS.

конфигурация

Наша цель в этом уроке - настройка Hadoop для одного узла. Более подробная информация о том, что мы делаем в этом разделе, доступна на Hadoop Wiki ,

hadoop-env.sh

Единственная обязательная переменная среды, которую мы должны настроить для Hadoop в этом руководстве, - это JAVA_HOME. Откройте файл conf / hadoop-env.sh в выбранном вами редакторе (если вы использовали путь установки в этом руководстве, полный путь - /usr/local/hadoop/conf/hadoop-env.sh) и установите переменную среды JAVA_HOME в каталог Sun JDK / JRE 6.

+ Изменить

# conf / hadoop-env.sh # Используемая реализация Java. Необходимые. # export JAVA_HOME = / usr / lib / j2sdk1.5-sun

в

# conf / hadoop-env.sh # Используемая реализация Java. Необходимые. экспорт JAVA_HOME = / usr / lib / jvm / java-6-sun

Примечание. Если вы работаете на Mac с OS X 10.7, вы можете использовать следующую строку для настройки JAVA_HOME в файле conf / hadoop-env.sh.

# conf / hadoop-env.sh (в системах Mac) # для наших пользователей Mac экспорт JAVA_HOME = `/ usr / libexec / java_home`

конф / * - site.xml

В этом разделе мы настроим каталог, в котором Hadoop будет хранить свои файлы данных, сетевые порты, которые он слушает, и т. Д. Наша установка будет использовать распределенную файловую систему Hadoop, HDFS хотя наш маленький «кластер» содержит только один локальный компьютер.

Вы можете оставить настройки ниже «как есть», за исключением параметра hadoop.tmp.dir - этот параметр необходимо изменить в каталог по вашему выбору. Мы будем использовать каталог / app / hadoop / tmp в этом уроке. Конфигурации Hadoop по умолчанию используют hadoop.tmp.dir в качестве базового временного каталога как для локальной файловой системы, так и для HDFS, поэтому не удивляйтесь, если в какой-то момент вы увидите, как Hadoop автоматически создает указанный каталог в HDFS.

Теперь мы создаем каталог и устанавливаем необходимые владельцы и разрешения:

$ sudo mkdir -p / app / hadoop / tmp $ sudo chown hduser: hadoop / app / hadoop / tmp # ... и, если вы хотите повысить безопасность, chmod от 755 до 750 ... $ sudo chmod 750 / app / Hadoop / TMP

Если вы забудете установить необходимые владельцы и разрешения, вы увидите исключение java.io.IOException при попытке отформатировать узел имени в следующем разделе).

Добавьте следующие фрагменты между тегами <configuration> ... </ configuration> в соответствующем XML-файле конфигурации.

В файле conf / core-site.xml:

<! - conf / core-site.xml -> <property> <name> hadoop.tmp.dir </ name> <value> / app / hadoop / tmp </ value> <description> База для других временных каталоги. </ description> </ property> <property> <name> fs.default.name </ name> <value> hdfs: // localhost: 54310 </ value> <description> Имя файловой системы по умолчанию. URI, схема и полномочия которого определяют реализацию FileSystem. Схема uri определяет свойство config (fs.SCHEME.impl) с именем класса реализации FileSystem. Полномочия URI используются для определения хоста, порта и т. Д. Для файловой системы. </ description> </ property>

В файле conf / mapred-site.xml:

<! - conf / mapred-site.xml -> <property> <name> mapred.job.tracker </ name> <value> localhost: 54311 </ value> <description> Хост и порт, которые задание MapReduce трекер работает на. Если «локально», то задания выполняются внутри процесса как единая карта и сокращают задачу. </ description> </ property>

В файле conf / hdfs-site.xml:

<! - conf / hdfs-site.xml -> <property> <name> dfs.replication </ name> <value> 1 </ value> <description> Репликация блоков по умолчанию. Фактическое количество репликаций может быть указано при создании файла. По умолчанию используется, если репликация не указана во время создания. </ description> </ property>

Увидеть Начало работы с Hadoop и документация в Обзор API Hadoop если у вас есть какие-либо вопросы о параметрах конфигурации Hadoop.

Первым шагом к запуску установки Hadoop является форматирование файловой системы Hadoop, которая реализована поверх локальной файловой системы вашего «кластера» (которая включает только вашу локальную машину, если вы следовали этому руководству). Это необходимо сделать при первой настройке кластера Hadoop.

Не форматируйте работающую файловую систему Hadoop, поскольку вы потеряете все данные, которые в данный момент находятся в кластере (в HDFS)!

Чтобы отформатировать файловую систему (которая просто инициализирует каталог, указанный в переменной dfs.name.dir), выполните команду

hduser @ ubuntu: ~ $ / usr / local / hadoop / bin / hadoop namenode -format

Вывод будет выглядеть так:

hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop namenode -формат 10/05/08 16:59:56 INFO namenode.NameNode: STARTUP_MSG: / *************** ********************************************* STARTUP_MSG: стартовый NameNode STARTUP_MSG : host = ubuntu / 127.0.1.1 STARTUP_MSG: args = [-формат] STARTUP_MSG: версия = 0.20.2 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; составлено 'chrisdo' в пт 19 февраля 08:07:34 UTC 2010 ********************************** ************************** / 10/05/08 16:59:56 ИНФОРМАЦИЯ о namenode.FSNamesystem: fsOwner = hduser, hadoop 10/05 / 08 16:59:56 ИНФОРМАЦИЯ namenode.FSNamesystem: супергруппа = супергруппа 05.10.08 16:59:56 ИНФОРМАЦИЯ namenode.FSNamesystem: isPermissionEnabled = true 10/05/08 16:59:56 ИНФОРМАЦИЯ общая.Хранилище: файл изображения размером 96 сохранено за 0 секунд. 10/05/08 16:59:57 INFO common.Storage: Каталог хранения ... / hadoop-hduser / dfs / name был успешно отформатирован. 05.10.08 16:59:57 ИНФОРМАЦИЯ о namenode.NameNode: SHUTDOWN_MSG: / ******************************** **************************** SHUTDOWN_MSG: Завершение работы NameNode в Ubuntu / 127.0.1.1 *********** ************************************************* / hduser @ убунту: / USR / местные / Hadoop $

Запуск вашего одноузлового кластера

Запустите команду:

hduser @ ubuntu: ~ $ /usr/local/hadoop/bin/start-all.sh

Это запустит Namenode, Datanode, Jobtracker и Tasktracker на вашей машине.

Вывод будет выглядеть так:

hduser @ ubuntu: / usr / local / hadoop $ bin / start-all.sh, начиная с namenode, ведя журнал в /usr/local/hadoop/bin/../logs/hadoop-hduser-namenode-ubuntu.out localhost: начальная точка данных , входя в /usr/local/hadoop/bin/../logs/hadoop-hduser-datanode-ubuntu.out localhost: начальный вторичный_наменод, входя в /usr/local/hadoop/bin/../logs/hadoop-hduser -secondarynamenode-ubuntu.out запуск JobTracker, вход в /usr/local/hadoop/bin/../logs/hadoop-hduser-jobtracker-ubuntu.out localhost: запуск TaskTracker, вход в / usr / local / hadoop / bin / ../logs/hadoop-hduser-tasktracker-ubuntu.out hduser @ ubuntu: / usr / local / hadoop $

Изящным инструментом для проверки того, запущены ли ожидаемые процессы Hadoop, является jps (часть Java от Sun начиная с версии 1.5.0). Смотрите также Как отлаживать программы MapReduce ,

hduser @ ubuntu: / usr / local / hadoop $ jps 2287 TaskTracker 2149 JobTracker 1938 DataNode 2085 SecondaryNameNode 2349 Jps 1788 NameNode

С помощью netstat вы также можете проверить, прослушивает ли Hadoop настроенные порты.

hduser @ ubuntu: ~ $ sudo netstat -plten | grep java tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 1001 9236 2471 / java tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 1001 9998 2628 / java tcp 0 0 0.0.0.0:48159 0.0. 0.0: * LISTEN 1001 8496 2628 / tcp java 0 0 0.0.0.0:53121 0.0.0.0:* LISTEN 1001 9228 2857 / tcp java 0 0 127.0.0.1:54310 0.0.0.0:* LISTEN 1001 8143 2471 / tcp java 0 0 127.0.0.1:54311 0.0.0.0:* LISTEN 1001 9230 2857 / java tcp 0 0 0.0.0.0:59305 0.0.0.0:* LISTEN 1001 8141 2471 / java tcp 0 0 0.0.0.0:50060 0.0.0.0:* LISTEN 1001 9857 3005 / java tcp 0 0 0.0.0.0:49900 0.0.0.0:* LISTEN 1001 9037 2785 / java tcp 0 0 0.0.0.0:50030 0.0.0.0:* LISTEN 1001 9773 2857 / java hduser @ ubuntu: ~ $

Если есть какие-либо ошибки, проверьте файлы журналов в каталоге / logs /.

Остановка вашего одноузлового кластера

Запустите команду

hduser @ ubuntu: ~ $ /usr/local/hadoop/bin/stop-all.sh

чтобы остановить все демоны, работающие на вашем компьютере.

Пример вывода:

hduser @ ubuntu: / usr / local / hadoop $ bin / stop-all.sh остановка рабочего трекера localhost: остановка TaskTracker остановка namenode localhost: остановка datanode localhost: остановка secondnamenode hduser @ ubuntu: / usr / local / hadoop $

Выполнение задания MapReduce

Теперь мы запустим ваше первое задание Hadoop MapReduce. Мы будем использовать WordCount пример работы который читает текстовые файлы и считает, как часто встречаются слова. Входные данные представляют собой текстовые файлы, а выходные данные представляют собой текстовые файлы, каждая строка которых содержит слово и счетчик частоты его появления, разделенных вкладкой. Больше информации о что происходит за кулисами доступен на Hadoop Wiki ,

Скачать пример входных данных

Для этого примера мы будем использовать три электронные книги от Project Gutenberg:

Загрузите каждую электронную книгу в виде текстовых файлов в кодировке UTF-8 в виде простого текста и сохраните файлы в выбранном локальном временном каталоге, например / tmp / gutenberg.

hduser @ ubuntu: ~ $ ls -l / tmp / gutenberg / total 3604 -rw-r - r-- 1 hduser hadoop 674566 3 февраля 10:17 pg20417.txt -rw-r - r-- 1 hduser hadoop 1573112 3 февраля 10:18 pg4300.txt -rw-r - r-- 1 hduser hadoop 1423801 3 февраля 10:18 pg5000.txt hduser @ ubuntu: ~ $

Перезапустите кластер Hadoop

Перезапустите кластер Hadoop, если он еще не запущен.

hduser @ ubuntu: ~ $ /usr/local/hadoop/bin/start-all.sh

Прежде чем мы запустим реальную работу MapReduce, мы сначала должен скопировать файлы из нашей локальной файловой системы в Hadoop HDFS ,

hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop dfs -copyFromLocal / tmp / gutenberg / user / hduser / gutenberg hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop dfs -ls / user / hduser Найдено 1 items drwxr-xr-x - супергруппа hduser 0 2010-05-08 17:40 / user / hduser / gutenberg hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop dfs -ls / user / hduser / gutenberg Найдено 3 объекта -rw-r - r-- 3 супергруппа hduser 674566 2011-03-10 11:38 /user/hduser/gutenberg/pg20417.txt -rw-r - r-- 3 супергруппа hduser 1573112 2011-03-10 11 : 38 /user/hduser/gutenberg/pg4300.txt -rw-r - r-- 3 супергруппа hduser 1423801 2011-03-10 11:38 /user/hduser/gutenberg/pg5000.txt hduser @ ubuntu: / usr / местный / Hadoop $

Запустите задание MapReduce

Теперь мы на самом деле запускаем пример работы WordCount.

hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop jar hadoop * примеры * .jar wordcount / пользователь / hduser / gutenberg / пользователь / hduser / gutenberg-output

Эта команда прочитает все файлы в каталоге HDFS / user / hduser / gutenberg, обработает его и сохранит результат в каталоге HDFS / user / hduser / gutenberg-output.

Примечание. Некоторые люди запускают указанную выше команду и получают следующее сообщение об ошибке: Исключение в потоке «main» java.io.IOException: Ошибка при открытии jar задания: hadoop * examples * .jar в org.apache.hadoop.util.RunJar.main (RunJar.java: 90) Причина: java.util.zip.ZipException: ошибка при открытии zip-файла. В этом случае повторно запустите команду с полным именем JAR-файла Hadoop examples, например: hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop jar hadoop-examples-1.0.3.jar wordcount / пользователь / hduser / gutenberg / пользователь / hduser / gutenberg-output

Пример вывода предыдущей команды в консоли:

hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop jar hadoop * examples * .jar wordcount / user / hduser / gutenberg / user / hduser / gutenberg-output 10/05/08 17:43:00 INFO input.FileInputFormat : Всего входных путей для обработки: 3 10/05/08 17:43:01 INFO mapred.JobClient: Выполнение задания: job_201005081732_0001 10.05.08 17:43:02 INFO mapred.JobClient: map 0% уменьшить 0% 10 / 05/08 17:43:14 INFO mapred.JobClient: карта на 66% уменьшена на 0% 10/05/08 17:43:17 INFO mapred.JobClient: карта на 100% уменьшена на 0% 10/05/08 17:43:26 ИНФОРМАЦИЯ mapred.JobClient: карта 100% уменьшить на 100% 10/05/08 17:43:28 ИНФОРМАЦИЯ mapred.JobClient: задание выполнено: job_201005081732_0001 10/05/08 17:43:28 ИНФОРМАЦИЯ mapred.JobClient: Счетчики: 17 10 / 05/08 17:43:28 INFO mapred.JobClient: счетчики заданий 10/05/08 17:43:28 INFO mapred.JobClient: запущенные задачи сокращения = 1 10/05/08 17:43:28 INFO mapred.JobClient: Запущенные задачи карты = 3 10.05.08 17:43:28 INFO mapred.JobClient: задачи локальной карты данных = 3 10/05/08 17:43:28 INFO mapred.JobClient: FileSystemCounters 10/05/08 17: 43:28 INFO mapred.JobClien t: FILE_BYTES_READ = 2214026 05.10.08 17:43:28 INFO mapred.JobClient: HDFS_BYTES_READ = 3639512 10.05.08 17:43:28 INFO mapred.JobClient: FILE_BYTES_WRITTEN = 3687918: 10/05/08 17:43 28 INFO mapred.JobClient: HDFS_BYTES_WRITTEN = 880330 10/05/08 17:43:28 INFO mapred.JobClient: Map-Reduce Framework 10/05/08 17:43:28 INFO mapred.JobClient: сокращение входных групп = 82290 10 / 05/08 17:43:28 INFO mapred.JobClient: объединить выходные записи = 102286 10.05.08 17:43:28 INFO mapred.JobClient: отобразить входные записи = 77934 05.10.08 17:43:28 INFO mapred .JobClient: уменьшить количество перемешиваемых байтов = 1473796 10/05/08 17:43:28 INFO mapred.JobClient: уменьшить выходные записи = 82290 10/05/08 17:43:28 INFO mapred.JobClient: Spilled Records = 255874 10/05 / 08 17:43:28 INFO mapred.JobClient: выходные байты карты = 6076267 05.10.08 17:43:28 INFO mapred.JobClient: объединение входных записей = 629187 10.10.08 17:43:28 INFO mapred. JobClient: сопоставить выходные записи = 629187 05.10.08 17:43:28 INFO mapred.JobClient: уменьшить входные записи = 102286

Проверьте, успешно ли сохранен результат в каталоге HDFS / user / hduser / gutenberg-output:

hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop dfs -ls / user / hduser Найдено 2 элементов drwxr-xr-x - супергруппа hduser 0 2010-05-08 17:40 / user / hduser / gutenberg drwxr-xr -x - супергруппа hduser 0 2010-05-08 17:43 / user / hduser / gutenberg-output hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop dfs -ls / user / hduser / gutenberg-output Найдено 2 объекта drwxr-xr-x - супергруппа hduser 0 2010-05-08 17:43 / user / hduser / gutenberg-output / _logs -rw-r - r-- 1 супергруппа hduser 880802 2010-05-08 17:43 / user / hduser / gutenberg-output / part-r-00000 hduser @ ubuntu: / usr / local / hadoop $

Если вы хотите на лету изменить некоторые настройки Hadoop, например, увеличить количество задач «Уменьшить», вы можете использовать опцию «-D»:

hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop jar hadoop * examples * .jar wordcount -D mapred.reduce.tasks = 16 / user / hduser / gutenberg / user / hduser / gutenberg-output Важное замечание о mapred .map.tasks: Hadoop не соблюдает mapred.map.tasks вне рассмотрения это намек. Но он принимает указанный пользователем mapred.reduce.tasks и не манипулирует этим. Вы не можете форсировать mapred.map.tasks, но вы можете указать mapred.reduce.tasks.

Получить результат работы из HDFS

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

hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop dfs -cat / user / hduser / gutenberg-output / part-r-00000

читать файл напрямую из HDFS, не копируя его в локальную файловую систему. В этом уроке мы скопируем результаты в локальную файловую систему.

hduser @ ubuntu: / usr / local / hadoop $ mkdir / tmp / gutenberg-output hduser @ ubuntu: / usr / local / hadoop $ bin / hadoop dfs -getmerge / пользователь / hduser / gutenberg-output / tmp / gutenberg-output hduser @ubuntu: / usr / local / hadoop $ head / tmp / gutenberg-output / gutenberg-output "(Lo) cra" 1 "1490 1" 1498, "1" 35 "1" 40, "1" A 2 "AS -ЯВЛЯЕТСЯ". 1 "A_ 1" Absoluti 1 "Alack! 1 hduser @ ubuntu: / usr / local / hadoop $

Обратите внимание, что в этом конкретном выводе знаки кавычек («), заключающие слова в выводе заголовка выше, не были вставлены Hadoop. Они являются результатом слова tokenizer, используемого в примере WordCount, и в этом случае они соответствуют началу цитаты в текстах электронных книг. Просто проверьте файл part-00000, чтобы убедиться в этом.

Команда fs -getmerge просто объединит все файлы, найденные в указанном вами каталоге. Это означает, что объединенный файл может (и, скорее всего, будет) не сортироваться .

Веб-интерфейсы Hadoop

Hadoop поставляется с несколькими веб-интерфейсами, которые по умолчанию (см. Conf / hadoop-default.xml) доступны в следующих местах:

Эти веб-интерфейсы предоставляют краткую информацию о том, что происходит в вашем кластере Hadoop. Возможно, вы захотите попробовать.

NameNode Web Interface (уровень HDFS)

Веб-интерфейс имени узла отображает сводку кластера, включая информацию об общей / оставшейся емкости, живых и мертвых узлах. Кроме того, он позволяет просматривать пространство имен HDFS и просматривать содержимое его файлов в веб-браузере. Он также дает доступ к файлам журнала Hadoop на локальном компьютере.

По умолчанию он доступен на HTTP: // локальный: 50070 / ,

По умолчанию он доступен на   HTTP: // локальный: 50070 /   ,

Веб-интерфейс JobTracker (слой MapReduce)

Веб-интерфейс JobTracker предоставляет информацию об общей статистике заданий кластера Hadoop, запущенных / выполненных / невыполненных заданиях и файле журнала заданий. Он также предоставляет доступ к файлам журналов Hadoop «локального компьютера» (компьютера, на котором работает веб-интерфейс).

По умолчанию он доступен на HTTP: // локальный: 50030 / ,

По умолчанию он доступен на   HTTP: // локальный: 50030 /   ,

Веб-интерфейс TaskTracker (слой MapReduce)

Веб-интерфейс отслеживания задач отображает запущенные и не запущенные задачи. Он также предоставляет доступ к файлам журнала Hadoop на локальном компьютере.

По умолчанию он доступен на HTTP: // локальный: 50060 / ,

По умолчанию он доступен на   HTTP: // локальный: 50060 /   ,

Если вы чувствуете себя комфортно, вы можете продолжить работу с Hadoop с помощью моего следующего урока Запуск Hadoop в Ubuntu Linux (многоузловой кластер) где я опишу, как построить кластер Hadoop «multi-node» с двумя блоками Ubuntu (это увеличит ваш текущий размер кластера на 100%, хе).

Кроме того, я написал учебник на как написать простую работу MapReduce на языке программирования Python, который может служить основой для написания ваших собственных программ MapReduce.

От твоего воистину:

От других людей:

Только важные изменения в этой статье перечислены здесь:

  • 2011-07-17: Переименование пользователя Hadoop из hadoop в hduser на основе отзывов читателей. Это должно сделать различие между локальным пользователем Hadoop (теперь hduser), локальной группой Hadoop (hadoop) и инструментом Hadoop CLI (hadoop) более четким.

Похожие

Lutorrent - Utorrent для Linux
Lutorrent - Utorrent для Linux Обновлено: 4 октября 2011 г. Я заранее прошу прощения за неправильное написание μ, но тогда большинство людей будут искать и писать utorrent. Во всяком случае, Utorrent вероятно, самый популярный клиент BitTorrent в западном полушарии. Это быстрое, легкое и простое в использовании, именно то, что вам нужно и ожидать от однорангового программного обеспечения для обмена. Есть только одна проблема.
8 мощных встроенных переменных Awk - FS, OFS, RS, ORS, NR, NF, FILENAME, FNR
Эта статья является частью продолжающегося Awk Tutorial Примеры серии. В Awk есть несколько мощных встроенных переменных. В Awk есть два типа встроенных переменных. Переменная, которая определяет значения, которые
Скачать Norton Internet Security 2017 бесплатно для 90-дневной пробной версии
... запуска. Менеджер паролей позволяет легко зашифровать любой пароль, который вы используете, и защитить любые данные, которые вы помещаете в веб-браузер. Свободное облачное резервное копирование 25 ГБ : резервное копирование на ПК с Windows бесплатно. Norton Internet Security 2017 включает 25 ГБ бесплатного облачного хранилища Загрузите и установите Norton Internet Security 2012 с
Вступление Apache и Nginx - два популярных веб-сервера с открытым исходным кодом, которые часто используются...
Вступление Apache и Nginx - два популярных веб-сервера с открытым исходным кодом, которые часто используются с PHP. Может быть полезно запускать их оба на одной виртуальной машине при размещении нескольких веб-сайтов с различными требованиями. Общее решение для запуска двух веб-серверов в одной системе заключается в использовании нескольких IP-адресов или разных номеров портов. Капли, имеющие адреса как IPv4, так и IPv6, можно настроить для обслуживания сайтов Apache
Запретить запуск приложений Android в фоновом режиме
Среди наиболее востребованных и самых популярных инструментов для Android тот, который почти у всех есть на своих устройствах, - это тот, который не даст приложениям работать в фоновом режиме. Почему кто-то хочет остановить приложение в фоновом режиме? Потому что иногда приложения не ограничиваются тем, что они должны делать. Хорошее приложение будет работать в фоновом режиме для синхронизации, предоставляя вам данные о местоположении или что бы то ни было, что они были сделаны, но некоторые
Обзор FortiClient, бесплатный антивирус от Fortinet
Сегодня антивирус является обязательной частью программного обеспечения для защиты вашего компьютера от онлайн-угроз. Хотя нет антивирусных приложений, которые могут гарантировать постоянную 100% защиту, он может обеспечить высокий уровень защиты, вплоть до 90%, в зависимости от тип антивирусного программного обеспечения, которое вы используете , Существует довольно много брендов, которые разрабатывают антивирусное
Как получить классическое меню «Пуск» в Windows 7
Вам не хватает всплывающих меню из старого классического меню «Пуск» Windows 98? Это были меню, которые расширялись по экрану, чтобы показать все подпапки и подпапки и т. Д. Не всем они понравились, но все еще есть много пользователей ПК, которые хотели бы вернуться. В Windows XP и Vista Microsoft предоставила альтернативную опцию под названием «Классическое меню Пуск», которая предоставляла старый дисплей. Эта опция отсутствует в Windows 7, но есть некоторые приемы для восстановления некоторых
Добавление карт в приложение Android с помощью сервисов Google Play
... запускаться, несмотря на то, что Android Studio показывает ошибку. В соответствии с эта страница с отчетом об ошибках Gmaps , проблема, кажется, ошибка в инструменте Android Lint. Вы можете отключить проверку Lint, но поскольку она полезна для поиска ошибок, лучшим решением будет игнорировать проблему lint для определенных тегов, как мы делаем для тега фрагмента. Атрибут tools: ignore может быть установлен для
Скачать GTA Vice City для Android (Normal + MOD APK + OBB)
Grand Theft Auto или GTA - одна из самых популярных и популярных игр всех времен и народов мира. Когда речь заходит о видеоиграх, большинство людей предпочитают играть в GTA. В 2002 году Rockstar Games выпустили первый выпуск этой приключенческой игры под названием Grand Theft Auto: Vice City. Сначала он был запущен только для Playstation, но, получив популярность, они разработали и запустили его и для других платформ. На сегодняшний день было продано более 17,5 миллионов копий GTA Vice
Gigabyte Материнская плата драйвер скачать и установить
Если у вас есть проблема с драйвером материнской платы Gigabyte на вашем компьютере, например, отсутствующий или устаревший драйвер материнской платы Gigabyte, не беспокойтесь. Существуют решения для устранения проблемы с драйверами в Windows. Что такое драйвер материнской платы Gigabyte? Драйверы материнской платы Gigabyte позволяют оборудованию материнской платы вашего компьютера взаимодействовать с системным программным обеспечением Windows
Как разблокировать загрузчик вашего телефона Android, официальный путь
Разблокировка загрузчика вашего телефона Android - это первый шаг к рутингу и прошивке пользовательских ПЗУ. И, вопреки распространенному мнению, это на самом деле полностью поддерживается на многих телефонах. Вот как разблокировать ваш загрузчик официальным способом.

Комментарии

Но обеспечивают ли беспроводные наушники Bluetooth такой же уровень комфорта?
Но обеспечивают ли беспроводные наушники Bluetooth такой же уровень комфорта? А что со звуком? Наш тест предоставляет информацию. Не секрет, что производители в индустрии высоких технологий любят «вдохновляться» успешными идеями. Популярным источником такого вдохновения являются продукты Apple. Будь то iPhone, iPad или MacBook - большая часть того, что группа из Купертино выводит на рынок, быстро завоевывает конкуренцию. Это объясняет Bluetooth-наушники
? какой объем работы угловая шлифмашина должна выполнять?
Но обеспечивают ли беспроводные наушники Bluetooth такой же уровень комфорта? А что со звуком? Наш тест предоставляет информацию. Не секрет, что производители в индустрии высоких технологий любят «вдохновляться» успешными идеями. Популярным источником такого вдохновения являются продукты Apple. Будь то iPhone, iPad или MacBook - большая часть того, что группа из Купертино выводит на рынок, быстро завоевывает конкуренцию. Это объясняет Bluetooth-наушники
Тогда почему бы не опубликовать его здесь и получить полный кредит?
Тогда почему бы не опубликовать его здесь и получить полный кредит? Нажмите здесь, чтобы сообщить нам свой совет. Этот раздел советов поддерживается Виком Лори. Вик ведет блог Windows под названием ПК Информатор а также работает сайт компьютерного образования. кликните сюда
Могу ли я получить доступ к файлу git, которым делятся со мной через обмен ссылками?
Могу ли я получить доступ к файлу git, которым делятся со мной через обмен ссылками? Да, когда вы посещаете проект в вашем браузере. Вы не можете использовать ссылку обмена ссылками непосредственно с git, но вы можете найти ссылку git в меню, когда открываете проект в Интернете. Как мне войти через git? Когда вы попытаетесь выполнить git pull from или git push to Overleaf, вам будет предложено войти в систему, используя свое имя пользователя Overleaf (ваш адрес
? вашего Mac с помощью MacRemover становится невероятно простым и быстрым, верно?
Могу ли я получить доступ к файлу git, которым делятся со мной через обмен ссылками? Да, когда вы посещаете проект в вашем браузере. Вы не можете использовать ссылку обмена ссылками непосредственно с git, но вы можете найти ссылку git в меню, когда открываете проект в Интернете. Как мне войти через git? Когда вы попытаетесь выполнить git pull from или git push to Overleaf, вам будет предложено войти в систему, используя свое имя пользователя Overleaf (ваш адрес

26. Вы уверены, что хотите продолжить подключение (да / нет)?
Почему кто-то хочет остановить приложение в фоновом режиме?
Что такое драйвер материнской платы Gigabyte?
Но обеспечивают ли беспроводные наушники Bluetooth такой же уровень комфорта?
А что со звуком?
Какой объем работы угловая шлифмашина должна выполнять?
Но обеспечивают ли беспроводные наушники Bluetooth такой же уровень комфорта?
А что со звуком?
Тогда почему бы не опубликовать его здесь и получить полный кредит?
Могу ли я получить доступ к файлу git, которым делятся со мной через обмен ссылками?