Главная страница Новости кинофильмов Игровые новости Новости спорта Новости технологий

Hadoop и R с помощью RHadoop

Новости

RHadoop — это мост между R, языком и средой для статистического изучения наборов данных, и Hadoop, платформой, которая позволяет распределять обработку больших наборов данных между кластерами компьютеров. RHadoop построен из 3 компонентов, которые являются R-пакетами: rmr, rhdfs и rhbase. Ниже мы представим каждый из этих R-пакетов и расскажем об их установке и базовом использовании.

Примечание: Эта статья была обновлена 2 августа 2012 года, чтобы отразить версию 1.3.1 rmr и версию 1.0.4 rhdfs.

rmr

Пакет rmr предлагает функциональные возможности Hadoop MapReduce на R. Для пользователей Hadoop написание программ MapReduce на R может показаться более простым, производительным и элегантным с гораздо меньшим количеством кода чем в Java, и более простое развертывание. Это здорово для создания прототипов и проведения исследований. Для пользователей R это открывает двери в программирование на MapReduce и доступ к анализу больших данных.

Пакет rmr не должен рассматриваться как потоковый Hadoop, даже если внутри он использует потоковую архитектуру. Вы можете выполнять потоковую передачу в Hadoop с помощью R без использования каких-либо из этих пакетов, поскольку язык поддерживает стандартный ввод и вывод по стандарту. Кроме того, программы rmr не должны быть более эффективными, чем программы, написанные на Java и других языках.

Наконец, из вики:

rmr не предоставляет сокращенную версию ни одного из более чем 3000 пакетов, доступных для R. Это не решает проблему параллельного программирования. Вам все равно придется писать параллельные алгоритмы для любой задачи, которую вам нужно решить, но вы можете сосредоточиться только на интересных аспектах. Считается, что некоторые задачи не поддаются параллельному решению, и использование парадигмы map reduce или rmr не создает исключений.

rhdfs

Пакет rhdfs обеспечивает базовое подключение к распределенной файловой системе Hadoop. Он поставляется с удобными функциями для просмотра, чтения, записи и изменения файлов, хранящихся в формате HDFS.

rhbase

Пакет rhbase обеспечивает базовое подключение к HBase. Он поставляется с удобными функциями для просмотра, чтения, записи и изменения таблиц, хранящихся в HBASE.

Установка

В вашем распоряжении должна быть рабочая установка Hadoop. Он рекомендован и протестирован с дистрибутивом Cloudera CDH3. Обратитесь к RHadoop wiki для альтернативной установки и дальнейшего развития. На момент написания этой статьи дистрибутив Cloudera CDH4 еще не был совместим и документально подтвержден как находящийся в стадии разработки. Необходимо запустить все распространенные службы Hadoop, а также сервер HBase Thrift на случай, если вы захотите протестировать rhbase.

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

Зависимость от бережливости

Обратите внимание, что, если мне не изменяет память, также может потребоваться maven (apt-get install maven2).

apt-получить установку libboost-dev libevent-dev libtool flex bison g++ automake pkg-config apt-получить установку libboost-test-dev apt-получить установку libmono-dev ruby1.8-dev libcommons-lang-java php5-dev cd /tmp curl. http://apache.multidist.com/thrift/0.8.0/thrift-0.8.0.tar.gz | смола zx cd thrift-0.8.0./configure make make install rm -rf thrift-0.8.0

R зависимости от установки, среды и пакета

# R установка apt-получить r-базовый # внешний репозиторий пакетов, перейдите на сайт R, чтобы найти ближайшее к вам местоположение echo ‘options(repos=structure(c(CRAN=»http://cran.fr.r-project.org»)))’ >> /etc/R/Rprofile.сайт # Глобальная переменная Java cat > /etc/profile.d/java.sh < /etc/profile.d/r.sh <rmr

cd /tmp curl -L https://github.com/downloads/RevolutionAnalytics/RHadoop/rmr_1.3.1.tar.gz -o rmr_1.3.1.tar.gz Команда R УСТАНОВИТЬ rmr rmr_1.3.1.tar.gz rm -rf rmr_1.3.1.tar.gz

rhdfs

cd /tmp curl -L http://github.com/downloads/RevolutionAnalytics/RHadoop/rhdfs_1.0.4.tar.gz -o rhdfs_1.0.4.tar.gz КОМАНДА R УСТАНОВИТЬ rhdfs rhdfs_1.0.4.tar.gz rm -rf rhdfs_1.0.4.tar.gz <идентификатор h3="rhbase-1" style="позиция:относительная;">rhbase

cd /tmp # Проверка бережливости # pkg-config —cflags thrift | grep -I/usr/local/include/thrift cp /usr/local/lib/libthrift-0.8.0.so /usr/lib/# Скомпилируйте rhbase curl -L https://github.com/downloads/RevolutionAnalytics/RHadoop/rhbase_1.0.4.tar.gz -o rhbase_1.0.4.tar.gz R CMD УСТАНОВИТЕ rhbase rhbase_1.0.4.tar.gz rm -rf rhbase_1.0.4.tar.gz

Использование

Теперь мы готовы протестировать нашу установку. Давайте воспользуемся вторым примером, представленным в руководстве RHadoop wiki. Этот пример начинается со стандартного скрипта R, который генерирует список значений и подсчитывает их вхождения:

groups = rbinom(100, n = 500, вероятность = 0,5), затем он преобразует последний скрипт в масштабируемый скрипт MapReduce:

требуется(‘rmr’) группы = rbinom(100, n = 500, вероятность = 0,5) группы = to.dfs(группы) результат = mapreduce( ввод = группы, карта = функция(k,v) значение ключа(v, 1), уменьшить = функция(k,vv) keyval(k, длина(vv)))

Результат теперь хранится в папке «/tmp» в HDFS. Вот две команды для вывода пути к файлу и содержимого файла:

# Вывести путь к файлу HDFS на печать(результат()) # Показать содержимое файла на печать(из.dfs(результат, в.data.frame=T))


Другие новости: