Как настроить Windows для создания проекта с кодом Apache Spark без его установки?

Опубликовано: 18 Февраля, 2022

Apache Spark - это единый аналитический движок, который используется для обработки крупномасштабных данных. Apache Spark предоставляет функциональные возможности для подключения к другим языкам программирования, таким как Java, Python, R и т. Д., С помощью API. Он обеспечивает простой способ настройки с другой IDE, а также для выполнения наших задач в соответствии с вашими требованиями. Он поддерживает такие инструменты, как Spark SQL для SQL, GraphX для обработки графиков, MLlib для машинного обучения и т. Д.

Здесь вы увидите, как мы можем настроить Scala IDE для выполнения кода Apache Spark. И вы сможете научиться настраивать SparkProject в ScalaIDE без явной установки Hadoop и Spark в вашей системе. Мы подробно обсудим каждый шаг, и вы сможете выполнить настройку с помощью этих шагов. Кроме того, мы рассмотрим необходимую зависимость для настройки, и мы также рассмотрим, какие предварительные условия потребуются для настройки Scala IDE. Здесь мы обсудим и реализуем все шаги в Scala IDE. Но эти шаги могут быть выполнены и в любой другой среде IDE. Если вы хотите настроить это в Eclipse IDE, то те же шаги могут быть выполнены и в Eclipse IDE.

Вступление

  • Spark - это распределенная среда обработки больших данных с открытым исходным кодом, разработанная AMPLab, Калифорнийским университетом в 2009 году.
  • Позже Spark был подарен Apache Software Foundation. Теперь он поддерживается Apache Foundation.
  • Spark - это основной механизм обработки больших данных, написанный на языке программирования Scala.
  • Изначально в Hadoop была модель обработки MapReduce (основанная на языке программирования Java).
  • Spark Framework поддерживает языки программирования Java, Scala, Python и R.

В зависимости от типа данных и функциональности Spark имеет другой API для обработки, а именно:

  • Базовым строительным блоком Spark является ядро Spark.
  • Spark предоставляет SparkSQL для анализа структурированных и полуструктурированных данных, который основан на DataFrame и Dataset.
  • Для потоковой передачи данных Spark имеет API-интерфейсы потоковой передачи Spark.
  • Для реализации алгоритма машинного обучения Spark предоставляет MLib, то есть платформу распределенного машинного обучения.
  • Данные графиков можно эффективно обрабатывать с помощью GraphX, т. Е. Распределенной среды обработки графиков.

SparkSQL, Spark Streaming, MLib и GraphX основаны на основных функциях Spark и основаны на концепции RDD, т. Е. Устойчивого распределенного набора данных. RDD - это неизменяемая коллекция набора данных распределенных разделов, которая хранится на узлах данных в кластере Hadoop.

Предпосылка:

  1. Джава. Убедитесь, что в вашей системе установлена Java.
  2. Scala IDE / Eclipse / Intellij IDEA: вы можете использовать любой из них, в зависимости от того, с чем вы знакомы. Здесь вы увидите Scala IDE для справки.

Шаг 1. Создайте проект Maven

Создать проект maven очень просто. Пожалуйста, выполните следующие шаги, чтобы создать проект.

  • Перейдите на вкладку меню "Файл " -> " Создать" -> " Другое".
  • Щелкните Maven Project . Здесь на этом шаге установите флажок «Создать простой проект (пропустить выбор архива) », затем нажмите « Далее> »
  • Добавьте идентификатор группы и идентификатор артефакта , затем нажмите « Готово ».

Таким образом, вы успешно создали Java-проект с Maven. Теперь следующее действие - добавить зависимость для Spark.

Шаг 2. Добавление необходимой зависимости Spark в pom.xml

Вы можете просто найти файл pom.xml в своем недавно созданном проекте maven и добавить ниже зависимость Spark (spark-core, spark-sql). Эти версии зависимостей вы можете изменить в соответствии с потребностями проекта.

Note: You can see added 2.4.0 dependency of Spark-core and spark-sql. Spark 3.0.1 version is also available, you can add the dependency according to your Spark version on the cluster and according to your project requirement.

XML



  
 <modelVersion>4.0.0</modelVersion>
 <groupId>java.spark</groupId>
 <artifactId>Spark-Learning</artifactId>
 <version>0.0.1-SNAPSHOT</version>
  
 <dependencies>
  
 <dependency>
  <groupId>com.thoughtworks.paranamer</groupId>
  <artifactId>paranamer</artifactId>
  <version>2.8</version>
 </dependency>
  
 <dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_2.12</artifactId>
  <version>2.4.0</version>
 </dependency>
  
 <dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-sql_2.12</artifactId>
  <version>2.4.0</version>
 </dependency>
  
</dependencies>
  
</project>

Шаг 3. Написание образца кода Spark

Теперь вы почти закончили. Просто создайте пакет с именем spark.java внутри своего проекта. Затем внутри только что созданного пакета создайте Java-класс SparkReadCSV. Поскольку в нашей системе не установлен Hadoop, мы все же можем просто загрузить файл winutils и добавить этот путь в качестве пути к домашнему каталогу Hadoop.

Вот несколько шагов, которые нам потребовались для этого.

  • Загрузите файл winutils.exe. https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-winutils/2.4.1
  • Создайте на вашем диске каталог Hadoop bin. Здесь, в моем случае, я создал папку Hadoop bin внутри D: Drive.
  • Скопируйте файл winutils.exe в папку D: \ hadoop \ bin.
  • Наконец, в файле SparkReadCSV.java добавьте домашний каталог Hadoop к указанному выше пути. Как это выглядит следующим образом.
 System.setProperty ("hadoop.home.dir", "D: \ Hadoop \");

Создайте файл employee.txt и добавьте ниже фиктивные записи.

я бы имя адрес зарплата
1 Бернард Норрис Amberloup 10172
2 Себастьян Рассел Delicias 18178
3 Уриэль Вебстер Фейсалабад 16419
4 Кларк Хаффман Мерритт 16850
5 Орсон Трэвис Оберурзель 17435

Добавьте приведенный ниже код в файл SparkReadCSV.java. Вы можете проверить приведенный ниже код с очень подробными комментариями для лучшего понимания.

Code:

Java

package spark.java;
  
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
  
public class SparkReadCSV {
  
    public static void main(String[] args)
    {
  
        // Set winutils.exe file path
  
        System.setProperty("hadoop.home.dir",
                           "D:\Hadoop\");
  
        // Create a SparkSession object to process the data
        // Function builder() used for creating SparkSession
          
        // object
        // Function appName() set a name for the application
        // which will be show in YARN/Spark web UI.
  
        // Function master() set a spark master URL to run
        // application, such "local" to run locally OR
  
        // "local[3]" to run with 3 cores OR "yarn-cluster"
        //  to run on YARN Hadoop cluster.
  
        // Function getOrCreate() return a Spark session to
        // execute application.
        SparkSession spark
            = SparkSession
                  .builder()
                  .appName("***** Reading CSV file.*****")
                  .master("local[3]")
                  .getOrCreate();
  
        // Read sample CSV file.
  
        // Read used to read data as a DataFrame.
  
        // The boolean value in option function indicate that
        // input data first line is header.
  
        // The delimiter value("|") in option indicate that
        // files records are | separated.
  
        // function csv() is accept input data file path
        // either from Local File System OR Hadoop Distributed
        // File System.
        
        // Here we are reading data from Local File System.
        Dataset<Row> employeeDS
            = spark
                  .read()
                  .option("header", true)
                  .option("delimiter", "|")
                  .csv("D:\data\employee.txt");
  
        // Displaying the records.
        employeeDS.show();
    }
}

Мы создали среду разработки Spark, выполнив несколько простых шагов. С этой отправной точкой мы можем продолжить изучение Spark, решая различные варианты использования.