Apache spark for windows

Содержание
  1. Spark Overview
  2. Security
  3. Downloading
  4. Running the Examples and Shell
  5. Launching on a Cluster
  6. Where to Go from Here
  7. Предварительные требования Prerequisites
  8. Построение Build
  9. Подготовка среды Prepare your environment
  10. 2. Установка Java 2. Install Java
  11. 3. Установка ПО для сжатия 3. Install compression software
  12. 4. Установка Apache Spark 4. Install Apache Spark
  13. 6. Установка WinUtils (только для Windows) 6. Install WinUtils (Windows only)
  14. 7. Установка DOTNET_WORKER_DIR и проверка зависимостей 7. Set DOTNET_WORKER_DIR and check dependencies
  15. 1. Создание консольного приложения 1. Create a console app
  16. 2. Установка пакета NuGet 2. Install NuGet package
  17. 3. Написание приложения 3. Write your app
  18. 4. Создание файла данных 4. Create data file
  19. Следующие шаги Next steps
  20. Apache Spark on Windows
  21. If you were confused by Spark’s quick-start guide, this article contians resolutions to the more common errors encountered by developers.
  22. A Spark Application
  23. Download and Install Spark
  24. Clearing the Startup Hurdles
  25. Issue 1: Failed to Locate winutils Binary
  26. Issue 2: File Permission Issue for /tmp/hive
  27. Issue 3: Failed to Start Database «metastore_db»
  28. Run Spark Application on spark-shell
  29. Run Spark Application on spark-submit
  30. Apache Spark: гайд для новичков
  31. Что такое Apache Spark?
  32. Что такое большие данные?
  33. Причины использовать Spark
  34. Apache Spark или Hadoop MapReduce…Что вам подходит больше?
  35. Скорость
  36. Просто пользоваться
  37. Обработка больших наборов данных
  38. Функциональность
  39. А вот и визуальный итог множества возможностей Spark и его совместимости с другими инструментами обработки больших данных и языками программирования:
  40. Заключение

Spark Overview

Apache Spark is a unified analytics engine for large-scale data processing. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Structured Streaming for incremental computation and stream processing.

Security

Security in Spark is OFF by default. This could mean you are vulnerable to attack by default. Please see Spark Security before downloading and running Spark.

Downloading

Get Spark from the downloads page of the project website. This documentation is for Spark version 3.1.1. Spark uses Hadoop’s client libraries for HDFS and YARN. Downloads are pre-packaged for a handful of popular Hadoop versions. Users can also download a “Hadoop free” binary and run Spark with any Hadoop version by augmenting Spark’s classpath. Scala and Java users can include Spark in their projects using its Maven coordinates and Python users can install Spark from PyPI.

If you’d like to build Spark from source, visit Building Spark.

Spark runs on Java 8/11, Scala 2.12, Python 3.6+ and R 3.5+. Java 8 prior to version 8u92 support is deprecated as of Spark 3.0.0. For the Scala API, Spark 3.1.1 uses Scala 2.12. You will need to use a compatible Scala version (2.12.x).

Running the Examples and Shell

Spark comes with several sample programs. Scala, Java, Python and R examples are in the examples/src/main directory. To run one of the Java or Scala sample programs, use bin/run-example [params] in the top-level Spark directory. (Behind the scenes, this invokes the more general spark-submit script for launching applications). For example,

You can also run Spark interactively through a modified version of the Scala shell. This is a great way to learn the framework.

Spark also provides a Python API. To run Spark interactively in a Python interpreter, use bin/pyspark :

Example applications are also provided in Python. For example,

Spark also provides an R API since 1.4 (only DataFrames APIs included). To run Spark interactively in an R interpreter, use bin/sparkR :

Example applications are also provided in R. For example,

Launching on a Cluster

The Spark cluster mode overview explains the key concepts in running on a cluster. Spark can run both by itself, or over several existing cluster managers. It currently provides several options for deployment:

Where to Go from Here

Programming Guides:

API Docs:

Deployment Guides:

Other Documents:

External Resources:

Источник

Предварительные требования Prerequisites

Если у вас уже есть все перечисленные ниже компоненты, перейдите к сборке. If you already have all of the following prerequisites, skip to the build steps.

Установите Visual Studio 2019 16.3 или более поздней версии. Install Visual Studio 2019 (Version 16.3 or later). Версия Community предоставляется бесплатно. The Community version is completely free. При настройке установки включите по меньшей мере следующие компоненты: When configuring your installation, include these components at minimum:

Добавьте Apache Spark в переменную среды PATH. Add Apache Spark to your PATH environment variable. Например, C:\bin\spark-3.0.1-bin-hadoop2.7\bin. For example, C:\bin\spark-3.0.1-bin-hadoop2.7\bin.

Убедитесь в том, что можно выполнить команду spark-shell в командной строке. Verify you are able to run spark-shell from your command-line. Пример выходных данных в консоли. Sample console output:

Скачайте двоичный файл winutils.exe из репозитория WinUtils. Download winutils.exe binary from WinUtils repository. Выберите версию Hadoop, с использованием которой был скомпилирован дистрибутив Spark. You should select the version of Hadoop the Spark distribution was compiled with. Например, для Spark 3.0.1 используйте hadoop-2.7.1. For exammple, use hadoop-2.7.1 for Spark 3.0.1.

Читайте также:  Kotor 2 для виндовс 10

Сохраните двоичный файл winutils.exe в любом каталоге по своему выбору. Save winutils.exe binary to a directory of your choice. Например, C:\hadoop\bin. For example, C:\hadoop\bin.

Включите в переменную среды HADOOP_HOME путь к каталогу с файлом winutils.exe (без строки bin). Set HADOOP_HOME to reflect the directory with winutils.exe (without bin). Например, выполните такую команду в командной строке: For instance, using command-line:

После обновления переменных среды, возможно, потребуется открыть новый экземпляр командной строки. A new instance of the command line may be required if any environment variables were updated.

Построение Build

Здесь должны быть JAR-файлы, созданные для поддерживаемых версий Spark: You should see JARs created for the supported Spark versions:

После успешной сборки вы увидите двоичные файлы, созданные в выходном каталоге. Once the build is successful, you will see the appropriate binaries produced in the output directory. Пример выходных данных в консоли. Sample console output:

Скомпилируйте рабочую роль: Build the worker:

Пример выходных данных в консоли. Sample console output:

Скомпилируйте примеры: Build the samples:

Пример выходных данных в консоли. Sample console output:

Приложение запускается по единой общей схеме. Running your app follows the basic structure:

Вот несколько примеров, которые вы можете выполнить: Here are some examples you can run:

Источник

В этом руководстве вы узнаете, как: In this tutorial, you learn how to:

Подготовка среды Prepare your environment

2. Установка Java 2. Install Java

Установите Java 8.1 для Windows и macOS или OpenJDK 8 для Ubuntu. Install Java 8.1 for Windows and macOS, or OpenJDK 8 for Ubuntu.

3. Установка ПО для сжатия 3. Install compression software

4. Установка Apache Spark 4. Install Apache Spark

Скачайте и установите Apache Spark. Download and install Apache Spark. Вам потребуется выбрать одну из следующих версий: 2.3.* либо 2.4.0, 2.4.1, 2.4.3, 2.4.4, 2.4.5, 2.4.6, 2.4.7, 3.0.0 или 3.0.1 (.NET для Apache Spark несовместима с другими версиями Apache Spark). You’ll need to select from version 2.3.* or 2.4.0, 2.4.1, 2.4.3, 2.4.4, 2.4.5, 2.4.6, 2.4.7, 3.0.0, or 3.0.1 (.NET for Apache Spark is not compatible with other versions of Apache Spark).

Команды, используемые на следующих этапах, подразумевают, что скачана и установлена версия Apache Spark 3.0.1. The commands used in the following steps assume you have downloaded and installed Apache Spark 3.0.1. Если вы хотите использовать другую версию, замените 3.0.1 на соответствующий номер версии. If you wish to use a different version, replace 3.0.1 with the appropriate version number. Затем извлеките файл TAR и файлы Apache Spark. Then, extract the .tar file and the Apache Spark files.

Чтобы извлечь вложенный файл TAR: To extract the nested .tar file:

Чтобы извлечь файлы Apache Spark: To extract the Apache Spark files:

Выполните следующие команды, чтобы задать переменные среды, используемые для размещения Apache Spark. Run the following commands to set the environment variables used to locate Apache Spark. В Windows обязательно запускайте командную строку от имени администратора. On Windows, make sure to run the command prompt in administrator mode.

Установив все необходимое и задав переменные сред, откройте новое окно командной строки или терминала и выполните следующую команду: Once you’ve installed everything and set your environment variables, open a new command prompt or terminal and run the following command:

Если команда выполняется и выводит сведения о версии, можно перейти к следующему шагу. If the command runs and prints version information, you can move to the next step.

При возникновении ошибки ‘spark-submit’ is not recognized as an internal or external command убедитесь, что вы открыли новую командную строку. If you receive a ‘spark-submit’ is not recognized as an internal or external command error, make sure you opened a new command prompt.

Для извлечения Microsoft.Spark.Worker: To extract the Microsoft.Spark.Worker:

6. Установка WinUtils (только для Windows) 6. Install WinUtils (Windows only)

Если вы используете другую версию Hadoop, которая указывается в конце имени папки установки Spark, выберите версию WinUtils, совместимую с вашей версией Hadoop. If you are using a different version of Hadoop, which is annotated at the end of your Spark install folder name, select the version of WinUtils that’s compatible with your version of Hadoop.

7. Установка DOTNET_WORKER_DIR и проверка зависимостей 7. Set DOTNET_WORKER_DIR and check dependencies

1. Создание консольного приложения 1. Create a console app

В командной строке или терминале выполните следующие команды, чтобы создать новое консольное приложение: In your command prompt or terminal, run the following commands to create a new console application:

2. Установка пакета NuGet 2. Install NuGet package

Для работы с этим руководством используйте последнюю версию пакета NuGet Microsoft.Spark (если не указано иное). This tutorial uses the latest version of the Microsoft.Spark NuGet package unless otherwise specified.

Читайте также:  Kms service start error windows 10

3. Написание приложения 3. Write your app

Откройте Program.cs в Visual Studio Code или любом текстовом редакторе и замените весь код следующим: Open Program.cs in Visual Studio Code, or any text editor, and replace all of the code with the following:

4. Создание файла данных 4. Create data file

Ваше приложение обрабатывает файл, содержащий строки текста. Your app processes a file containing lines of text. В каталоге MySparkApp создайте файл input.txt, содержащий следующий текст: Create a file called input.txt file in your MySparkApp directory, containing the following text:

Сохраните изменения и закройте файл. Save the changes and close the file.

Запустите сборку приложения с помощью следующей команды: Run the following command to build your application:

with the path of your input.txt file is stored.

/spark/bin/spark-submit). Otherwise, you’d have to use the full path (for example, C:\bin\apache-spark\bin\spark-submit or

При запуске приложения данные подсчета слов из файла input.txt записываются в консоль. When your app runs, the word count data of the input.txt file is written to the console.

Следующие шаги Next steps

В этом руководстве вы узнали, как выполнять следующие задачи: In this tutorial, you learned how to:

Дополнительные сведения см. на странице ресурсов. Check out the resources page to learn more.

Источник

Apache Spark on Windows

If you were confused by Spark’s quick-start guide, this article contians resolutions to the more common errors encountered by developers.

Join the DZone community and get the full member experience.

This article is for the Java developer who wants to learn Apache Spark but don’t know much of Linux, Python, Scala, R, and Hadoop. Around 50% of developers are using Microsoft Windows environment for development, and they don’t need to change their development environment to learn Spark. This is the first article of a series, «Apache Spark on Windows», which covers a step-by-step guide to start the Apache Spark application on Windows environment with challenges faced and thier resolutions.

A Spark Application

A Spark application can be a Windows-shell script or it can be a custom program in written Java, Scala, Python, or R. You need Windows executables installed on your system to run these applications. Scala statements can be directly entered on CLI «spark-shell»; however, bundled programs need CLI «spark-submit.» These CLIs come with the Windows executables.

Download and Install Spark

Download Spark from https://spark.apache.org/downloads.html and choose «Pre-built for Apache Hadoop 2.7 and later»

Unpack spark-2.3.0-bin-hadoop2.7.tgz in a directory.

Clearing the Startup Hurdles

You may follow the Spark’s quick start guide to start your first program. However, it is not that straightforward, andyou will face various issues as listed below, along with their resolutions.

Please note that you must have administrative permission to the user or you need to run command tool as administrator.

Issue 1: Failed to Locate winutils Binary

Even if you don’t use Hadoop, Windows needs Hadoop to initialize the «hive» context. You get the following error if Hadoop is not installed.

This can be fixed by adding a dummy Hadoop installation. Spark expects winutils.exe in the Hadoop installation » /bin/winutils.exe» (note the «bin» folder).

Download Hadoop 2.7’s winutils.exe and place it in a directory C:\Installations\Hadoop\bin

Now set HADOOP_HOME = C:\Installations\Hadoop environment variables.

Now start the Windows shell; you may get few warnings, which you may ignore for now.

Issue 2: File Permission Issue for /tmp/hive

Let’s run the first program as suggested by Spark’s quick start guide. Don’t worry about the Scala syntax for now.

You may ignore plugin’s warning for now, but «/tmp/hive on HDFS should be writable» should be fixed.

This can be fixed by changing permissions on «/tmp/hive» (which is C:/tmp/hive) directory using winutils.exe as follows. You may run basic Linux commands on Windows using winutils.exe.

Issue 3: Failed to Start Database «metastore_db»

If you run the same command » val textFile = spark.read.textFile(«README.md») » again you may get following exception :

This can be fixed just be removing the «metastore_db» directory from Windows installation «C:/Installations/spark-2.3.0-bin-hadoop2.7» and running it again.

Run Spark Application on spark-shell

Run your first program as suggested by Spark’s quick start guide.

DataSet: ‘org.apache.spark.sql.Dataset’ is the primary abstraction of Spark. Dataset maintains a distributed collection of items. In the example below, we will create Dataset from a file and perform operations on it.

SparkSession: This is entry point to Spark programming. ‘org.apache.spark.sql.SparkSession’.

Start the spark-shell.

Run Spark Application on spark-submit

In the last example, we ran the Windows application as Scala script on ‘spark-shell’, now we will run a Spark application built in Java. Unlike spark-shell, we need to first create a SparkSession and at the end, the SparkSession must be stopped programmatically.

Look at the below SparkApp.Java it read a text file and then count the number of lines.

Читайте также:  Conexant isst audio driver windows 10

Create above Java file in a Maven project with following pom dependencies :

Build the Maven project it will generate jar artifact «target/spark-test-0.0.1-SNAPSHOT.jar»

Now submit this Windows application to Windows as follows: (Excluded some logs for clarity)

Congratulations! You are done with your first Windows application on Windows environment.

In the next article, we will talk about Spark’s distributed caching and how it works with real-world examples in Java. Happy Learning!

Opinions expressed by DZone contributors are their own.

Источник

Apache Spark: гайд для новичков

Что такое Apache Spark?

Специалисты компании Databricks, основанной создателями Spark, собрали лучшее о функционале Apache Spark в своей книге Gentle Intro to Apache Spark (очень рекомендую прочитать):

“Apache Spark — это целостная вычислительная система с набором библиотек для параллельной обработки данных на кластерах компьютеров. На данный момент Spark считается самым активно разрабатываемым средством с открытым кодом для решения подобных задач, что позволяет ему быть полезным инструментом для любого разработчика или исследователя-специалиста, заинтересованного в больших данных. Spark поддерживает множество широко используемых языков программирования (Python, Java, Scala и R), а также библиотеки для различных задач, начиная от SQL и заканчивая стримингом и машинным обучением, а запустить его можно как с ноутбука, так и с кластера, состоящего из тысячи серверов. Благодаря этому Apache Spark и является удобной системой для начала самостоятельной работы, перетекающей в обработку больших данных в невероятно огромных масштабах.

Что такое большие данные?

Посмотрим-ка на популярное определение больших данных по Гартнеру. Это поможет разобраться в том, как Spark способен решить множество интересных задач, которые связаны с работой с большими данными в реальном времени:

“Большие данные — это информационные активы, которые характеризуются большим объёмом, высокой скоростью и/или многообразием, а также требуют экономически эффективных инновационных форм обработки информации, что приводит к усиленному пониманию, улучшению принятия решений и автоматизации процессов.”

Заметка: Ключевой вывод — слово “большие” в больших данных относится не только к объёму. Вы не просто получаете много данных, они поступают в реальном времени очень быстро и в различных комплексных форматах, а ещё — из большого многообразия источников. Вот откуда появились 3-V больших данных: Volume (Объём), Velocity (Скорость), Variety (Многообразие).

Причины использовать Spark

Основываясь на самостоятельном предварительном исследовании этого вопроса, я пришёл к выводу, что у Apache Spark есть три главных компонента, которые делают его лидером в эффективной работе с большими данными, а это мотивирует многие крупные компании работать с большими наборами неструктурированных данных, чтобы Apache Spark входил в их технологический стек.

Apache Spark или Hadoop MapReduce…Что вам подходит больше?

Если отвечать коротко, то выбор зависит от конкретных потребностей вашего бизнеса, естественно. Подытоживая свои исследования, скажу, что Spark выбирают в 7-ми из 10-ти случаев. Линейная обработка огромных датасетов — преимущество Hadoop MapReduce. Ну а Spark знаменит своей быстрой производительностью, итеративной обработкой, аналитикой в режиме реального времени, обработкой графов, машинным обучением и это ещё не всё.

Хорошие новости в том, что Spark полностью совместим с экосистемой Hadoop и работает замечательно с Hadoop Distributed File System (HDFS — Распределённая файловая система Hadoop), а также с Apache Hive и другими похожими системами. Так что, когда объёмы данных слишком огромные для того, чтобы Spark мог удержать их в памяти, Hadoop может помочь преодолеть это затруднение при помощи возможностей его файловой системы. Привожу ниже пример того, как эти две системы могут работать вместе:

Это изображение наглядно показывает, как Spark использует в работе лучшее от Hadoop: HDFS для чтения и хранения данных, MapReduce — для дополнительной обработки и YARN — для распределения ресурсов.

Дальше я пробую сосредоточиться на множестве преимуществ Spark перед Hadoop MapReduce. Для этого я сделаю краткое поверхностное сравнение.

Скорость

Просто пользоваться

Обработка больших наборов данных

Функциональность

Apache Spark — неизменный победитель в этой категории.Ниже я даю список основных задач по анализу больших данных, в которых Spark опережает Hadoop по производительности:

Машинное обучение. В Spark есть MLlib — встроенная библиотека машинного обучения, а вот Hadoop нужна третья сторона для такого же функционала. MLlib имеет алгоритмы “out-of-the-box” (возможность подключения устройства сразу после того, как его достали из коробки, без необходимости устанавливать дополнительное ПО, драйверы и т.д.), которые также реализуются в памяти.

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

Заключение

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

Для тех, кому интересно погрузиться глубоко в технологию, которая стоит за всеми этими внешними функциями, почитайте книгу Databricks — “A Gentle Intro to Apache Spark” или “Big Data Analytics on Apache Spark”.

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector