จะตั้งค่า Spark บน Windows ได้อย่างไร?


93

ฉันกำลังพยายามติดตั้ง Apache Spark บน Windows

หลังจากค้นหาเล็กน้อยฉันเข้าใจว่าโหมดสแตนด์อโลนคือสิ่งที่ฉันต้องการ ฉันดาวน์โหลดไบนารีใดเพื่อเรียกใช้ Apache spark ใน windows ฉันเห็นการแจกแจงด้วย hadoop และ cdh ที่หน้าดาวน์โหลด spark

ฉันไม่มีข้อมูลอ้างอิงในเว็บเกี่ยวกับเรื่องนี้ คำแนะนำทีละขั้นตอนนี้ขอขอบคุณอย่างสูง

คำตอบ:


34

ฉันพบวิธีแก้ปัญหาที่ง่ายที่สุดใน Windows คือการสร้างจากแหล่งที่มา

คุณสามารถทำตามคำแนะนำนี้ได้มาก: http://spark.apache.org/docs/latest/building-spark.html

ดาวน์โหลดและติดตั้ง Maven และตั้งค่าMAVEN_OPTSเป็นค่าที่ระบุในคู่มือ

แต่ถ้าคุณแค่เล่นกับ Spark และไม่จำเป็นต้องใช้งานบน Windows จริง ๆ ด้วยเหตุผลอื่นใดที่เครื่องของคุณใช้ Windows ฉันขอแนะนำให้คุณติดตั้ง Spark บนเครื่องเสมือน linux วิธีที่ง่ายที่สุดในการเริ่มต้นคือการดาวน์โหลดรูปภาพสำเร็จรูปที่ทำโดย Cloudera หรือ Hortonworks และใช้ Spark เวอร์ชันที่มาพร้อมกับอุปกรณ์หรือติดตั้งของคุณเองจากแหล่งที่มาหรือไบนารีที่รวบรวมไว้ซึ่งคุณสามารถหาได้จากเว็บไซต์ spark


1
ขอบคุณสำหรับหัวขึ้น ลิงก์ได้รับการแก้ไข
jkgeyti

1
สวัสดี My Build บน windows ทำงานได้ดีกับ Cygwin แต่เมื่อฉันรันคำสั่ง. /start-master.sh ในไดเร็กทอรี sbin ฉันได้รับข้อผิดพลาด Error: ไม่พบหรือโหลดคลาสหลัก org.apache.spark.launcher หลักเต็ม เข้าสู่ระบบ /cygdrive/c/Spark/spark-1.5.1/sbin/../logs/spark-auser-org.apache.spark.deploy.master.Master-1.host
Geek

สวัสดี Yashpal ฉันลองแล้ว แต่ติดอยู่ในขั้นตอนที่ 5 (winutils) ฉันไม่สามารถคัดลอกไฟล์เหล่านั้นไปยังไดเร็กทอรี bin ของฉัน
Venkat Ramakrishnan

140

ขั้นตอนในการติดตั้ง Spark ในโหมดโลคัล:

  1. ติดตั้ง Java 7 หรือในภายหลัง ในการทดสอบการติดตั้ง java เสร็จสมบูรณ์ให้เปิดประเภทพรอมต์คำสั่งjavaแล้วกด Enter หากคุณได้รับข้อความ'Java' is not recognized as an internal or external command. คุณต้องกำหนดค่าตัวแปรสภาพแวดล้อมของคุณJAVA_HOMEและPATHชี้ไปที่เส้นทางของ jdk

  2. ดาวน์โหลดและติดตั้ง Scala

    ตั้งค่าSCALA_HOMEในControl Panel\System and Security\Systemgoto "Adv System settings" และเพิ่ม%SCALA_HOME%\binตัวแปร PATH ในตัวแปรสภาพแวดล้อม

  3. ติดตั้ง Python 2.6 หรือในภายหลังจากงูหลามลิงก์ดาวน์โหลด

  4. ดาวน์โหลด SBT . ติดตั้งและตั้งค่าเป็นตัวแปรสภาพแวดล้อมที่มีค่าเป็นSBT_HOME<<SBT PATH>>

  5. ดาวน์โหลดwinutils.exeจากHortonworks repoหรือคอมไพล์ repo เนื่องจากเราไม่มีการติดตั้ง Hadoop ในเครื่องบน Windows เราจึงต้องดาวน์โหลดwinutils.exeและวางไว้ในbinไดเร็กทอรีภายใต้Hadoopโฮมไดเร็กทอรีที่สร้างขึ้น ตั้งค่าHADOOP_HOME = <<Hadoop home directory>>ในตัวแปรสภาพแวดล้อม

  6. เราจะใช้แพคเกจที่จุดประกายสร้างไว้ล่วงหน้าเพื่อให้เลือกแพคเกจที่จุดประกายสร้างไว้ล่วงหน้าสำหรับHadoop Spark ดาวน์โหลด ดาวน์โหลดและแตกไฟล์

    ตั้งค่าSPARK_HOMEและเพิ่ม%SPARK_HOME%\binในตัวแปร PATH ในตัวแปรสภาพแวดล้อม

  7. เรียกใช้คำสั่ง: spark-shell

  8. เปิดhttp://localhost:4040/ในเบราว์เซอร์เพื่อดู UI ของเว็บ SparkContext


5
คำแนะนำที่ยอดเยี่ยมที่ไม่ต้องการการรวบรวมในท้องถิ่น
Matt

2
ฉันได้รับ "java.lang.IllegalArgumentException: เกิดข้อผิดพลาดขณะสร้างอินสแตนซ์ 'org.apache.spark.sql.hive.HiveSessionState'" ฉันต้องการขั้นตอนเพิ่มเติมในการติดตั้งรังไหม
Stefan


4
มีประโยชน์มากขอบคุณ นอกจากนี้หากมีผู้แจ้งข้อผิดพลาดว่า "ไม่พบไดเร็กทอรี spark jars" ในการเรียกใช้ spark-shell ให้ตรวจสอบว่าไม่มีที่ว่างในเส้นทาง SPARK_HOME ของคุณ ต่อสู้กับเรื่องนี้มานาน
Aakash Jain

1
นี่คือทองตรงนี้ ฉันไม่สามารถอธิบายได้ว่าฉันมีปัญหากับ Spark และ Scala ใน Windows มากแค่ไหน ฉันลอง Windows Ubuntu Bash เป็นครั้งแรก ไม่ใช่ความคิดที่ดี! บางทีถ้าคุณมีการอัปเดตผู้สร้างล่าสุด (Ubuntu 16) แต่อย่างอื่นอาจมีข้อผิดพลาดและปัญหาเครือข่ายมากมาย
ทอม

21

คุณสามารถดาวน์โหลด spark ได้จากที่นี่:

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

ขอแนะนำรุ่นนี้: Hadoop 2 (HDP2, CDH5)

ตั้งแต่เวอร์ชัน 1.0.0 มีสคริปต์. cmdเพื่อเรียกใช้ spark ใน windows

แกะออกโดยใช้ 7zip หรือรุ่นที่คล้ายกัน

ในการเริ่มต้นคุณสามารถดำเนินการ/bin/spark-shell.cmd --master local [2]

ในการกำหนดค่าอินสแตนซ์ของคุณคุณสามารถไปที่ลิงค์นี้: http://spark.apache.org/docs/latest/


คุณจะแนะนำทางเลือกอะไรให้กับ hadoop? ฉันหมายถึงสิ่งที่เราสามารถติดตั้งบนพีซี Windows ของเราได้ เรดิส?
กัน

17

คุณสามารถใช้วิธีต่อไปนี้เพื่อตั้งค่า Spark:

  • สร้างจากแหล่งที่มา
  • ใช้รุ่นที่สร้างไว้ล่วงหน้า

แม้ว่าจะมีหลายวิธีที่จะสร้างจุดประกายจากแหล่งที่มา
ก่อนอื่นฉันลองสร้างแหล่งที่มาของ Spark ด้วย SBT แต่ต้องใช้ hadoop เพื่อหลีกเลี่ยงปัญหาเหล่านั้นฉันใช้รุ่นที่สร้างไว้ล่วงหน้า

แทนที่จะเป็นแหล่งที่มาฉันดาวน์โหลดรุ่นที่สร้างไว้ล่วงหน้าสำหรับเวอร์ชัน hadoop 2.x และเรียกใช้ สำหรับสิ่งนี้คุณต้องติดตั้ง Scala ตามข้อกำหนดเบื้องต้น

ฉันรวบรวมขั้นตอนทั้งหมดไว้ที่นี่:
วิธีเรียกใช้ Apache Spark บน Windows7 ในโหมดสแตนด์อโลน

หวังว่าจะช่วยคุณได้ .. !!!


8

การพยายามทำงานกับ spark-2.xx การสร้างซอร์สโค้ด Spark ไม่ได้ผลสำหรับฉัน

  1. ดังนั้นแม้ว่าฉันจะไม่ใช้ Hadoop แต่ฉันก็ดาวน์โหลด Spark ที่สร้างไว้ล่วงหน้าด้วยการฝัง hadoop spark-2.0.0-bin-hadoop2.7.tar.gz

  2. ชี้ SPARK_HOME บนไดเร็กทอรีที่แยกจากนั้นเพิ่มไปที่PATH:;%SPARK_HOME%\bin;

  3. ดาวน์โหลดปฏิบัติการwinutilsจากพื้นที่เก็บข้อมูล Hortonworks หรือจาก Amazon AWS แพลตฟอร์มwinutils

  4. สร้างไดเร็กทอรีที่คุณวาง winutils.exe ที่ปฏิบัติการได้ ตัวอย่างเช่น C: \ SparkDev \ x64 เพิ่มตัวแปรสภาพแวดล้อม%HADOOP_HOME%ที่ชี้ไปยังไดเร็กทอรีนี้จากนั้นเพิ่ม%HADOOP_HOME%\binไปที่ PATH

  5. ใช้บรรทัดคำสั่งสร้างไดเร็กทอรี:

    mkdir C:\tmp\hive
    
  6. ใช้ไฟล์ปฏิบัติการที่คุณดาวน์โหลดเพิ่มการอนุญาตแบบเต็มไปยังไดเร็กทอรีไฟล์ที่คุณสร้างขึ้น แต่ใช้แบบ unixian formalism:

    %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
    
  7. พิมพ์บรรทัดคำสั่งต่อไปนี้:

    %SPARK_HOME%\bin\spark-shell
    

อินพุตบรรทัดคำสั่ง Scala ควรแสดงโดยอัตโนมัติ

หมายเหตุ:คุณไม่จำเป็นต้องกำหนดค่า Scala แยกกัน มันอยู่ในตัวด้วย


3

นี่คือการแก้ไขเพื่อให้ทำงานใน Windows โดยไม่ต้องสร้างใหม่ทุกอย่างเช่นถ้าคุณไม่มี MS-VS เวอร์ชันล่าสุด (คุณจะต้องมีคอมไพเลอร์ Win32 C ++ แต่คุณสามารถติดตั้ง MS VS Community Edition ได้ฟรี)

ฉันได้ลองใช้ Spark 1.2.2 และควาญช้าง 0.10.2 รวมถึงเวอร์ชันล่าสุดในเดือนพฤศจิกายน 2558 มีปัญหาหลายประการรวมถึงความจริงที่ว่ารหัส Scala พยายามเรียกใช้สคริปต์ทุบตี (ควาญช้าง / bin / ควาญช้าง) ซึ่งใช้งานไม่ได้แน่นอนสคริปต์ sbin ไม่ได้ถูกย้ายไปที่ windows และ winutils จะหายไปหากไม่ได้ติดตั้ง hadoop

(1)ติดตั้ง scala จากนั้นคลายซิป spark / hadoop / mahout ลงในรูทของ C: ภายใต้ชื่อผลิตภัณฑ์ที่เกี่ยวข้อง

(2)เปลี่ยนชื่อ \ mahout \ bin \ mahout เป็น mahout.sh.was (เราจะไม่ต้องการมัน)

(3)รวบรวมโปรแกรม Win32 C ++ ต่อไปนี้และคัดลอกไฟล์ปฏิบัติการไปยังไฟล์ชื่อ C: \ mahout \ bin \ mahout (ถูกต้อง - ไม่มีคำต่อท้าย. exe เหมือนไฟล์ปฏิบัติการของ Linux)

#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)สร้างสคริปต์ \ mahout \ bin \ mahout.bat และวางในเนื้อหาด้านล่างแม้ว่าชื่อที่แน่นอนของไหในพา ธ คลาส _CP จะขึ้นอยู่กับเวอร์ชันของ spark และควาญช้าง อัปเดตเส้นทางต่อการติดตั้งของคุณ ใช้ชื่อพา ธ 8.3 โดยไม่มีช่องว่าง โปรดทราบว่าคุณไม่สามารถใช้สัญลักษณ์แทน / เครื่องหมายดอกจันในคลาสพา ธ ได้ที่นี่

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"

ไม่ควรเปลี่ยนชื่อของตัวแปร MAHOUT_CP เนื่องจากมีการอ้างอิงในรหัส C ++

แน่นอนคุณสามารถแสดงความคิดเห็นเกี่ยวกับโค้ดที่เปิดใช้ Spark master และ worker ได้เนื่องจาก Mahout จะเรียกใช้ Spark ตามต้องการ ฉันใส่ไว้ในชุดงานเพื่อแสดงวิธีเปิดใช้งานหากคุณต้องการใช้ Spark โดยไม่มี Mahout

(5)บทช่วยสอนต่อไปนี้เป็นจุดเริ่มต้นที่ดี:

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

คุณสามารถเรียกใช้อินสแตนซ์ Mahout Spark ได้ที่:

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


1

นี่คือเจ็ดขั้นตอนในการติดตั้ง spark บน windows 10 และเรียกใช้จาก python:

ขั้นตอนที่ 1: ดาวน์โหลดประกาย 2.2.0 น้ำมันดิน (เทป Archive) GZ ไปยังโฟลเดอร์ใด ๆ F จากลิงค์นี้ - https://spark.apache.org/downloads.html แตกไฟล์และคัดลอกโฟลเดอร์ที่คลายซิปไปยังโฟลเดอร์ที่ต้องการ A เปลี่ยนชื่อโฟลเดอร์ spark-2.2.0-bin-hadoop2.7 เพื่อจุดประกาย

ให้พา ธ ไปยังโฟลเดอร์ spark เป็น C: \ Users \ Desktop \ A \ spark

ขั้นตอนที่ 2: ดาวน์โหลดไฟล์ hardoop 2.7.3 tar gz ไปยังโฟลเดอร์ F เดียวกันจากลิงค์นี้ - https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7 .3.tar.gz . แตกไฟล์และคัดลอกโฟลเดอร์ที่คลายซิปไปยังโฟลเดอร์เดียวกัน A เปลี่ยนชื่อโฟลเดอร์จาก Hadoop-2.7.3.tar เป็น hadoop ให้พา ธ ไปยังโฟลเดอร์ hadoop เป็น C: \ Users \ Desktop \ A \ hadoop

ขั้นตอนที่ 3: สร้างไฟล์ข้อความ notepad ใหม่ บันทึกไฟล์ notepad ที่ว่างเปล่านี้เป็น winutils.exe (ด้วย Save as type: All files) คัดลอกไฟล์ O KB winutils.exe นี้ไปยังโฟลเดอร์ bin ของคุณใน spark - C: \ Users \ Desktop \ A \ spark \ bin

ขั้นตอนที่ 4: ตอนนี้เราต้องเพิ่มโฟลเดอร์เหล่านี้ในสภาพแวดล้อมของระบบ

4a: สร้างตัวแปรระบบ (ไม่ใช่ตัวแปรผู้ใช้เนื่องจากตัวแปรผู้ใช้จะสืบทอดคุณสมบัติทั้งหมดของตัวแปรระบบ) ชื่อตัวแปร: SPARK_HOME ค่าตัวแปร: C: \ Users \ Desktop \ A \ spark

ค้นหาตัวแปรระบบเส้นทางและคลิกแก้ไข คุณจะเห็นหลายเส้นทาง อย่าลบเส้นทางใด ๆ เพิ่มค่าตัวแปรนี้ -; C: \ Users \ Desktop \ A \ spark \ bin

4b: สร้างตัวแปรระบบ

ชื่อตัวแปร: HADOOP_HOME ค่าตัวแปร: C: \ Users \ Desktop \ A \ hadoop

ค้นหาตัวแปรระบบเส้นทางและคลิกแก้ไข เพิ่มค่าตัวแปรนี้ -; C: \ Users \ Desktop \ A \ hadoop \ bin

4c: สร้างตัวแปรระบบชื่อตัวแปร: JAVA_HOME ค้นหา Java ใน windows คลิกขวาและคลิกเปิดตำแหน่งไฟล์ คุณจะต้องคลิกขวาที่ไฟล์ java ไฟล์ใดไฟล์หนึ่งและคลิกที่ตำแหน่งไฟล์ที่เปิด คุณจะใช้เส้นทางของโฟลเดอร์นี้ หรือคุณสามารถค้นหา C: \ Program Files \ Java เวอร์ชัน Java ของฉันที่ติดตั้งบนระบบคือ jre1.8.0_131 ค่าตัวแปร: C: \ Program Files \ Java \ jre1.8.0_131 \ bin

ค้นหาตัวแปรระบบเส้นทางและคลิกแก้ไข เพิ่มค่าตัวแปรนี้ -; C: \ Program Files \ Java \ jre1.8.0_131 \ bin

ขั้นตอนที่ 5: เปิดพรอมต์คำสั่งและไปที่โฟลเดอร์ถังขยะ (พิมพ์ cd C: \ Users \ Desktop \ A \ spark \ bin) พิมพ์ spark-shell

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

อาจต้องใช้เวลาและให้คำเตือนบ้าง ในที่สุดก็จะแสดงยินดีต้อนรับสู่ spark เวอร์ชัน 2.2.0

ขั้นตอนที่ 6: พิมพ์ exit () หรือรีสตาร์ทพร้อมรับคำสั่งแล้วไปที่โฟลเดอร์ spark bin อีกครั้ง พิมพ์ pyspark:

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

มันจะแสดงคำเตือนและข้อผิดพลาดบางอย่าง แต่ไม่ต้องสนใจ มันได้ผล.

ขั้นตอนที่ 7: การดาวน์โหลดของคุณเสร็จสมบูรณ์ หากคุณต้องการเรียกใช้ spark โดยตรงจาก python shell ให้ไปที่ Scripts ในโฟลเดอร์ python ของคุณแล้วพิมพ์

pip install findspark

ในพรอมต์คำสั่ง

ในไพ ธ อนเชลล์

import findspark
findspark.init()

นำเข้าโมดูลที่จำเป็น

from pyspark import SparkContext
from pyspark import SparkConf

หากคุณต้องการข้ามขั้นตอนในการนำเข้า findspark และเริ่มต้นโปรดปฏิบัติตามขั้นตอนที่ระบุใน การนำเข้า pyspark ใน python shell


0

นี่คือสคริปต์ขั้นต่ำที่เรียบง่ายในการเรียกใช้จากคอนโซล python ใด ๆ ถือว่าคุณได้แตกไลบรารี Spark ที่คุณดาวน์โหลดไว้ใน C: \ Apache \ spark-1.6.1

ใช้งานได้ใน Windows โดยไม่ต้องสร้างอะไรเลยและแก้ปัญหาที่ Spark จะบ่นเกี่ยวกับการดองซ้ำ

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()

0

Cloudera และ Hortonworks เป็นเครื่องมือที่ดีที่สุดในการเริ่มต้นใช้งาน HDFS ใน Microsoft Windows คุณยังสามารถใช้ VMWare หรือ VBox เพื่อเริ่มต้น Virtual Machine เพื่อสร้างบิวด์เป็น HDFS และ Spark, Hive, HBase, Pig, Hadoop พร้อม Scala, R, Java, Python

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.