Apache hadoop on windows

Download

Hadoop is released as source code tarballs with corresponding binary tarballs for convenience. The downloads are distributed via mirror sites and should be checked for tampering using GPG or SHA-512.

Version Release date Source download Binary download Release notes
3.2.2 2021 Jan 9 source (checksum signature) binary (checksum signature) Announcement
2.10.1 2020 Sep 21 source (checksum signature) binary (checksum signature) Announcement
3.1.4 2020 Aug 3 source (checksum signature) binary (checksum signature) Announcement
3.3.0 2020 Jul 14 source (checksum signature) binary (checksum signature)
binary-aarch64 (checksum signature)
Announcement

To verify Hadoop releases using GPG:

  1. Download the release hadoop-X.Y.Z-src.tar.gz from a mirror site.
  2. Download the signature file hadoop-X.Y.Z-src.tar.gz.asc from Apache.
  3. Download the Hadoop KEYS file.
  4. gpg –import KEYS
  5. gpg –verify hadoop-X.Y.Z-src.tar.gz.asc

To perform a quick check using SHA-512:

  1. Download the release hadoop-X.Y.Z-src.tar.gz from a mirror site.
  2. Download the checksum hadoop-X.Y.Z-src.tar.gz.sha512 or hadoop-X.Y.Z-src.tar.gz.mds from Apache.
  3. shasum -a 512 hadoop-X.Y.Z-src.tar.gz

All previous releases of Hadoop are available from the Apache release archive site.

Many third parties distribute products that include Apache Hadoop and related tools. Some of these are listed on the Distributions wiki page.

License

Apache Hadoop, Hadoop, Apache, the Apache feather logo, and the Apache Hadoop project logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries

Copyright В© 2006-2021 The Apache Software Foundation

Установка Hadoop на Windows

Администрирование › Установка Hadoop на Windows

  • В этой теме 0 ответов, 1 участник, последнее обновление 1 год, 5 месяцев назад сделано Васильев Владимир Сергеевич.

Задача
Установить Hadoop на Windows

Решение
Для установки Hadoop у Вас должен быть установлен JDK не ниже версии 1.7 и настроена переменная окружения JAVA_HOME, указывающая на корневую директорию JDK.

1. Установка дистрибутива
Двоичный дистрибутив Hadoop можно скачать с официального сайта проекта по ссылке. Качаем версию 2.7.3 в виде архива hadoop-2.7.3.tar.gz.

Распаковываем полученный двоичный дистрибутив в выбранный для инсталяции каталог, например, C:\hadoop

Устанавливаем переменную окружения HADOOP_HOME, указывающую на папку распакованного дистрибутива (C\:hadoop\hadoop-2.7.3\)

Добавляем к переменной окружения Path путь к папке bin распакованного дистрибутива (C\:hadoop\hadoop-2.7.3\bin)

Устанавливаем переменную окружения HADOOP_CONF_DIR, указывающую на папку конфигурационных файлов распакованного дистрибутива (C\:hadoop\hadoop-2.7.3\etc\hadoop)

2. Конфигурация Hadoop
Редактируем файл C\:hadoop\hadoop-2.7.3\etc\hadoop\core-site.xml и указываем адрес файловой системы, используемой по-умолчанию

Редактируем файл настроек распределенной файловой системы C\:hadoop\hadoop-2.7.3\etc\hadoop\hdfs-site.xml . Добавляем в него коэффициент репликации (в случае локальной установки коэффицинт ставим 1). А так же указываем настройки директорий хранилища данных, обратите внимание на указание пути к директориям в формате принятом в Linux.

Редактируем файл исполнителя задач C\:hadoop\hadoop-2.7.3\etc\hadoop\mapred-site.xm и указываем, что задачи будут управляться менеджером YARN

Редактируем файл планировщика ресурсов YARN
C\:hadoop\hadoop-2.7.3\etc\hadoop\yarn-site.xm

3. Запуск Hadoop
Для запуска Hadoop под Windows необходимо заменить файлы утилит Hadoop предназначенные для Linux на файлы собранные для Windows (начиная, с версии 2.2 Hadoop позволяет делать такую сборку). Для этого качаем собранный пакет утилит WinUtils версии 2.7.1 c GitHub (например тут). Заменяем содержимое директории bin в установленном нами Hadoop на содержимое директории bin из WinUtils

Перед первым запуском Hadoop необходимо отформатировать распреленную файловую систему. Для этого выполняем команду файловой системы hdfs

Hadoop2OnWindows

Build and Install Hadoop 2.x or newer on Windows

Introduction

Hadoop version 2.2 onwards includes native support for Windows. The official Apache Hadoop releases do not include Windows binaries (yet, as of January 2014). However building a Windows package from the sources is fairly straightforward.

Hadoop is a complex system with many components. Some familiarity at a high level is helpful before attempting to build or install it or the first time. Familiarity with Java is necessary in case you need to troubleshoot.

Building Hadoop Core for Windows

Choose target OS version

The Hadoop developers have used Windows Server 2008 and Windows Server 2008 R2 during development and testing. Windows Vista and Windows 7 are also likely to work because of the Win32 API similarities with the respective server SKUs. We have not tested on Windows XP or any earlier versions of Windows and these are not likely to work. Any issues reported on Windows XP or earlier will be closed as Invalid.

Do not attempt to run the installation from within Cygwin. Cygwin is neither required nor supported.

Choose Java Version and set JAVA_HOME

Oracle JDK versions 1.7 and 1.6 have been tested by the Hadoop developers and are known to work.

Make sure that JAVA_HOME is set in your environment and does not contain any spaces. If your default Java installation directory has spaces then you must use the Windows 8.3 Pathname instead e.g. c:\Progra

1\Java\. instead of c:\Program Files\Java\. .

Getting Hadoop sources

The current stable release as of August 2014 is 2.5. The source distribution can be retrieved from the ASF download server or using subversion or git.

  • From the ASF Hadoop download page or a mirror.
  • Subversion URL: _https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2.5_
  • Git repository URL: git://git.apache.org/hadoop-common.git. After downloading the sources via git, switch to the stable 2.5 using git checkout branch-2.5, or use the appropriate branch name if you are targeting a newer version.

Installing Dependencies and Setting up Environment for Building

The BUILDING.txt file in the root of the source tree has detailed information on the list of requirements and how to install them. It also includes information on setting up the environment and a few quirks that are specific to Windows. It is strongly recommended that you read and understand it before proceeding.

A few words on Native IO support

Hadoop on Linux includes optional Native IO support. However Native IO is mandatory on Windows and without it you will not be able to get your installation working. You must follow all the instructions from BUILDING.txt to ensure that Native IO support is built correctly.

Build and Copy the Package files

To build a binary distribution run the following command from the root of the source tree.

Note that this command must be run from a Windows SDK command prompt as documented in BUILDING.txt. A successful build generates a binary hadoop .tar.gz package in _hadoop-dist\target_.

The Hadoop version is present in the package file name. If you are targeting a different version then the package name will be different.

Installation

Pick a target directory for installing the package. We use c:\deploy as an example. Extract the tar.gz file (e.g.hadoop-2.5.0.tar.gz) under c:\deploy. This will yield a directory structure like the following. If installing a multi-node cluster, then repeat this step on every node.

Starting a Single Node (pseudo-distributed) Cluster

This section describes the absolute minimum configuration required to start a Single Node (pseudo-distributed) cluster and also run an example MapReduce job.

Example HDFS Configuration

Before you can start the Hadoop Daemons you will need to make a few edits to configuration files. The configuration file templates will all be found in c:\deploy\etc\hadoop, assuming your installation directory is c:\deploy.

First edit the file hadoop-env.cmd to add the following lines near the end of the file.

Edit or create the file core-site.xml and make sure it has the following configuration key:

Edit or create the file hdfs-site.xml and add the following configuration key:

Finally, edit or create the file slaves and make sure it has the following entry:

The default configuration puts the HDFS metadata and data files under \tmp on the current drive. In the above example this would be c:\tmp. For your first test setup you can just leave it at the default.

Example YARN Configuration

Edit or create mapred-site.xml under %HADOOP_PREFIX%\etc\hadoop and add the following entries, replacing %USERNAME% with your Windows user name.

Finally, edit or create yarn-site.xml and add the following entries:

Initialize Environment Variables

Run c:\deploy\etc\hadoop\hadoop-env.cmd to setup environment variables that will be used by the startup scripts and the daemons.

Format the FileSystem

Format the filesystem with the following command:

This command will print a number of filesystem parameters. Just look for the following two strings to ensure that the format command succeeded.

Start HDFS Daemons

Run the following command to start the Name<<`Node and Data>>`Node on localhost.

To verify that the HDFS daemons are running, try copying a file to HDFS.

Start YARN Daemons and run a YARN job

Finally, start the YARN daemons.

The cluster should be up and running! To verify, we can run a simple wordcount job on the text file we just copied to HDFS.

Multi-Node cluster

TODO: Document this

Conclusion

Caveats

The following features are yet to be implemented for Windows.

  • Hadoop Security
  • Short-circuit reads

Running Apache Hadoop 2.1.0 on Windows

I am new to Hadoop and have run into problems trying to run it on my Windows 7 machine. Particularly I am interested in running Hadoop 2.1.0 as its release notes mention that running on Windows is supported. I know that I can try to run 1.x versions on Windows with Cygwin or even use prepared VM by for example Cloudera, but these options are in some reasons less convenient for me.

Having examined a tarball from http://apache-mirror.rbc.ru/pub/apache/hadoop/common/hadoop-2.1.0-beta/ I found that there really are some *.cmd scripts that can be run without Cygwin. Everything worked fine when I formated HDFS partition but when I tried to run hdfs namenode daemon I faced two errors: first, non fatal, was that winutils.exe could not be found (it really wasn’t present in the tarball downloaded). I found the sources of this component in the Apache Hadoop sources tree and compiled it with Microsoft SDK and MSbuild. Thanks to detailed error message it was clear where to put the executable to satisfy Hadoop. But the second error which is fatal doesn’t contain enough information for me to solve:

Looks like something else should be compiled. I’m going to try to build Hadoop from the source with Maven but isn’t there a simpler way? Isn’t there some option-I-know-not-of that can disable native code and make that tarball usable on Windows?

UPDATED. Yes, indeed. «Homebrew» package contained some extra files, most importantly winutils.exe and hadoop.dll. With this files namenode and datanode started successfully. I think the question can be closed. I didn’t delete it in case someone face the same difficulty.

UPDATED 2. To build the «homebrew» package I did the following:

  1. Got sources, and unpacked them.
  2. Read carefully BUILDING.txt.
  3. Installed dependencies:
    3a) Windows SDK 7.1
    3b) Maven (I used 3.0.5) 3c) JDK (I used 1.7.25)
    3d) ProtocolBuffer (I used 2.5.0 — http://protobuf.googlecode.com/files/protoc-2.5.0-win32.zip). It is enough just to put compiler (protoc.exe) into some of the PATH folders.
    3e) A set of UNIX command line tools (I installed Cygwin)
  4. Started command line of Windows SDK. Start | All programs | Microsoft Windows SDK v7.1 | . Command Prompt (I modified this shortcut, adding option /release in the command line to build release versions of native code). All the next steps are made from inside SDK command line window)

Set up the environment:

It seems that JAVA_HOME MUST NOT contain space!

    Changed dir to sources root folder (BUILDING.txt warns that there are some limitations on the path length so sources root should have short name — I used D:\hds)

Ran building process:

mvn package -Pdist -DskipTests

You can try without ‘skipTests’ but on my machine some tests failed and building was terminated. It may be connected to sybolic link issues mentioned in BUILDING .txt. 8. Picked the result in hadoop-dist\target\hadoop-2.1.0-beta (windows executables and dlls are in ‘bin’ folder)

Настройка маленького кластера Hadoop 2.2.0 с нуля

В данной статье будет по шагам разобран процесс создания небольшого кластера Hadoop для опытов.

Несмотря на то, что в интернете на иностранных ресурсах есть полно материала про настройку/развертывание Hadoop, большинство из них либо описывают настройку ранних версий (0.X.X и 1.X.X), либо описывают только настройку в режиме single mode/pseudo distributed mode и лишь частично fully distributed mode. На русском языке материала практически нет вовсе.

Когда мне самому понадобился Hadoop, то я далеко не с первого раза смог все настроить. Материал был неактуален, часто попадались конфиги, которые используют deprecated параметры, поэтому использовать их нежелательно. А даже когда все настроил, то задавался многими вопросами, на которые искал ответы. Также встречались похожие вопросы у других людей.

Всем кому интересно, прошу пожаловать по кат.

Предварительные настройки

В качестве операционной системы для нашего кластера я предлагаю использовать Ubuntu Server 12.04.3 LTS, но при минимальных изменениях можно будет проделать все шаги и на другой ОС.

Все узлы будут работать на VirtualBox. Системные настройки для виртуальной машины я выставлял небольшие. Всего 8 GB пространства для жёсткого диска, одно ядро и 512 Мб памяти. Виртуальная машина также оснащена двумя сетевыми адаптерами: один NAT, а другой для внутренней сети.

После того, как была скачена и установлена операционная система, необходимо обновиться и установить ssh и rsync:

Для работы Hadoop можно использовать либо 6 или 7 версию.
В данной статье будем работать с OpenJDK 7 версии:

Хотя можно использовать версию от Oracle.

Очищаем ОС от всех зависимостей OpenJDK sudo apt-get purge openjdk*
Устанавливаем python-software-properties который позволит добавлять новые PPA:

Создание отдельной учетной записи для запуска Hadoop

Мы будем использовать выделенную учетную запись для запуска Hadoop. Это не обязательно, но рекомендуется. Также предоставим новому пользователю права sudo, чтобы облегчить себе жизнь в будущем.

Во время создания нового пользователя, необходимо будет ввести ему пароль.

/etc/hosts

Нам необходимо, чтобы все узлы могли легко обращаться друг к другу. В большом кластере желательно использовать dns сервер, но для нашей маленькой конфигурации подойдет файл hosts. В нем мы будем описывать соответствие ip-адреса узла к его имени в сети. Для одного узла ваш файл должен выглядеть примерно так:

Для управления узлами кластера hadoop необходим доступ по ssh. Для созданного пользователя hduser предоставить доступ к master.
Для начала необходимо сгенерировать новый ssh ключ:

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

Следующим шагом необходимо добавить созданный ключ в список авторизованных:

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

Отключение IPv6

Если не отключить IPv6, то в последствии можно получить много проблем.
Для отключения IPv6 в Ubuntu 12.04 / 12.10 / 13.04 нужно отредактировать файл sysctl.conf:

Добавляем следующие параметры:

Сохраняем и перезагружаем операционную систему.

Для того, чтобы отключить ipv6 только в hadoop можно добавить в файл etc/hadoop/hadoop-env.sh:

Установка Apache Hadoop

Скачаем необходимые файлы.
Актуальные версии фреймворка располагаются по адресу: www.apache.org/dyn/closer.cgi/hadoop/common

На момент декабря 2013 года стабильной версией является 2.2.0.

Создадим папку downloads в корневом каталоге и скачаем последнюю версию:

Распакуем содержимое пакета в /usr/local/, переименуем папку и выдадим пользователю hduser права создателя:

Обновление $HOME/.bashrc

Для удобства, добавим в .bashrc список переменных:

На этом шаге заканчиваются предварительные подготовки.

Настройка Apache Hadoop

Все последующая работа будет вестись из папки /usr/local/hadoop.
Откроем etc/hadoop/hadoop-env.sh и зададим JAVA_HOME.

Опишем, какие у нас будут узлы в кластере в файле etc/hadoop/slaves

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

Основные настройки системы располагаются в etc/hadoop/core-site.xml:

Настройки HDFS лежат в etc/hadoop/hdfs-site.xml:

Здесь параметр dfs.replication задает количество реплик, которые будут хранится на файловой системе. По умолчанию его значение равно

3. Оно не может быть больше, чем количество узлов в кластере.
Параметры dfs.namenode.name.dir и dfs.datanode.data.dir задают пути, где будут физически располагаться данные и информация в HDFS. Необходимо заранее создать папку tmp.

Сообщим нашему кластеру, что мы желаем использовать YARN. Для этого изменим etc/hadoop/mapred-site.xml:

Все настройки по работе YARN описываются в файле etc/hadoop/yarn-site.xml:

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

Запустим hadoop службы:

*В предыдущей версии Hadoop использовался скрипт sbin/start-all.sh, но с версии 2.*.* он объявлен устаревшим.

Необходимо убедиться, что запущены следующие java-процессы:

Протестировать работу кластера можно при помощи стандартных примеров:

Теперь у нас есть готовый образ, который послужит основой для создания кластера.

Далее можно создать требуемое количество копий нашего образа.

На копиях необходимо настроить сеть. Необходимо сгенерировать новые MAC-адреса для сетевых интерфейсов и выдать и на них необходимые ip-адреса. В моем примере я работаю с адресами вида 192.168.0.X.

Поправить файл /etc/hosts на всех узлах кластера так, чтобы в нем были прописаны все соответствия.

Для удобства, изменить имена новых узлов на slave1 и slave2.

Сгенерируйте на узлах новые SSH-ключи и добавьте их все в список авторизованных на узле master.

На каждом узле кластера изменим значения параметра dfs.replication в etc/hadoop/hdfs-site.xml. Например, выставим везде значение 3.

Добавим на узле master новые узлы в файл etc/hadoop/slaves:

Когда все настройки прописаны, то на главном узле можно запустить наш кластер.

На slave-узлах должны запуститься следующие процессы:

Теперь у нас есть свой мини-кластер.

Давайте запустим задачу Word Count.
Для этого нам потребуется загрузить в HDFS несколько текстовых файлов.
Для примера, я взял книги в формате txt с сайта Free ebooks — Project Gutenberg.

Перенесем наши файлы в HDFS:

Запустим Word Count:

Отслеживать работу можно через консоль, а можно через веб-интерфейс ResourceManager’а по адресу master:8088/cluster/apps/

По завершению работы, результат будет располагаться в папке /out в HDFS.
Для того, чтобы скачать его на локальную файловую систему выполним:

Если у вас возникнут вопросы, то задавайте их в комментариях.

Читают сейчас

Редакторский дайджест

Присылаем лучшие статьи раз в месяц

Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.

Похожие публикации

Apache Bigtop и выбор Hadoop-дистрибутива сегодня

Hadoop From Scratch

Data Lake – от теории к практике. Сказ про то, как мы строим ETL на Hadoop

Курсы

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Минуточку внимания

Комментарии 10

Как-то не круто. Если бы вы по итогу сделали контейнеры для docker и завершили статью словами о том, что мол запустите пару команд docker и мини кластер готов, то вот это было очень круто. А так нет.

PS Или для vagrant.

И зачем нам очередной оферхед от docker?
Особенно если учесть, что для разделения ресурсов внутри ноды cgroup можно использовать (в стандартной поставке уже все идет, 1 параметр в конфигах врубает его).

vargant это вообще в другую степь вас занесло.

для одного клика уже давно придуман Whirr: whirr.apache.org/
для тех кто хочет на голом железе разворачивать более удобным будет: cloudera manager & apache ambari

Для «мини кластер» имеется demo vm: скачал, запустил, тестируй
На данный момент это идеальный вариант для тех кто хочет просто посмотреть на свежую версию хадупа и пощупать ее.

>> то кластер создается для разработки

Каждый кто работал с хадупом знает, что кластер для разработки и для продакшена должен иметь хоть немного похожие машинки, в противном случае про разные извращения с оптимизацией придется забыть, в идеале это 2 одинаковых кластера, в худшем случае у вас такие же машинки, но их меньше. Кластер в виртуалбоксах на одной машине это из разряда фантастики, в этом случае 1 demo-vm c максимум ресурсов.

1) Несмотря на то, что в интернете на иностранных ресурсах есть полно материала про настройку/развертывание Hadoop, большинство из них либо описывают настройку ранних версий (0.X.X и 1.X.X)…

что клоудера уже давно hdfs 2.0 использует, а недавно и yarn по умолчанию включила,
что хортоны свою hdp-2.0 строят на второй ветке.

Пускай вас не пугает некоторая мешанина в версиях, обе эти компании являются наиболее активными разработчиками хадупа и в свои продукты бекпортят патчи которые шли еще только в альфу 2.x ветки. Если патч стабилен и является bugfix, то нечего ждать выхода 2.2.0, у клиентов проблемы и надо их решать.

2) Здесь параметр dfs.replication задает количество реплик, которые будут хранится на файловой системе. Оно не может быть больше, чем количество узлов в кластере.

да без проблем можно поставить сколько угодно много, например при создании har архивов по умолчанию в коде явно забито 20 реплик на индекс. Максимум что вы получите если узлов меньше чем уровень репликации, так это сообщение о том что некоторые блоки не дотягивают то установленного уровня репликации.

3) На каждом узле кластера изменим значения параметра dfs.replication в etc/hadoop/hdfs-site.xml

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

Читайте также:  Wifiphisher kali linux 2021
Оцените статью