Làm thế nào để thiết lập Spark trên Windows?


93

Tôi đang cố gắng thiết lập Apache Spark trên Windows.

Sau khi tìm kiếm một chút, tôi hiểu rằng chế độ độc lập là những gì tôi muốn. Tôi tải xuống tệp nhị phân nào để chạy Apache spark trong windows? Tôi thấy các bản phân phối với hadoop và cdh tại trang tải xuống spark.

Tôi không có tài liệu tham khảo trên web về điều này. Hướng dẫn từng bước cho việc này được đánh giá cao.

Câu trả lời:


34

Tôi thấy giải pháp dễ nhất trên Windows là xây dựng từ nguồn.

Bạn có thể làm theo hướng dẫn này: http://spark.apache.org/docs/latest/building-spark.html

Tải xuống và cài đặt Maven và đặt thành MAVEN_OPTSgiá trị được chỉ định trong hướng dẫn.

Nhưng nếu bạn chỉ chơi với Spark và không thực sự cần nó chạy trên Windows vì bất kỳ lý do nào khác mà máy của bạn đang chạy Windows, tôi thực sự khuyên bạn nên cài đặt Spark trên một máy ảo linux. Cách đơn giản nhất để bắt đầu có lẽ là tải xuống các hình ảnh tạo sẵn do Cloudera hoặc Hortonworks tạo ra và sử dụng phiên bản Spark đi kèm hoặc cài đặt của riêng bạn từ nguồn hoặc các tệp nhị phân đã biên dịch mà bạn có thể lấy từ trang web spark.


1
Cảm ơn bạn vì những người đứng đầu. Liên kết là cố định.
jkgeyti

1
Xin chào, Bản dựng của tôi trên windows hoạt động tốt với Cygwin nhưng khi tôi chạy lệnh ./start-master.sh trong thư mục sbin, tôi gặp lỗi Lỗi: Không thể tìm thấy hoặc tải lớp chính org.apache.spark.launcher. đăng nhập /cygdrive/c/Spark/spark-1.5.1/sbin/../logs/spark-auser-org.apache.spark.deploy.master.Master-1.host
Geek

Xin chào Yashpal, tôi đã thử điều đó, nhưng tôi gặp khó khăn ở bước 5 (winutils). Tôi không thể sao chép các tệp đó vào thư mục bin của mình.
Venkat Ramakrishnan

140

Các bước cài đặt Spark ở chế độ cục bộ:

  1. Cài đặt Java 7 trở lên . Để kiểm tra cài đặt java hoàn tất, hãy mở dòng nhắc lệnh javavà nhấn enter. Nếu bạn nhận được thông báo 'Java' is not recognized as an internal or external command. Bạn cần cấu hình các biến môi trường của mình JAVA_HOMEPATHtrỏ đến đường dẫn của jdk.

  2. Tải xuống và cài đặt Scala .

    Đặt SCALA_HOMEtrong Control Panel\System and Security\Systemgoto "Cài đặt hệ thống Adv" và thêm %SCALA_HOME%\binvào biến PATH trong các biến môi trường.

  3. Cài đặt Python 2.6 trở lên từ liên kết Tải xuống Python .

  4. Tải xuống SBT . Cài đặt nó và đặt SBT_HOMElàm biến môi trường với giá trị là <<SBT PATH>>.

  5. Tải xuống winutils.exetừ repo HortonWorks hoặc git repo . Vì chúng tôi không có cài đặt Hadoop cục bộ trên Windows, nên chúng tôi phải tải xuống winutils.exevà đặt nó vào một binthư mục trong thư mục chính đã tạo Hadoop. Đặt HADOOP_HOME = <<Hadoop home directory>>trong biến môi trường.

  6. Chúng tôi sẽ sử dụng gói Spark được tạo sẵn, vì vậy hãy chọn gói Spark được tạo sẵn để tải xuống Hadoop Spark . Tải xuống và giải nén nó.

    Đặt SPARK_HOMEvà thêm %SPARK_HOME%\binvào biến PATH trong các biến môi trường.

  7. Chạy lệnh: spark-shell

  8. Mở http://localhost:4040/trong trình duyệt để xem giao diện người dùng web SparkContext.


5
Hướng dẫn tuyệt vời không yêu cầu bất kỳ biên dịch cục bộ nào.
Matt

2
Tôi nhận được "java.lang.IllegalArgumentException: Lỗi khi khởi tạo 'org.apache.spark.sql.hive.HiveSessionState'". Tôi có cần thêm một bước để cài đặt hive không?
Stefan


4
Điều đó rất hữu ích, cảm ơn. Ngoài ra, nếu ai đó gặp lỗi nói "không tìm thấy thư mục spark jar" khi chạy spark-shell, hãy đảm bảo rằng không có khoảng trống trong đường dẫn SPARK_HOME của bạn. Đấu tranh về điều này trong một thời gian dài.
Aakash Jain

1
Đây là vàng ngay tại đây. Tôi không thể giải thích tôi đã gặp nhiều rắc rối như thế nào với Spark và Scala trong Windows. Lần đầu tiên tôi dùng thử Windows Ubuntu Bash. Không phải là một ý tưởng tốt! Có thể nếu bạn có bản cập nhật dành cho người sáng tạo mới nhất (Ubuntu 16), nhưng nếu không thì sẽ có rất nhiều lỗi và sự cố mạng.
Tom

21

Bạn có thể tải xuống spark từ đây:

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

Tôi giới thiệu cho bạn phiên bản này: Hadoop 2 (HDP2, CDH5)

Kể từ phiên bản 1.0.0 có các tập lệnh .cmd để chạy spark trong windows.

Giải nén nó bằng 7zip hoặc tương tự.

Để bắt đầu, bạn có thể thực thi /bin/spark-shell.cmd --master local [2]

Để định cấu hình phiên bản của bạn, bạn có thể theo liên kết sau: http://spark.apache.org/docs/latest/


bạn sẽ đề xuất phương án thay thế hadoop nào? Ý tôi là một cái gì đó mà chúng tôi cũng có thể cài đặt trên máy tính chạy windows của mình. Redis?
skan

17

Bạn có thể sử dụng các cách sau để thiết lập Spark:

  • Xây dựng từ Nguồn
  • Sử dụng bản phát hành dựng sẵn

Mặc dù có nhiều cách khác nhau để xây dựng Spark từ Nguồn .
Đầu tiên, tôi đã thử xây dựng nguồn Spark bằng SBT nhưng điều đó yêu cầu phải có hadoop. Để tránh những vấn đề đó, tôi đã sử dụng bản phát hành được tạo sẵn.

Thay vì Nguồn, tôi đã tải xuống bản phát hành Prebuilt cho phiên bản hadoop 2.x và chạy nó. Đối với điều này, bạn cần cài đặt Scala làm điều kiện tiên quyết.

Tôi đã đối chiếu tất cả các bước ở đây:
Cách chạy Apache Spark trên Windows7 ở chế độ độc lập

Hy vọng nó sẽ giúp ích cho bạn .. !!!


8

Cố gắng làm việc với spark-2.xx, việc tạo mã nguồn Spark không hoạt động với tôi.

  1. Vì vậy, mặc dù tôi sẽ không sử dụng Hadoop, tôi đã tải xuống Spark được tạo sẵn với hadoop được nhúng: spark-2.0.0-bin-hadoop2.7.tar.gz

  2. Trỏ SPARK_HOME trên thư mục đã giải nén, sau đó thêm vào PATH:;%SPARK_HOME%\bin;

  3. Tải xuống các winutils thực thi từ kho lưu trữ Hortonworks hoặc từ các winutils nền tảng AWS của Amazon .

  4. Tạo một thư mục nơi bạn đặt winutils.exe thực thi. Ví dụ: C: \ SparkDev \ x64. Thêm biến môi trường %HADOOP_HOME%trỏ đến thư mục này, sau đó thêm %HADOOP_HOME%\binvào PATH.

  5. Sử dụng dòng lệnh, tạo thư mục:

    mkdir C:\tmp\hive
    
  6. Sử dụng tệp thực thi mà bạn đã tải xuống, thêm quyền đầy đủ vào thư mục tệp bạn đã tạo nhưng sử dụng phương thức unixian:

    %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
    
  7. Nhập dòng lệnh sau:

    %SPARK_HOME%\bin\spark-shell
    

Đầu vào dòng lệnh Scala sẽ được hiển thị tự động.

Lưu ý: Bạn không cần phải cấu hình Scala riêng biệt. Nó cũng được tích hợp sẵn.


3

Đây là các bản sửa lỗi để nó chạy trong Windows mà không cần xây dựng lại mọi thứ - chẳng hạn như nếu bạn không có phiên bản MS-VS gần đây. (Bạn sẽ cần một trình biên dịch Win32 C ++, nhưng bạn có thể cài đặt MS VS Community Edition miễn phí.)

Tôi đã thử điều này với Spark 1.2.2 và mahout 0.10.2 cũng như với các phiên bản mới nhất vào tháng 11 năm 2015. Có một số vấn đề bao gồm thực tế là mã Scala cố gắng chạy tập lệnh bash (mahout / bin / mahout) tất nhiên không hoạt động, các tập lệnh sbin chưa được chuyển sang windows và các winutils bị thiếu nếu không cài đặt hadoop.

(1) Cài đặt scala, sau đó giải nén spark / hadoop / mahout vào thư mục gốc của C: dưới tên sản phẩm tương ứng của chúng.

(2) Đổi tên \ mahout \ bin \ mahout thành mahout.sh.was (chúng tôi sẽ không cần nó)

(3) Biên dịch chương trình Win32 C ++ sau đây và sao chép tệp thực thi vào tệp có tên C: \ mahout \ bin \ mahout (đúng vậy - không có hậu tố .exe, giống như tệp thực thi 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) Tạo script \ mahout \ bin \ mahout.bat và dán vào nội dung bên dưới, mặc dù tên chính xác của các lọ trong đường dẫn lớp _CP sẽ phụ thuộc vào các phiên bản của spark và mahout. Cập nhật bất kỳ đường dẫn nào cho mỗi cài đặt của bạn. Sử dụng tên đường dẫn 8.3 mà không có dấu cách trong đó. Lưu ý rằng bạn không thể sử dụng ký tự đại diện / dấu hoa thị trong các đường dẫn phân nhánh ở đây.

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"

Tên của biến MAHOUT_CP không được thay đổi vì nó được tham chiếu trong mã C ++.

Tất nhiên bạn có thể bình luận mã khởi chạy Spark master và worker vì Mahout sẽ chạy Spark khi cần thiết; Tôi chỉ đưa nó vào công việc hàng loạt để chỉ cho bạn cách khởi chạy nó nếu bạn muốn sử dụng Spark mà không cần Mahout.

(5) Hướng dẫn sau đây là một nơi tốt để bắt đầu:

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

Bạn có thể đưa ra phiên bản Mahout Spark tại:

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


1

Dưới đây là bảy bước để cài đặt spark trên windows 10 và chạy nó từ python:

Bước 1: Tải xuống tệp gz spark 2.2.0 tar (tape Archive) vào bất kỳ thư mục F nào từ liên kết này - https://spark.apache.org/downloads.html . Giải nén nó và sao chép thư mục đã giải nén vào thư mục mong muốn A. Đổi tên thư mục spark-2.2.0-bin-hadoop2.7 thành spark.

Đặt đường dẫn đến thư mục spark là C: \ Users \ Desktop \ A \ spark

Bước 2: Tải xuống tệp hardoop 2.7.3 tar gz vào cùng thư mục F từ liên kết này - https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7 .3.tar.gz . Giải nén nó và sao chép thư mục vừa giải nén vào cùng thư mục A. Đổi tên thư mục từ Hadoop-2.7.3.tar thành hadoop. Đặt đường dẫn đến thư mục hadoop là C: \ Users \ Desktop \ A \ hadoop

Bước 3: Tạo một tệp văn bản notepad mới. Lưu tệp notepad trống này dưới dạng winutils.exe (với Loại lưu dưới dạng: Tất cả tệp). Sao chép tệp winutils.exe O KB này vào thư mục bin của bạn trong spark - C: \ Users \ Desktop \ A \ spark \ bin

Bước 4: Bây giờ, chúng ta phải thêm các thư mục này vào môi trường Hệ thống.

4a: Tạo một biến hệ thống (không phải biến người dùng vì biến người dùng sẽ kế thừa tất cả các thuộc tính của biến hệ thống) Tên biến: SPARK_HOME Giá trị biến: C: \ Users \ Desktop \ A \ spark

Tìm biến hệ thống Đường dẫn và nhấp vào chỉnh sửa. Bạn sẽ thấy nhiều đường dẫn. Không xóa bất kỳ đường dẫn nào. Thêm giá trị biến này -; C: \ Users \ Desktop \ A \ spark \ bin

4b: Tạo một biến hệ thống

Tên biến: HADOOP_HOME Giá trị biến: C: \ Users \ Desktop \ A \ hadoop

Tìm biến hệ thống Đường dẫn và nhấp vào chỉnh sửa. Thêm giá trị biến này -; C: \ Users \ Desktop \ A \ hadoop \ bin

4c: Tạo một biến hệ thống Tên biến: JAVA_HOME Tìm kiếm Java trong windows. Nhấp chuột phải và nhấp vào vị trí tệp mở. Bạn sẽ phải nhấp chuột phải một lần nữa vào bất kỳ tệp java nào và nhấp vào vị trí tệp đang mở. Bạn sẽ sử dụng đường dẫn của thư mục này. HOẶC bạn có thể tìm kiếm C: \ Program Files \ Java. Phiên bản Java của tôi được cài đặt trên hệ thống là jre1.8.0_131. Giá trị biến: C: \ Program Files \ Java \ jre1.8.0_131 \ bin

Tìm biến hệ thống Đường dẫn và nhấp vào chỉnh sửa. Thêm giá trị biến này -; C: \ Program Files \ Java \ jre1.8.0_131 \ bin

Bước 5: Mở dấu nhắc lệnh và truy cập thư mục spark bin của bạn (gõ cd C: \ Users \ Desktop \ A \ spark \ bin). Gõ spark-shell.

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

Có thể mất thời gian và đưa ra một số cảnh báo. Cuối cùng, nó sẽ hiển thị chào mừng bạn đến với phiên bản spark 2.2.0

Bước 6: Gõ exit () hoặc khởi động lại dấu nhắc lệnh và truy cập lại thư mục spark bin. Nhập pyspark:

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

Nó sẽ hiển thị một số cảnh báo và lỗi nhưng bỏ qua. Nó hoạt động.

Bước 7: Quá trình tải xuống của bạn đã hoàn tất. Nếu bạn muốn chạy trực tiếp tia lửa từ python shell thì: hãy chuyển đến Scripts trong thư mục python của bạn và nhập

pip install findspark

trong dấu nhắc lệnh.

Trong vỏ trăn

import findspark
findspark.init()

nhập các mô-đun cần thiết

from pyspark import SparkContext
from pyspark import SparkConf

Nếu bạn muốn bỏ qua các bước nhập findspark và khởi tạo nó, hãy làm theo quy trình được đưa ra khi nhập pyspark trong python shell


0

Đây là một tập lệnh tối thiểu đơn giản để chạy từ bất kỳ bảng điều khiển python nào. Nó giả định rằng bạn đã giải nén các thư viện Spark mà bạn đã tải xuống C: \ Apache \ spark-1.6.1.

Điều này hoạt động trong Windows mà không cần xây dựng bất kỳ thứ gì và giải quyết các vấn đề mà Spark sẽ phàn nàn về việc xử lý đệ quy.

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 và Hortonworks là những công cụ tốt nhất để khởi động với HDFS trong Microsoft Windows. Bạn cũng có thể sử dụng VMWare hoặc VBox để khởi chạy Máy ảo nhằm thiết lập bản dựng cho HDFS và Spark, Hive, HBase, Pig, Hadoop với Scala, R, Java, Python của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.