Những người đam mê Big Data thường phải học Scala, Python, R hoặc Java để lập trình trong Hadoop & Spark. Ngôn ngữ cuối cùng được lựa chọn dựa trên hiệu quả của các giải pháp chức năng cho các nhiệm vụ.
Python và Java đã có mặt trên thị trường trong hơn hai thập kỷ. Scala mặc dù được phát minh vào năm 2006 đã được sử dụng rộng rãi hơn từ 4-5 năm qua và Spark đã được phát hành chỉ vài năm trước vào giữa năm 2014. Do đó, khi mọi người bắt đầu lập trình Hadoop, họ chủ yếu chọn Java hoặc Python. Tuy nhiên trong thị trường ngày nay, chúng ta có nhiều lựa chọn hơn vài năm trở lại đây.
Tại sao là Python?
Mặc dù Hadoop được thực hiện trong Java, các ứng dụng MapReduce không cần phải được viết bằng Java, nó có thể được viết bằng Python, R hoặc thậm chí là C ++. Mặc dù nhiều người vẫn có thể dính vào java vì nó nhanh hơn Python
Java = Statically typed + JIT compile + --server flag để tích cực biên dịch mã chạy..
Đối số cổ điển của Java vs. Python có thể tiếp tục.
Một trong những khác biệt quan trọng nhất là chúng ta không phải biên dịch code bằng Python vì nó là một ngôn ngữ kịch bản. Điều này có thể làm cho sự phát triển tương tác của sự phân tích, làm cho việc bảo trì và sửa các ứng dụng trong các môi trường sản xuất đơn giản hơn trong nhiều trường hợp, làm cho code dễ hiểu hơn và dễ đọc hơn, và nhiều hơn thế nữa.
Python với Apache Hadoop được sử dụng để lưu trữ, xử lý và phân tích bộ dữ liệu cực kỳ lớn. Đối với các ứng dụng phát trực tuyến, chúng tôi sử dụng Python để viết bản đồ giảm các chương trình để chạy trên cụm Hadoop. Ngày nay, có rất nhiều dự án mã nguồn mở hỗ trợ Hadoop bằng Python. Python hỗ trợ các dự án hệ sinh thái Hadoop khác và các thành phần của nó như HBase, Hive, Spark, Storm, Flume, Accumulo, và một số khác.
Nếu sử dụng java, Hadoop yêu cầu môi trường thời gian chạy Java (JRE) 1.6 trở lên, vì Hadoop được phát triển trên đầu trang các API của Java.
Java Vs Python
Feature
|
Java
|
Python
|
Execution
|
Thực hiện
nhanh
|
Chậm hơn
|
Typing
|
Nhập tĩnh
|
Gõ động
|
Blooking methods
|
Traditional braces to start and end blocks
|
It uses indentation of blocks
|
Đơn giản
và nhỏ gọn
|
Chi tiết
|
Đơn giản
và nhỏ gọn
|
Ngôn ngữ
|
Thích hợp
nhất cho ngôn ngữ thực hiện cấp thấp
|
Thích hợp là ngôn ngữ "keo"
|
Nền tảng
|
Các ứng
dụng hoạt động trên nhiều nền tảng khác nhau
|
Python
không hỗ trợ tính năng này.
|
R Vs Python
Cả hai Python và R là một trong những ngôn ngữ phổ biến nhất để phân tích dữ liệu, và có người ủng hộ và đối thủ của họ. Trong khi Python thường được ngưỡng mộ vì là một ngôn ngữ có mục đích chung với một cú pháp dễ hiểu và chủ yếu sử dụng trong phát triển web, chức năng của R được phát triển cùng với các nhà thống kê và khoa học dữ liệu, thường được sử dụng cho việc hiển thị dữ liệu. Một trong những thế mạnh chính của R là cộng đồng khổng lồ cung cấp hỗ trợ thông qua danh sách gửi thư, tài liệu do người dùng đóng góp và nhóm Stack Overflow hoạt động rất tích cực.
Apache Spark
Không giống như Hadoop, người anh em họ nhanh hơn Apache Spark framework hỗ trợ nhiều ngôn ngữ: Java, Scala, R và Python. Tuy nhiên, chúng tôi sẽ loại bỏ Java ra khỏi cuộc thảo luận.
Tại sao?
So với Python và Scala, Java quá chi tiết. Để đạt được mục tiêu tương tự, bạn phải viết thêm nhiều dòng mã.
Java 8 làm cho cuộc sống đơn giản hơn bằng cách giới thiệu các biểu thức Lambda, nhưng nó vẫn không sắc nét như Python và Scala.
Quan trọng nhất, Java không hỗ trợ trình bao tương tác REPL (Read-Evaluate-Print Loop), một trình biên dịch lớn khi chọn một ngôn ngữ lập trình để xử lý dữ liệu lớn.
Python Vs Scala
Bây giờ nó đi xuống đến Python vs Scala. Cả hai đều có cú pháp ngắn gọn. Cả hai đều là hướng đối tượng cộng với chức năng. Cả hai đều có cộng đồng ủng hộ nhiệt huyết.
Nhưng những điểm mà Scala vượt qua Python:
- Python nói chung chậm hơn so với Scala. Nếu bạn có logic xử lý đáng kể được viết bằng mã số của riêng bạn, Scala chắc chắn sẽ cung cấp hiệu suất tốt hơn.
- Scala là gõ tĩnh.
- Apache Spark được xây dựng trên Scala
- Khi wrapper Python gọi các mã Spark bên dưới được viết bằng Scala chạy trên một JVM, dịch giữa hai môi trường và ngôn ngữ khác nhau có thể là nguồn lỗi và vấn đề khác.
- Cuối cùng nhưng không kém phần quan trọng, bởi vì Spark được thực hiện trong Scala, sử dụng Scala cho phép bạn truy cập các tính năng mới nhất. Hầu hết các tính năng lần đầu tiên có trên Scala và sau đó là Python.
Tóm lại
Kết luận "Scala là nhanh nhất và vừa dễ sử dụng, trong khi Python chậm hơn nhưng rất dễ sử dụng."
Apache Spark hiện hỗ trợ nhiều ngôn ngữ lập trình, bao gồm Java, Scala, R và Python. Ngôn ngữ nào để lựa chọn cho dự án Spark là một câu hỏi phổ biến được hỏi trên các diễn đàn khác nhau và danh sách gửi thư.
Câu trả lời cho câu hỏi khác nhau tùy từng trường hợp. Mỗi người phải trả lời câu hỏi dựa trên kỹ năng của mình, các trường hợp sử dụng, và cuối cùng là sở thích cá nhân. Nhưng nếu bạn hỏi tôi, Scala là ngôn ngữ của tôi được lựa chọn.
Xem thêm: Làm thế nào để trở thành Java Developer
0 nhận xét:
Đăng nhận xét