Apache Spark

Инсталиране на Apache Spark на Ubuntu 17.10

Инсталиране на Apache Spark на Ubuntu 17.10

Apache Spark е инструмент за анализ на данни, който може да се използва за обработка на данни от HDFS, S3 или други източници на данни в паметта. В тази публикация ще инсталираме Apache Spark на Ubuntu 17.10 машина.

Версия на Ubuntu

За това ръководство ще използваме Ubuntu версия 17.10 (GNU / Linux 4.13.0-38-генеричен x86_64).

Apache Spark е част от екосистемата на Hadoop за големи данни. Опитайте да инсталирате Apache Hadoop и направете примерно приложение с него.

Актуализиране на съществуващите пакети

За да започнете инсталацията на Spark, е необходимо да актуализираме нашата машина с най-новите налични софтуерни пакети. Можем да направим това с:

sudo apt-get update && sudo apt-get -y dist-upgrade

Тъй като Spark се основава на Java, трябва да го инсталираме на нашата машина. Можем да използваме всяка версия на Java над Java 6. Тук ще използваме Java 8:

sudo apt-get -y инсталирай openjdk-8-jdk-headless

Изтегляне на Spark файлове

Всички необходими пакети вече съществуват на нашата машина. Готови сме да изтеглим необходимите Spark TAR файлове, за да можем да започнем да ги настройваме и да стартираме и примерна програма със Spark.

В това ръководство ще инсталираме Spark v2.3.0 налични тук:

Страница за изтегляне на Spark

Изтеглете съответните файлове с тази команда:

wget http: // www-us.апаш.org / dist / искра / искра-2.3.0 / искра-2.3.0-bin-hadoop2.7.tgz

В зависимост от скоростта на мрежата това може да отнеме до няколко минути, тъй като файлът е голям по размер:

Изтегляне на Apache Spark

След като изтеглихме файла TAR, можем да извлечем в текущата директория:

tar xvzf искра-2.3.0-bin-hadoop2.7.tgz

Това ще отнеме няколко секунди, за да завършите поради големия размер на файла на архива:

Разархивирани файлове в Spark

Когато става въпрос за надграждане на Apache Spark в бъдеще, това може да създаде проблеми поради актуализации на Path. Тези проблеми могат да бъдат избегнати чрез създаване на мека връзка към Spark. Изпълнете тази команда, за да направите мека връзка:

ln -s искра-2.3.0-bin-hadoop2.7 искра

Добавяне на Spark към Path

За да изпълним Spark скриптове, сега ще го добавим към пътя. За да направите това, отворете файла bashrc:

vi ~ /.bashrc

Добавете тези редове в края на .bashrc файл, така че пътят може да съдържа пътя на изпълнимия файл на Spark:

SPARK_HOME = / LinuxHint / искра
износ PATH = $ SPARK_HOME / bin: $ PATH

Сега файлът изглежда така:

Добавяне на Spark към PATH

За да активирате тези промени, изпълнете следната команда за файл bashrc:

източник ~ /.bashrc

Стартиране на Spark Shell

Сега, когато сме точно извън директорията на искрата, изпълнете следната команда, за да отворите обвивката на apark:

./ искра / кош / искра-черупка

Ще видим, че черупката на Spark се отваря и сега:

Стартиране на черупката Spark

В конзолата можем да видим, че Spark е отворил и Web Console на порт 404. Нека го посетим:

Уеб конзола Apache Spark

Въпреки че ще работим на самата конзола, уеб средата е важно място, на което трябва да обърнете внимание, когато изпълнявате тежки Spark Jobs, за да знаете какво се случва във всяка Spark Job, която изпълнявате.

Проверете версията на черупката Spark с проста команда:

sc.версия

Ще получим обратно нещо като:

res0: низ = 2.3.0

Изработване на примерно приложение Spark със Scala

Сега ще направим примерно приложение за брояч на думи с Apache Spark. За целта първо заредете текстов файл в контекста на Spark в черупката на Spark:

scala> var Data = sc.textFile ("/ root / LinuxHint / spark / README.md ")
Данни: орг.апаш.искра.rdd.RDD [String] = / root / LinuxHint / spark / README.md MapPartitionsRDD [1] в textFile на: 24
скала>

Сега текстът във файла трябва да бъде разбит на символи, които Spark може да управлява:

scala> var tokens = Данни.flatMap (s => s.разделяне (""))
жетони: орг.апаш.искра.rdd.RDD [String] = MapPartitionsRDD [2] при flatMap на: 25
скала>

Сега инициализирайте броя на всяка дума с 1:

scala> var tokens_1 = символи.карта (s => (s, 1))
tokens_1: org.апаш.искра.rdd.RDD [(String, Int)] = MapPartitionsRDD [3] на карта на: 25
скала>

И накрая, изчислете честотата на всяка дума от файла:

var sum_each = tokens_1.reduceByKey ((a, b) => a + b)

Време е да разгледаме резултата за програмата. Съберете жетоните и съответното им броене:

scala> sum_each.събиране ()
res1: Array [(String, Int)] = Array ((пакет, 1), (За, 3), (Програми, 1), (обработка.,1), (Защото, 1), (The, 1), (страница) (http: // искра.апаш.организация / документация.html).,1), (клъстер.,1), (си, 1), ([изпълнение, 1), (отколкото, 1), (API, 1), (има, 1), (Опитайте, 1), (изчисление, 1), (чрез, 1 ), (няколко, 1), (Това, 2), (графика, 1), (Кошера, 2), (съхранение, 1), (["Посочване, 1), (До, 2), (" прежда " , 1), (Веднъж, 1), (["Полезно, 1), (предпочитам, 1), (SparkPi, 2), (двигател, 1), (версия, 1), (файл, 1), (документация ,, 1), (обработка ,, 1), (на, 24), (са, 1), (системи.,1), (параметри, 1), (не, 1), (различно, 1), (вижте, 2), (Интерактивно, 2), (R ,, 1), (дадено.,1), (if, 4), (build, 4), (when, 1), (be, 2), (Tests, 1), (Apache, 1), (thread, 1), (programs ,, 1 ), (включително, 4), (./ bin / run-example, 2), (Spark.,1), (пакет.,1), (1000).count (), 1), (Версии, 1), (HDFS, 1), (D…
скала>

Отлично! Успяхме да стартираме прост пример за брояч на думи, използвайки програмен език Scala с текстов файл, който вече присъства в системата.

Заключение

В този урок разгледахме как можем да инсталираме и да започнем да използваме Apache Spark на Ubuntu 17.10 машина и стартирайте и пробно приложение на нея.

Прочетете повече публикации, базирани на Ubuntu тук.

Как да изтеглите и пуснете Civilization VI на Сид Майер на Linux
Въведение в играта Civilization 6 е модерен поглед върху класическата концепция, въведена в поредицата от игрите Age of Empires. Идеята беше доста про...
Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...
Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...