Cài đặt Apache Spark 1.6.3 trên Windows 10

Sharing is caring!

Chào các bạn. Hôm nay, tui mở thêm một chủ đề mới về Big Data. Về khái niệm Big Data, tui cũng đã nghe nói nhiều từ hơn một vài năm trước lận nhưng gần đây mới có thời gian research. Đại khái là theo sự hiểu biết của tui là nếu bạn có trong tay một tập dữ liệu cực kỳ lớn gần cả triệu record, mỗi record có khoản vài chục column và mỗi ngày nó lại tăng thêm. Bạn có nhu cầu là cần thao tác nhanh trên tập dữ liệu này để lấy ra một tập dữ liệu cần thiết để phân tích, đưa ra số liệu cụ thể cho một công việc nào đó thì đấy là Big Data. Vậy vấn đề được đặt ra là:

  1. Làm sao để lưu trữ cái đống dữ liệu to lớn đó sao cho dễ quản lý và sử dụng, truy vấn nhanh?
  2. Làm sao để phân tích nhanh nhất có thể đối với dữ liệu cực lớn này?

Với câu hỏi 1, tui đã tìm ra câu trả lời cho bản thân tui đó là MongoDB và Elasticsearch. Hiện tại có rất nhiều loại CSDL dùng để lưu trữ cho Big Data nhưng trong phạm vì nhu cầu sử dụng của tui, thì tui ưng nhất là MongoDB và Elasticsearch (nếu sau này có thêm nhu cầu mới thì research thêm)

Với những ứng dụng cần full text search, cần search nhanh thì dùng Elasticsearch. Đối với ứng dụng mà việc ghi dữ liệu nhiều hơn thì nên dùng MongoDB.

Với câu hỏi 2, lúc đầu research thì thấy mọi người hay đề cập đến Apache Hadoop và Apache Spark và sau một thời gian đọc tài liệu, ebook…. thì tui chọn Apache Spark tại vì cái này nó có thể chơi được với anh Hadoop luôn  Overjoy

Rồi, đó là lý do tại sao có cái bài tutorial về cài đặt Apache Spark. Do nhà thiếu điều kiện nên bài này sẽ hướng dẫn cài Apache Spark trên Windows 10 nha các bạn.

1. Apache Spark là gì?

Apache Spark là một nền tảng tính toán theo cluster mã nguồn mở, được phát triển lần đầu tiên tại AMPLab thuộc đại học California, Berkeley vào năm 2009. Sau này, vào năm 2013, Spark được trao lại cho Apache Software Foundation và phát triển đến ngày nay. Một trong những đặt tính nổi bật nhất của Spark là tốc độ xử lý, do Spark xử lý data hoàn toàn trên bộ nhớ (in – memory processing), ngoài ra có thể kể thêm một số tính năng khác như:

  • Spark Streaming.
  • Machine Learning and Graph.
  • Spark SQL/DataFrame API.
  • Spark’s integration with Hadoop.

Nói sơ sơ vậy thôi, các bạn có thể search thêm trên Google, giờ tiến hành cài đặt luôn nha

2. Cài đặt Spark trên Wondows 10:

Do Spark được viết bằng ngôn ngữ Scala mà Scala thì dựa vào JVM cho nên đầu tiên các bạn phải cài JDK. Các bạn download JDK tại đây: JDK 8. (Nhớ là cài JDK và JRE luôn nha các bạn)

Cài JDK xong, các bạn nhớ tạo biến môi trường JAVA_HOME. Vào Control Panel, chọn System, bên góc trái, chọn Advanced System settings, nó sẽ mở cái của sổ System Properties

Chọn tab Advanced, click nút Environment Variables…

Ở cái khu vục phía trên là tạo biến môi trường cho user, các bạn click nút New…, sau đó nhập nội dung vào như sau:

Ở cái ô Variable value, ở đây do tui cài jdk tại thư mục C:\Java\jdk, còn thư mục cụ thể JDK của các bạn là gì thì bạn ghi cho chính xác nha. Xong Click OK.

Hiện tại các bạn đang đứng ở cái của sổ Environment Variables. Tiếp theo, các bạn set thêm cái thư mục bin của JDK vào biến môi trường PATH. Các bạn tìm cái biến PATH như hình:

chọn nó, click nút Edit… hoặc double click vào biến PATH cũng được

Click nút New…,  thêm dòng %JAVA_HOME%\bin như sau:

Sau đó, click OK, Click tiếp OK ở của sổ Environment Variables. Sau đó mở của sổ Command Prompt lên gõ java -version xem coi nó chạy không, nêu chạy ra như hình là ổn.

Tiếp theo là các bạn download Spark tại chủ của nó: https://spark.apache.org/downloads.html. Hiện tại version mới nhất là 2.0.2 như hình:

Nhưng trong quá trình thử viết demo trên Spark thì tui thấy rằng do Spark 2.0.2 được build bằng Scala 2.11 nó chạy không được tương thích với một số thư viện khác nên tui quyết định chuyển xuống sử dụng Spark 1.6.3 build bằng Scala 2.10 cho nó thuận tiện. Do vậy, các bạn chọn Spark 1.6.3 Pre-built for Hadoop 2.6 như hình sau:

Do lần đầu tìm hiểu, tui khuyến nghị các bạn nên dùng bản Pre-built, khi nào trình mình nó lên cao hơn tí thì hãy dùng bản Source rồi tự built lại

Sau khi download file spark-1.6.3-bin-hadoop2.6.tgz, các bạn giải nén nó bằng winrar vào thư mục nào cũng được, trên máy của tui thì tui extract nó ra thư mục E:\Server\spark\1.6.3

Tiếp theo, các bạn tạo biến môi trường SPARK_HOME và set %SPARK_HOME%\bin vào biến PATH tương tự như khi nảy các làm làm với JDK nha.

Đến đây, vẫn chưa chơi được với anh Spark đâu, các bạn vào trang này: https://github.com/steveloughran/winutils để download cái winutils cho anh Hadoop nữa. Do tui sử dụng Spark 1.6.3 pre-built for Hadoop 2.6 nên tui chọn thư mục trên github là https://github.com/steveloughran/winutils/tree/master/hadoop-2.6.4/bin, kéo xuống bên dưới, các bạn sẽ thấy cái file winutils.exe

Click vô, nó sẽ chuyển sang trang download file này, download xong thì các bạn bỏ nó vào thư mục nào cũng được, ví dụ tui bỏ nó vào thư mục E:\Server\hadoop-winutils\2.6.4. Sau đó, các bạn tạo biến môi trường là HADOOP_HOME với đường dẫn là cái thư mục chứa file winutils này.

Đến đây, làm tiếp cái bước cuối nữa, các bạn vào thư mục %SPARK_HOME%\conf, kiếm cái file log4j.properties.template, các bạn copy nó thành file log4j.properties

Mở file này lên, tìm đến cái dòng sau:

đổi cái chữ INFO thành WARN, sau đó save lại nha

Rồi, sau khi setup, cấu hình xong, chạy thử coi Spark nó hoạt động không nha. Các bạn mở Command Prompt lên, đứng ở bất kỳ thư mục nào cũng được rồi gõ lệnh spark-shell, nếu nó chạy ra được chữ SPARK 1.6.3 như hình

và nó tiếp tục chạy cho đến khi các bạn thấy dấu nháy scala> là coi như Spark run thành công.  Congratulations

Tired Vậy là kết thúc bài giới thiệu và cài Apache Spark. Bài sau, tui sẽ viết thử một vài ứng dụng chạy thử trên nền Spark này bằng ngôn ngữ Scala.  THANK-YOU

Sharing is caring!

Viết ứng dụng Word Count trên Spark bằng Scala, sử dụng Intellij IDEA Community

Vincent Le

Tui là Lê Minh Đạt, tên tiếng anh là Vincent(do thích nhân vật Vincent Valentine, ai từng là fan của trò Final Fantasy VII thì sẽ biết nhân vật này, hehe). Đang tập tành làm một blogger viết về mảng lập trình, mong muốn được chia sẻ những gì đã học được, tích góp được trong 10 năm đi làm thợ code.

shares