Có .NET tương đương với Apache Hadoop không? [đóng cửa]


98

Vì vậy, tôi đã nhìn vào Hadoop với sự quan tâm sâu sắc và thành thật mà nói, tôi bị cuốn hút, mọi thứ không trở nên mát mẻ hơn.

Vấn đề nhỏ duy nhất của tôi là tôi là nhà phát triển C # và nó sử dụng Java.

Không phải là tôi không hiểu Java nhiều vì tôi đang tìm kiếm Hadoop.net hoặc NHadoop hoặc dự án .NET áp dụng phương pháp Google MapReduce . Có ai biết về một trong những?

Câu trả lời:


57

Bạn đã xem cách sử dụng chưa tính năng phát trực tuyến của Hadoop chưa?

Tôi sử dụng nó trong python mọi lúc :-).

Tôi bắt đầu thấy rằng cách tiếp cận không đồng nhất thường là tốt nhất và có vẻ như những người khác cũng đang làm như vậy.

Nếu bạn nhìn vào các dự án như bộ đệm giao thức hoặc tiết kiệm của facebook, bạn sẽ thấy rằng đôi khi tốt nhất là sử dụng một ứng dụng được viết bằng ngôn ngữ khác và xây dựng chất kết dính bằng ngôn ngữ bạn thích.


2
Đây không phải là kỹ thuật cho thấy có Hadoop trong C #, việc phân tách luồng các quy trình và dữ liệu được chuyển dưới dạng chuỗi, điều này không thể hiệu quả như vậy.
Felice Pollano

13

7
Microsoft hủy Dryad và quyết định gắn bó với Hadoop
Arnon Rotem-Gal-Oz

@ ArnonRotem-Gal-Oz: bạn có tài liệu tham khảo về tuyên bố đó từ Microsoft không?
Abel

4
xem blog.technet.com/b/windowshpc/archive/2011/11/11/… - "Là một phần của bản phát hành này, chúng tôi cũng đã cập nhật phiên bản xem trước của LINQ thành HPC, tuy nhiên, đây sẽ là bản xem trước cuối cùng và chúng tôi không có kế hoạch tiếp tục với bản phát hành sản xuất. Theo thông báo của chúng tôi vào tháng 10 tại hội nghị PASS, chúng tôi sẽ tập trung nỗ lực để đưa Apache Hadoop lên cả Windows Server và Windows Azure ... "
Arnon Rotem-Gal-Oz

13

Gần đây, MySpace đã phát hành khung công tác .NET MapReduce của họ, Qizmt , dưới dạng Nguồn mở, vì vậy đây cũng là một đối thủ tiềm năng trong không gian này.


2
Giấy phép của họ là GPL; (Sẽ thật tuyệt nếu họ chọn thứ gì đó ít hạn chế hơn ...
IgorK 14/04

3
Thực sự không chắc GPL sẽ cản đường bạn trong trường hợp này. Miễn là bạn không phân phối các sửa đổi của mình cho nguồn (nếu bạn đã thực hiện bất kỳ) bên ngoài tổ chức của mình, bạn sẽ không bị yêu cầu phát hành bất kỳ mã nào của mình.
foxxtrot

Chúng tôi phân phối sản phẩm mã nguồn đóng của mình (như một công ty sản phẩm). Và nếu chúng ta cố gắng dựa vào thành phần phần mềm GPL'ed sau đó chúng tôi tự động cần phải phân phối nguồn của chúng tôi là tốt, nó không phải LGPL nơi bao gồm một thư viện trong dự án mã nguồn đóng là OK :(
IgorK

Hoàn toàn công bằng. Tôi chỉ nghĩ rằng hầu hết mọi người sử dụng khung Map-Reduce sẽ không có giới hạn này. Điều đó nói rằng, tôi không hiểu trường hợp kinh doanh của MySpace về việc phát hành này dưới dạng GPL, theo như tôi có thể nói rằng họ không cấp phép riêng cho nó.
foxxtrot

Tôi cũng không hiểu! Nếu ai đó muốn tạo một 'kẻ giết người MySpace', họ có thể sẽ hài lòng bằng cách sử dụng nó trong nhà (không phân phối lại nhị phân hoặc nguồn). Tôi đoán sử dụng AGPL (Affero GPL) sẽ thích hợp hơn để sửa chữa một lỗ hổng với các dịch vụ web nào sử dụng nó và không phân phối bất kỳ nguồn ... Sad và lạ: /
IgorK

10

Tôi đã trả lời câu hỏi của bạn trong câu hỏi của tôi ở đây

Để nói điều đó ở đây trong nguồn:

Microsoft đã bỏ thay thế của mình ( Dryad ) để ủng hộ Hadoop. Năm tới, họ sẽ phát hành MS SQL Server 2012 với tích hợp Hadoop. Hỗ trợ Azure và Windows Sever đang được phát triển ngay cả khi chúng tôi nói.

Nó sẽ ra mắt vào nửa đầu năm 2012.

Hadoop là nền tảng BigData số 1 và sẽ được hỗ trợ bởi mã nguồn mở và nguồn độc quyền (Java, .Net, Python, ...) ngay cả Oracle cũng đang áp dụng nó.

Nếu bạn đang phát triển một thứ gì đó, bạn nên đợi nếu bạn đang sử dụng nền tảng .Net.

Thông tin thêm về những gì có thể sẽ có sẵn tại đây


5

Tôi có thể nói rằng DryadLinq là thứ gần nhất mà .NET dân gian của chúng tôi phải Hadoop. Nhưng nó phụ thuộc vào những gì bạn muốn sử dụng hadoop cho. Nếu bạn đang tìm kiếm hệ thống tệp phân phối tự bảo trì (DFS) được tối ưu hóa thì DryadLINQ không phải là thứ bạn đang tìm kiếm. Nó tương tự như DFS nhưng bạn phải tự xây dựng các phân vùng và phân phối từng phân vùng.

Điều đó đang được nói, nếu khía cạnh thực thi phân tán của Hadoop mà bạn đang tìm kiếm hơn DryadLINQ thực sự tuyệt vời (và không, tôi không liên kết với MS). Miễn là bạn có thiết lập cụm Microsoft HPC thì việc bắt đầu với DryadLINQ thực sự dễ dàng.

Mã bạn viết thực sự chỉ là mã LINQ thẳng, ngoại trừ việc thay vì thực thi LINQ, IEnumerable<T>bạn phải thực thi nó trênPartitionedTable<T> (cấu trúc dữ liệu phân tán tự xây dựng).

Điều thực sự thú vị về DryadLINQ là thời gian quay nhanh (thử, kiểm tra, điều chỉnh, lặp lại) khi phát triển các thuật toán. Bạn chỉ cần viết mã LINQ để thực hiện các tính toán của mình và DryadLINQ sẽ đảm nhiệm toàn bộ phần thực thi được phân phối. Đó là chất tương tự tự nhiên nhất mà tôi từng gặp giúp việc viết mã để xử lý phân tán giống như viết mã cho quá trình xử lý đơn lẻ.


4

Bạn có thể xem xét một cái gì đó giống như RavenDb, nó cung cấp hỗ trợ rất tốt cho MapReduce đối với kích thước dữ liệu khá lớn. vì nó được xây dựng trong .Net nên một API ứng dụng khách LINQ thích hợp sẽ có sẵn.

http://ravendb.net/

Để bắt đầu, bạn có thể đọc bài đăng blog của tôi .


2

Có thể tốt hơn nếu sử dụng Apache Hadoop và phát trực tuyến vì Apache Hadoop đang được tích cực phát triển và duy trì bởi những gã khổng lồ trong ngành như Yahoo và Facebook. Vì vậy, nó có thể làm những gì bạn mong đợi nó làm.

Nếu bạn cần một giải pháp trong .NET, vui lòng kiểm tra Myspace implement @ MySpace Qizmt - MySpace's Open Source Mapreduce Framework


2

Microsoft đang trong quá trình triển khai HDInsight , được coi là "bản phân phối Hadoop tương thích với Apache 100%" của họ.

Nó có sẵn trên cả Windows Server và dịch vụ Windows Azure.


1
HDInsight là bản phân phối của Hortonworks. Các nhà cung cấp lớn khác cũng đang làm việc với Microsoft để cung cấp các bản phân phối của họ trên Azure. Liên quan đến câu hỏi: có NET giao diện để HDInsight, nhưng HDInsight bản thân không phải là NET
ashtonium


1

Bây giờ bạn có thể sử dụng Hadoop trực tiếp từ .NET Microsoft đã phát hành một SDK để làm điều đó.

https://hadoopsdk.codeplex.com/

Tất nhiên điều này có nghĩa là sử dụng mạng Hadoop dựa trên java. Nhưng có vấn đề gì không nếu máy chủ đang chạy trong java? Tôi chắc chắn rằng ai đó có thể cố gắng chuyển nó nhưng tôi không nghĩ đó là một ý tưởng hay vì các công ty đã ủng hộ phiên bản java và tôi không nghĩ rằng cổng .NET sẽ được chú ý như vậy.



1

Trong nội bộ, Microsoft đã sử dụng Cosmos. Điều này đã được cung cấp bên ngoài Microsoft thông qua Azure. Nó được đặt tên là Azure Data Lake AnalyticsAzure Data Lake Store . Phân tích Azure Data Lake là loại Yarn như một dịch vụ và Azure Data Lake Store WebHDFS như một dịch vụ. Phiên bản đầu tiên của Azure Data Lake Analytics chỉ lưu trữ U-SQL một ngôn ngữ dựa trên Transact-SQL + C #.



0

dryad / linq đang được sản xuất và sẽ sớm được phát hành: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/annonating-linq-to-hpc-beta-2.aspx sử dụng kết hợp với Microsoft HPC để có giải pháp dựa trên cụm, mạnh mẽ để phân loại dữ liệu phi cấu trúc


/ sẽ sớm được phát hành / nó sẽ không, xem câu trả lời ở trên
om-nom-nom

1
Nghi can Dryad và HDInsight mâu thuẫn với nhau. Tiếp tục thông tin rằng Microsoft sẽ bỏ Dryad cho HDInsight
Swab.Jat

0

Như những người khác đã đề cập, DryadLINQ là một khung lập trình cho phép các nhà phát triển viết các truy vấn LINQ và thực thi chúng trên một cụm, theo cách tương tự như MapReduce. Dự án DryadLINQ gần đây đã được phát hành theo giấy phép Apache trên GitHub và bản phát hành bao gồm hỗ trợ chạy trên các cụm YARN (bao gồm cả các cụm Azure HDInsight).

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.