Установка SparkR
У меня последняя версия R - 3.2.1. Теперь я хочу установить SparkR на R. После того, как я выполню:
> install.packages("SparkR")
Я вернулся:
Installing package into ‘/home/user/R/x86_64-pc-linux-gnu-library/3.2
(as ‘lib is unspecified)
Warning in install.packages :
package ‘SparkR is not available (for R version 3.2.1)
Я также установил Spark на мою машину
Spark 1.4.0
Как я могу решить эту проблему?
Ответы
Ответ 1
Вы можете установить прямо из репозитория GitHub:
if (!require('devtools')) install.packages('devtools')
devtools::install_github('apache/[email protected]', subdir='R/pkg')
Вы должны выбрать тег (v2.xx
выше), соответствующий версии Spark, которую вы используете. Вы можете найти полный список тегов на странице проекта или непосредственно из R, используя GitHub API:
jsonlite::fromJSON("https://api.github.com/repos/apache/spark/tags")$name
Если вы загрузили двоичный пакет со страницы загрузки, библиотека R находится в подкаталоге R/lib/SparkR
. Может использоваться для непосредственной установки SparkR
. Например:
$ export SPARK_HOME=/path/to/spark/directory
$ cd $SPARK_HOME/R/pkg/
$ R -e "devtools::install('.')"
Вы также можете добавить R lib в .libPaths
(взято отсюда):
Sys.setenv(SPARK_HOME='/path/to/spark/directory')
.libPaths(c(file.path(Sys.getenv('SPARK_HOME'), 'R', 'lib'), .libPaths()))
Наконец, вы можете использовать оболочку sparkR
без каких-либо дополнительных шагов:
$ /path/to/spark/directory/bin/sparkR
редактировать
В соответствии с Spark 2.1.0 Примечания к выпуску должны быть доступны на CRAN в будущем:
Автономный устанавливаемый пакет, собранный с выпуском Apache Spark. Мы скоро отправим это в CRAN.
Вы можете следить за SPARK-15799, чтобы проверить прогресс.
Редактировать 2
Несмотря на то, что SPARK-15799 был объединен, удовлетворение требований CRAN оказалось проблематичным (см., Например, обсуждение пунктов 2.2.2, 2.3.1, 2.4.0), и впоследствии пакеты были удалены (см., Например, SparkR был удален из CRAN. на 2018-05-01, удален пакет CRAN SparkR?). В результате методы, перечисленные в оригинальном посте, по-прежнему являются наиболее надежными решениями.
Редактировать 3
Хорошо, SparkR
снова вернулся на CRAN, v2.4.1. install.packages('SparkR')
должен снова работать (это может занять несколько дней, чтобы зеркала отразили это)
Ответ 2
SparkR требует не только R-пакета, но и всего Spark-бэкэнда. Если вы хотите обновить SparkR, вы обновляете Spark, а не только пакет R. Если вы хотите пойти с SparkR, то этот блогпост может помочь вам: https://blog.rstudio.org/2015/07/14/spark-1-4-for-rstudio/.
Следует сказать, что: в настоящее время вы можете обратиться к пакету sparklyr, поскольку это делает все это намного проще.
install.packages("devtools")
devtools::install_github("rstudio/sparklyr")
library(sparklyr)
spark_install(version = "1.6.2")
spark_install(version = "2.0.0")
Он также предлагает больше функциональности, чем SparkR, а также очень приятный интерфейс для dplyr
.
Ответ 3
Я также столкнулся с подобной проблемой, пытаясь играть с SparkR в EMR с помощью Spark 2.0.0. Я опубликую здесь шаги, которые я выполнил, чтобы установить сервер rstudio, SparkR, sparklyr и, наконец, подключиться к искровому сеансу в кластере EMR:
- Установить сервер rstudio:
После запуска и запуска кластера EMR ssh в master node с пользователем 'hadoop @' и загрузите сервер rstudio
wget https://download2.rstudio.org/rstudio-server-rhel-0.99.903-x86_64.rpm
затем установите с помощью yum install
sudo yum install --nogpgcheck rstudio-server-rhel-0.99.903-x86_64.rpm
наконец, добавьте пользователя для доступа к веб-консоли rstudio как:
sudo su
sudo useradd username
sudo echo имя пользователя: пароль | chpasswd
- Чтобы перейти на веб-консоль acess rstudio, вам необходимо создать туннель SSH с вашего компьютера на мастер EMR node, как показано ниже:
ssh -NL 8787: ec2-emr-master- node -ip.compute-1.amazonaws.com:8787 hadoop @ec2-emr-master- node -ip.compute-1.amazonaws.com &
-
Теперь откройте любой браузер и введите localhost:8787
, чтобы перейти в веб-консоль rstudio и использовать комманду username:password
для входа.
-
Чтобы установить необходимые R-пакеты, вам необходимо установить libcurl
в master node, как показано ниже:
Обновление sudo yum
sudo yum -y install libcurl-devel
- Разрешение проблем с разрешением:
sudo -u hdfs hadoop fs -mkdir/пользователь/
sudo -u hdfs hadoop fs -chown/user/
- Проверьте версию Spark в EMR и установите
SPARK_HOME
:
spark-submit --version
export SPARK_HOME = '/usr/lib/spark/'
- Теперь в консоли rstudio установите
SparkR
, как показано ниже:
install.packages( 'DevTools')
devtools:: install_github ('apache/[email protected] ', subdir =' R/pkg ')
install.packages( 'sparklyr')
Библиотека (SparkR)
Библиотека (sparklyr)
Sys.setenv(SPARK_HOME = '/USR/Library/искровым')
sc < - spark_connect (master = "нить-клиент" )
Ответ 4
Теперь версии 2.1.2 и 2.3.0 SparkR теперь доступны в репозитории CRAN, вы можете установить версию 2.3.0 следующим образом:
install.packages("https://cran.r-project.org/src/contrib/Archive/SparkR/SparkR_2.3.0.tar.gz", repos = NULL, type="source")
Примечание. Сначала необходимо загрузить и установить соответствующую версию Apache Spark из загрузки, чтобы пакет работал правильно.