Установка Spark NLP в Windows, Linux и Google Colab

В прошлой статье мы говорили о преимуществах Spark NLP. Сегодня рассмотрим, как установить Spark NLP и PySpark в Windows, Linux (Ubuntu) и Google Colab. В этой статье мы шаг за шагом разберем ход установки не только самой библиотеки, но и самого фреймворка Apache Spark на разных операционных системах.

Установка Spark NLP на Windows

Установка Apache Spark и Spark NLP в Windows потребует немного времени и сил, что не скажешь о Unix-системах. Нужно будет скачать соответствующие программы и установить переменные окружения.

Установка Apache Spark и Java

Если у вас не стоит Java 8, то скачиваете и устанавливаете OpenJDK 64-bit отсюда. При установке убедитесь, что переменная среды JAVA_HOME задана. В любом случае нужно будет проверить все переменные среды, если их не будет, то зададим вручную.

Скачайте winutils отсюда и положите файл в директорию C:\hadoop\bin. Если такой директории нет, то создайте.

Скачайте Apache Spark 2.4.7 отсюда и извлеките в директорию C так, что получится C:\spark-2.4.7-bin-hadoop2.7.

Также может понадобится пакет vcredist_x64.exe со страницы Microsoft. Его нужно просто установить.

Определение переменных окружения

Переменные среды (environment variable) нужны для того, чтобы вы в командной строке могли запускать программы. Если вы можете запустить, например, Python в командной строке, значит в переменной среды PATH задан путь до выполняемой программы Python.

Чтобы установить переменные окружения можете использовать Поиск и ввести “переменные среды” (если система на английском, то “environment variables”). Там вам нужно будет добавить системные переменные среды.

Нужно установить две системные переменные HADOOP_HOME и SPARK_HOME, которые равны соответственно C:\hadoop и C:\spark-2.4.7-bin-hadoop2.7 (см. рисунок ниже).

Переменные среды SPARK_HOME
Установка переменной среды SPARK_HOME

После этого нужно добавить пути до самих программ. Для этого в списке системных переменных найдите PATH, нажмите редактировать и добавьте %HADOOP_HOME%\bin и %SPARK_HOME%\bin, как это показано на рисунке ниже.

Добавление SPARK_HOME и HADOOP_HOME
Добавление новых путей до Spark и Hadoop

Также убедитесь, что у вас есть переменная JAVA_HOME и в пути стоит %JAVA_HOME%\bin. Если нет, то сделайте это вручную. По умолчанию после установки директория Java обычно находится в Program Files, поэтому переменная будет C:\Program Files\java.

Также нужно создать директории C:\temp и C:\temp\hive. Затем в командной строке вводите следующее (это разрешение на использование директории для всех пользователей):

%HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/
%HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive

Проверка работы установленных программ

Чтобы убедиться что все работает в командной строке можете ввести следующие команды:

java -version
pyspark --version

Каждая из них выдаст свою версию. Нечто подобное для Java:

openjdk version "16" 2021-03-16
OpenJDK Runtime Environment (build 16+36-2231)
OpenJDK 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)

И для PySpark:

version 2.4.7
Using Scala version 2.11.12, OpenJDK Client VM, 1.8.0_41

Осталось только установить Spark NLP.

Установка Spark NLP

В той же командной строке установите Spark NLP, findspark и numpy (если его нет). Тут уже в зависимости каким пакетным менеджером вы пользуетесь: conda или pip. Через Pip установка Spark NLP выглядит слеующим образом:

pip install spark-nlp==2.7.5 findspark numpy

для Anaconda или Miniconda две команды:

conda install -c johnsnowlabs spark-nlp
conda install -c conda-forge findspark numpy

Пакет findspark найдет Spark на компьютере, иначе бы мы не смоги импортировать pyspark.

На этом все. Можете запустить Python и проверить работоспособность установленных библиотек:

import findspark
findsaprk.init()
import sparknlp

spark = sparknlp.start()

Установка Spark NLP на Ubuntu Linux

OpenJDK 8 есть в стандартных пакетах многих дистрибутивов, включая Ubuntu, Debian и Arch. А вот Spark придется качать вручную (можно через wget или curl). Иными словами, установить все необходимое можно, не выходя из эмулятора терминала.

Следующие команды установят OpenJDK, скачают архив Spark, разорхивирует его в созданной папке spark:

apt-get install -y openjdk-8-jdk-headless
mkdir spark
cd spark
wget https://www.apache.org/dyn/closer.lua/spark/spark-2.4.7/spark-2.4.7-bin-hadoop2.7.tgz
tar -xzvf spark-2.4.7-bin-hadoop2.7.tgz

Через команндую строку можем добавить переменные среды. Запишем их в файл .profile (можно также использовать .bashrc):

echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> ~/.profile
echo "export PATH=$PATH:$JAVA_HOME/bin" >> ~/.profile
echo "export SPARK_HOME=~/spark" >> ~/.profile
echo "export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin" >> ~/.profile
echo "export PYSPARK_PYTHON=python3" >> ~/.profile
echo "export PYSPARK_DRIVER_PYTHON=jupyter" >> ~/.profile
echo "export PYSPARK_DRIVER_PYTHON_OPTS=notebook" >> ~/.profile

Установка пакетов Spark NLP осуществляется также, как это указано выше.

Ленивый способ — Google Colab

Если вы не хотите ничего устанавливать у себя на компьютере, то вы можете воспользоваться Google Colab. Там тоже стоит Ubuntu, но все делается гораздо проще.

В свою первую ячейку Google Colab скопируйте следующие строки:

!apt-get install -y openjdk-8-jdk-headless -qq > /dev/null
!pip install -q pyspark==2.4.7
!pip install -q spark-nlp==2.7.5

import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["PATH"] = os.environ["JAVA_HOME"] + "/bin:" + os.environ["PATH"]

И все. Можете работать с PySpark и Spark NLP, тренировать модели, эксплуатировать GPU. О том, что такое Google Colab и как в нем работать смотрите видеоролик ниже.

Еще больше подробностей о работе в Apache Spark с обучением на реальных примерах Data Science вы узнаете на специализированном курсе «Основы Apache Spark для разработчиков» в лицензированном учебном центре обучения и повышения квалификации разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве.

Записаться на курс

Смотреть раcписание

Добавить комментарий

Поиск по сайту