Как настроить Windows для создания проекта с кодом Apache Spark без его установки?
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.
Предпосылка:
- Джава. Убедитесь, что в вашей системе установлена Java.
- 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, решая различные варианты использования.