Bagaimana cara mengatur Spark di Windows?

93

Saya mencoba mengatur Apache Spark di Windows.

Setelah mencari sedikit, saya memahami bahwa mode mandiri adalah yang saya inginkan. Binari mana yang saya unduh untuk menjalankan Apache spark di windows? Saya melihat distribusi dengan hadoop dan cdh di halaman download spark.

Saya tidak memiliki referensi di web untuk ini. Panduan langkah demi langkah untuk ini sangat dihargai.

Siva
sumber

Jawaban:

34

Saya menemukan solusi termudah di Windows adalah membangun dari sumber.

Anda dapat mengikuti panduan ini: http://spark.apache.org/docs/latest/building-spark.html

Unduh dan instal Maven, dan setel MAVEN_OPTSke nilai yang ditentukan dalam panduan.

Tetapi jika Anda hanya bermain-main dengan Spark, dan tidak benar-benar membutuhkannya untuk dijalankan di Windows karena alasan lain bahwa mesin Anda sendiri menjalankan Windows, saya sangat menyarankan Anda menginstal Spark di mesin virtual linux. Cara termudah untuk memulai mungkin adalah mengunduh gambar siap pakai yang dibuat oleh Cloudera atau Hortonworks, dan menggunakan versi paket Spark, atau menginstal milik Anda sendiri dari sumber atau binari terkompilasi yang dapat Anda peroleh dari situs web spark.

jkgeyti.dll
sumber
1
Terima kasih atas perhatiannya. Tautan sudah diperbaiki.
jkgeyti
1
Hai, My Build on windows berfungsi dengan baik dengan Cygwin tetapi ketika saya menjalankan perintah ./start-master.sh di direktori sbin saya mendapatkan kesalahan Kesalahan: Tidak dapat menemukan atau memuat kelas utama org.apache.spark.launcher.Main full masuk /cygdrive/c/Spark/spark-1.5.1/sbin/../logs/spark-auser-org.apache.spark.deploy.master.Master-1.host
Geek
Hai Yashpal, saya mencobanya, tetapi saya macet di langkah 5 (winutils). Saya tidak dapat menyalin file-file itu ke direktori bin saya.
Venkat Ramakrishnan
140

Langkah-langkah untuk menginstal Spark dalam mode lokal:

  1. Instal Java 7 atau yang lebih baru . Untuk menguji instalasi java selesai, buka jenis command prompt javadan tekan enter. Jika Anda menerima pesan 'Java' is not recognized as an internal or external command. Anda perlu mengkonfigurasi variabel lingkungan Anda, JAVA_HOMEdan PATHmengarahkan ke jalur jdk.

  2. Unduh dan instal Scala .

    Atur SCALA_HOMEke Control Panel\System and Security\System"Pengaturan Sistem Lanjut" dan tambahkan %SCALA_HOME%\binvariabel PATH di variabel lingkungan.

  3. Instal Python 2.6 atau yang lebih baru dari tautan Unduh Python .

  4. Unduh SBT . Instal dan tetapkan SBT_HOMEsebagai variabel lingkungan dengan nilai sebagai <<SBT PATH>>.

  5. Unduh winutils.exedari repo HortonWorks atau git repo . Karena kami tidak memiliki instalasi Hadoop lokal di Windows, kami harus mengunduh winutils.exedan meletakkannya di bindirektori di bawah Hadoopdirektori home yang dibuat . Tetapkan HADOOP_HOME = <<Hadoop home directory>>dalam variabel lingkungan.

  6. Kami akan menggunakan paket Spark yang sudah dibuat sebelumnya, jadi pilih paket yang sudah dibuat sebelumnya Spark untuk mengunduh Hadoop Spark . Unduh dan ekstrak.

    Atur SPARK_HOMEdan tambahkan %SPARK_HOME%\binvariabel PATH di variabel lingkungan.

  7. Jalankan perintah: spark-shell

  8. Buka http://localhost:4040/di browser untuk melihat UI web SparkContext.

Ani Menon
sumber
5
Panduan hebat yang tidak memerlukan kompilasi lokal apa pun.
Matt
2
Saya mendapatkan "java.lang.IllegalArgumentException: Kesalahan saat membuat instance 'org.apache.spark.sql.hive.HiveSessionState'". Apakah saya memerlukan langkah ekstra untuk memasang sarang?
Stefan
4
Itu sangat membantu, terima kasih. Selain itu, jika seseorang mendapatkan kesalahan yang mengatakan "gagal menemukan direktori spark jars" saat menjalankan spark-shell, pastikan tidak ada ruang di jalur SPARK_HOME Anda. Berjuang lama untuk ini.
Aakash Jain
1
Ini emas di sini. Saya tidak dapat menjelaskan seberapa banyak masalah yang saya alami dengan Spark dan Scala di Windows. Saya pertama kali mencoba Windows Ubuntu Bash. Bukan ide yang bagus! Mungkin jika Anda memiliki pembaruan pembuat terbaru (Ubuntu 16), tetapi sebaliknya ada banyak kesalahan dan masalah jaringan.
Tom
21

Anda dapat mengunduh percikan dari sini:

http://spark.apache.org/downloads.html

Saya merekomendasikan Anda versi ini: Hadoop 2 (HDP2, CDH5)

Sejak versi 1.0.0 ada skrip .cmd untuk menjalankan spark di windows.

Buka kemasannya menggunakan 7zip atau serupa.

Untuk memulai, Anda dapat menjalankan /bin/spark-shell.cmd --master local [2]

Untuk mengkonfigurasi instance Anda, Anda dapat mengikuti link ini: http://spark.apache.org/docs/latest/

ajnavarro
sumber
alternatif hadoop apa yang akan Anda sarankan? Maksud saya sesuatu yang juga dapat kami instal di PC windows kami. Redis?
skan
17

Anda dapat menggunakan cara berikut untuk menyiapkan Spark:

  • Membangun dari Sumber
  • Menggunakan rilis bawaan

Padahal ada berbagai cara untuk membangun Spark dari Source .
Pertama saya mencoba membangun sumber Spark dengan SBT tetapi itu membutuhkan hadoop. Untuk menghindari masalah tersebut, saya menggunakan rilis yang dibuat sebelumnya.

Alih-alih Sumber, saya mengunduh rilis Prebuilt untuk versi hadoop 2.x dan menjalankannya. Untuk ini, Anda perlu menginstal Scala sebagai prasyarat.

Saya telah menyusun semua langkah di sini:
Cara menjalankan Apache Spark di Windows7 dalam mode mandiri

Semoga membantu Anda .. !!!

Nishu Tayal
sumber
8

Mencoba bekerja dengan spark-2.xx, membuat kode sumber Spark tidak berhasil untuk saya.

  1. Jadi, meskipun saya tidak akan menggunakan Hadoop, saya mengunduh Spark yang sudah dibuat sebelumnya dengan hadoop embeded: spark-2.0.0-bin-hadoop2.7.tar.gz

  2. Arahkan SPARK_HOME pada direktori hasil ekstraksi, lalu tambahkan ke PATH:;%SPARK_HOME%\bin;

  3. Unduh winutils yang dapat dieksekusi dari repositori Hortonworks, atau dari winutils platform Amazon AWS .

  4. Buat direktori tempat Anda meletakkan winutils.exe yang dapat dieksekusi. Misalnya, C: \ SparkDev \ x64. Tambahkan variabel lingkungan %HADOOP_HOME%yang menunjuk ke direktori ini, lalu tambahkan %HADOOP_HOME%\binke PATH.

  5. Menggunakan baris perintah, buat direktori:

    mkdir C:\tmp\hive
    
  6. Menggunakan file yang dapat dieksekusi yang Anda unduh, tambahkan izin penuh ke direktori file yang Anda buat tetapi menggunakan formalisme unixian:

    %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
    
  7. Ketik baris perintah berikut:

    %SPARK_HOME%\bin\spark-shell
    

Input baris perintah scala harus ditampilkan secara otomatis.

Catatan: Anda tidak perlu mengkonfigurasi Scala secara terpisah. Itu juga ada di dalamnya.

Farah
sumber
3

Berikut perbaikan untuk menjalankannya di Windows tanpa membangun kembali semuanya - seperti jika Anda tidak memiliki versi MS-VS terbaru. (Anda memerlukan kompiler Win32 C ++, tetapi Anda dapat menginstal MS VS Community Edition secara gratis.)

Saya sudah mencoba ini dengan Spark 1.2.2 dan mahout 0.10.2 serta dengan versi terbaru pada November 2015. Ada sejumlah masalah termasuk fakta bahwa kode Scala mencoba menjalankan skrip bash (mahout / bin / mahout) yang tentu saja tidak berfungsi, skrip sbin belum di-porting ke windows, dan winutils akan hilang jika hadoop tidak diinstal.

(1) Instal scala, lalu unzip spark / hadoop / mahout ke root C: di bawah nama produk masing-masing.

(2) Ubah nama \ mahout \ bin \ mahout menjadi mahout.sh.was (kami tidak akan membutuhkannya)

(3) Kompilasi program Win32 C ++ berikut dan salin file yang dapat dieksekusi ke file bernama C: \ mahout \ bin \ mahout (itu benar - tidak ada akhiran .exe, seperti Linux yang dapat dieksekusi)

#include "stdafx.h"
#define BUFSIZE 4096
#define VARNAME TEXT("MAHOUT_CP")
int _tmain(int argc, _TCHAR* argv[]) {
    DWORD dwLength;     LPTSTR pszBuffer;
    pszBuffer = (LPTSTR)malloc(BUFSIZE*sizeof(TCHAR));
    dwLength = GetEnvironmentVariable(VARNAME, pszBuffer, BUFSIZE);
    if (dwLength > 0) { _tprintf(TEXT("%s\n"), pszBuffer); return 0; }
    return 1;
}

(4) Buat skrip \ mahout \ bin \ mahout.bat dan tempelkan konten di bawah ini, meskipun nama persis dari toples di jalur kelas _CP akan bergantung pada versi spark dan mahout. Perbarui jalur apa pun sesuai instalasi Anda. Gunakan nama jalur 8.3 tanpa spasi di dalamnya. Perhatikan bahwa Anda tidak dapat menggunakan karakter pengganti / tanda bintang di jalur kelas di sini.

set SCALA_HOME=C:\Progra~2\scala
set SPARK_HOME=C:\spark
set HADOOP_HOME=C:\hadoop
set MAHOUT_HOME=C:\mahout
set SPARK_SCALA_VERSION=2.10
set MASTER=local[2]
set MAHOUT_LOCAL=true
set path=%SCALA_HOME%\bin;%SPARK_HOME%\bin;%PATH%
cd /D %SPARK_HOME%
set SPARK_CP=%SPARK_HOME%\conf\;%SPARK_HOME%\lib\xxx.jar;...other jars...
set MAHOUT_CP=%MAHOUT_HOME%\lib\xxx.jar;...other jars...;%MAHOUT_HOME%\xxx.jar;...other jars...;%SPARK_CP%;%MAHOUT_HOME%\lib\spark\xxx.jar;%MAHOUT_HOME%\lib\hadoop\xxx.jar;%MAHOUT_HOME%\src\conf;%JAVA_HOME%\lib\tools.jar
start "master0" "%JAVA_HOME%\bin\java" -cp "%SPARK_CP%" -Xms1g -Xmx1g org.apache.spark.deploy.master.Master --ip localhost --port 7077 --webui-port 8082 >>out-master0.log 2>>out-master0.err
start "worker1" "%JAVA_HOME%\bin\java" -cp "%SPARK_CP%" -Xms1g -Xmx1g org.apache.spark.deploy.worker.Worker spark://localhost:7077 --webui-port 8083 >>out-worker1.log 2>>out-worker1.err
...you may add more workers here...
cd /D %MAHOUT_HOME%
"%JAVA_HOME%\bin\java" -Xmx4g -classpath "%MAHOUT_CP%" "org.apache.mahout.sparkbindings.shell.Main"

Nama variabel MAHOUT_CP tidak boleh diubah, karena dirujuk dalam kode C ++.

Tentu saja Anda dapat mengomentari kode yang meluncurkan master dan pekerja Spark karena Mahout akan menjalankan Spark sesuai kebutuhan; Saya baru saja memasukkannya ke dalam pekerjaan batch untuk menunjukkan cara meluncurkannya jika Anda ingin menggunakan Spark tanpa Mahout.

(5) Tutorial berikut adalah tempat yang baik untuk memulai:

https://mahout.apache.org/users/sparkbindings/play-with-shell.html

Anda dapat memunculkan instance Mahout Spark di:

"C:\Program Files (x86)\Google\Chrome\Application\chrome" --disable-web-security http://localhost:4040
Emul
sumber
1

Berikut tujuh langkah untuk menginstal spark di windows 10 dan menjalankannya dari python:

Langkah 1: unduh file spark 2.2.0 tar (tape Archive) gz ke sembarang folder F dari tautan ini - https://spark.apache.org/downloads.html . Buka zip dan salin folder yang telah dibuka ke folder A. Ubah nama folder spark-2.2.0-bin-hadoop2.7 menjadi spark.

Biarkan path ke folder spark menjadi C: \ Users \ Desktop \ A \ spark

Langkah 2: unduh file hardoop 2.7.3 tar gz ke folder yang sama F dari tautan ini - https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7 .3.tar.gz . Buka zip dan salin folder yang telah dibuka ke folder yang sama A. Ubah nama folder dari Hadoop-2.7.3.tar menjadi hadoop. Biarkan path ke folder hadoop menjadi C: \ Users \ Desktop \ A \ hadoop

Langkah 3: Buat file teks notepad baru. Simpan file notepad kosong ini sebagai winutils.exe (dengan Save as type: All files). Salin file winutils.exe O KB ini ke folder bin Anda di spark - C: \ Users \ Desktop \ A \ spark \ bin

Langkah 4: Sekarang, kita harus menambahkan folder ini ke lingkungan Sistem.

4a: Buat variabel sistem (bukan variabel pengguna karena variabel pengguna akan mewarisi semua properti variabel sistem) Nama variabel: SPARK_HOME Nilai variabel: C: \ Users \ Desktop \ A \ spark

Temukan variabel sistem Path dan klik edit. Anda akan melihat banyak jalur. Jangan hapus jalur mana pun. Tambahkan nilai variabel ini -; C: \ Users \ Desktop \ A \ spark \ bin

4b: Buat variabel sistem

Nama variabel: HADOOP_HOME Nilai variabel: C: \ Users \ Desktop \ A \ hadoop

Temukan variabel sistem Path dan klik edit. Tambahkan nilai variabel ini -; C: \ Users \ Desktop \ A \ hadoop \ bin

4c: Buat variabel sistem Nama variabel: JAVA_HOME Cari Java di windows. Klik kanan dan klik buka lokasi file. Anda harus sekali lagi mengklik kanan pada salah satu file java dan mengklik lokasi file yang terbuka. Anda akan menggunakan jalur folder ini. ATAU Anda dapat mencari C: \ Program Files \ Java. Versi Java saya yang terinstal di sistem adalah jre1.8.0_131. Nilai variabel: C: \ Program Files \ Java \ jre1.8.0_131 \ bin

Temukan variabel sistem Path dan klik edit. Tambahkan nilai variabel ini -; C: \ Program Files \ Java \ jre1.8.0_131 \ bin

Langkah 5: Buka command prompt dan masuk ke folder spark bin Anda (ketik cd C: \ Users \ Desktop \ A \ spark \ bin). Ketik spark-shell.

C:\Users\Desktop\A\spark\bin>spark-shell

Mungkin perlu waktu dan memberikan beberapa peringatan. Terakhir, ini akan menampilkan selamat datang di spark versi 2.2.0

Langkah 6: Ketik exit () atau mulai ulang prompt perintah dan buka folder spark bin lagi. Ketik pyspark:

C:\Users\Desktop\A\spark\bin>pyspark

Ini akan menampilkan beberapa peringatan dan kesalahan tetapi abaikan. Berhasil.

Langkah 7: Unduhan Anda selesai. Jika Anda ingin langsung menjalankan spark dari shell python maka: buka Scripts di folder python Anda dan ketik

pip install findspark

di command prompt.

Di shell python

import findspark
findspark.init()

impor modul yang diperlukan

from pyspark import SparkContext
from pyspark import SparkConf

Jika Anda ingin melewatkan langkah-langkah untuk mengimpor findspark dan memulainya, silakan ikuti prosedur yang diberikan dalam mengimpor pyspark di shell python

Aakash Saxena
sumber
0

Berikut ini skrip minimum sederhana untuk dijalankan dari konsol python mana pun. Ini mengasumsikan bahwa Anda telah mengekstrak pustaka Spark yang telah Anda unduh ke C: \ Apache \ spark-1.6.1.

Ini berfungsi di Windows tanpa membangun apa pun dan memecahkan masalah di mana Spark akan mengeluh tentang pengawetan rekursif.

import sys
import os
spark_home = 'C:\Apache\spark-1.6.1'

sys.path.insert(0, os.path.join(spark_home, 'python'))
sys.path.insert(0, os.path.join(spark_home, 'python\lib\pyspark.zip')) 
sys.path.insert(0, os.path.join(spark_home, 'python\lib\py4j-0.9-src.zip')) 

# Start a spark context:
sc = pyspark.SparkContext()

# 
lines = sc.textFile(os.path.join(spark_home, "README.md")
pythonLines = lines.filter(lambda line: "Python" in line)
pythonLines.first()
HansHarhoff
sumber
0

Cloudera dan Hortonworks adalah alat terbaik untuk memulai dengan HDFS di Microsoft Windows. Anda juga dapat menggunakan VMWare atau VBox untuk memulai Mesin Virtual untuk membuat build ke HDFS dan Spark, Hive, HBase, Pig, Hadoop dengan Scala, R, Java, Python.

Ilahi
sumber