NET เทียบเท่ากับ Apache Hadoop หรือไม่ [ปิด]


98

ดังนั้นฉันจึงมองHadoopด้วยความสนใจและพูดตามตรงว่าฉันหลงใหลสิ่งต่าง ๆ ไม่ได้เย็นลงมากนัก

ปัญหาเล็กน้อยของฉันคือฉันเป็นนักพัฒนา C # และอยู่ใน Java

มันไม่ใช่ว่าผมไม่เข้าใจ Java มากที่สุดเท่าที่ฉันมองหา Hadoop.net หรือ NHadoop หรือโครงการ .NET ที่โอบกอดGoogle MapReduceวิธี มีใครรู้บ้างไหม?

คำตอบ:


57

คุณเคยดูการใช้สตรีมมิ่งของ Hadoop หรือไม่?

ฉันใช้มันใน python ตลอดเวลา :-)

ฉันเริ่มเห็นว่าวิธีการที่แตกต่างกันมักจะดีที่สุดและดูเหมือนว่าคนอื่น ๆ ก็ทำเช่นเดียวกัน

หากคุณดูโครงการเช่นโปรโตคอลบัฟเฟอร์หรือความเจริญเติบโตของ Facebook คุณจะเห็นว่าบางครั้งควรใช้แอปที่เขียนด้วยภาษาอื่นและสร้างกาวในภาษาที่คุณต้องการ


2
นี่ไม่ใช่เทคนิคการโทรที่มี Hadoop ใน C # การสตรีมแยกกระบวนการและข้อมูลจะถูกส่งผ่านเป็นสตริงซึ่งอาจไม่มีประสิทธิภาพมากนัก
Felice Pollano

13

7
Microsoft ยกเลิก Dryad และตัดสินใจที่จะใช้ Hadoop
Arnon Rotem-Gal-Oz

@ ArnonRotem-Gal-Oz: คุณมีข้อมูลอ้างอิงของคำสั่งนั้นจาก Microsoft หรือไม่?
Abel

4
ดูblogs.technet.com/b/windowshpc/archive/2011/11/11/… - "ในการเปิดตัวนี้เราได้อัปเดต LINQ เวอร์ชันพรีวิวเป็น HPC ด้วยอย่างไรก็ตามนี่จะเป็นตัวอย่างสุดท้ายและเรา ไม่ได้วางแผนที่จะก้าวไปข้างหน้าด้วยการเปิดตัวการผลิตเพื่อให้สอดคล้องกับการประกาศของเราในเดือนตุลาคมในการประชุม PASS เราจะมุ่งเน้นความพยายามของเราในการนำ Apache Hadoop ไปสู่ทั้ง Windows Server และ Windows Azure ... "
Arnon Rotem-Gal-Oz

13

เมื่อเร็ว ๆ นี้ MySpace ได้เปิดตัว. NET MapReduce framework, Qizmtเป็นโอเพ่นซอร์สดังนั้นนี่จึงเป็นคู่แข่งที่มีศักยภาพในพื้นที่นี้


2
ใบอนุญาตของพวกเขาคือ GPL (จะดีมากถ้าพวกเขาเลือกสิ่งที่มีข้อ จำกัด น้อยกว่า ...
IgorK

3
ไม่น่าเป็นไปได้ที่ GPL จะเข้ามาขวางคุณในกรณีนี้ ตราบเท่าที่คุณไม่ได้แจกจ่ายการแก้ไขของคุณไปยังแหล่งที่มา (หากคุณได้ทำการแก้ไข) นอกองค์กรของคุณคุณจะไม่ต้องปล่อยรหัสใด ๆ ของคุณ
foxxtrot

เราจัดจำหน่ายผลิตภัณฑ์ปิดแหล่งที่มาของเรา (ในฐานะ บริษัท ผลิตภัณฑ์) และถ้าเราพยายามพึ่งพาส่วนประกอบซอฟต์แวร์ GPL'ed เราก็จำเป็นต้องแจกจ่ายแหล่งข้อมูลของเราโดยอัตโนมัติเช่นกันไม่ใช่ LGPL ที่การรวมไลบรารีในโครงการปิดก็โอเค :(
IgorK

ยุติธรรมอย่างสมบูรณ์ ฉันแค่คิดว่าการใช้กรอบการลดแผนที่ของคนส่วนใหญ่จะไม่มีข้อ จำกัด นี้ ที่กล่าวว่าฉันไม่เข้าใจกรณีธุรกิจของ MySpace ในการปล่อยสิ่งนี้เป็น GPL เท่าที่ฉันสามารถบอกได้ว่าพวกเขาไม่ได้ออกใบอนุญาตแยกต่างหาก
foxxtrot

ฉันไม่เข้าใจเหมือนกัน! หากใครบางคนต้องการสร้าง 'MySpace killer' พวกเขาน่าจะพอใจโดยใช้มันในบ้าน (โดยไม่ต้องแจกจ่ายไบนารีหรือแหล่งที่มาซ้ำ) ฉันเดาว่าการใช้ AGPL (Affero GPL) จะเหมาะสมกว่าในการแก้ไขช่องโหว่ด้วยบริการเว็บสาธารณะโดยใช้และไม่แจกจ่ายแหล่งใด ๆ ... เศร้าและแปลก: /
IgorK

10

ฉันตอบคำถามของคุณในคำถามของฉันที่นี่

ที่จะพูดที่นี่ในแหล่งที่มา:

Microsoft ทิ้งทางเลือกอื่น ( Dryad ) เพื่อสนับสนุน Hadoop ในปีหน้าพวกเขาจะเปิดตัว MS SQL Server 2012 ที่มีการรวม Hadoop การสนับสนุน Azure และ Windows Sever กำลังได้รับการพัฒนาแม้ในขณะที่เราพูด

จะพร้อมให้บริการในครึ่งแรกของปี 2555

Hadoop เป็นแพลตฟอร์มBigDataอันดับ 1 และจะได้รับการสนับสนุนโดยโอเพนซอร์สและซอร์สที่เป็นกรรมสิทธิ์ (Java, .Net, Python, ... ) แม้แต่ Oracle ก็นำมาใช้

หากคุณกำลังพัฒนาบางสิ่งคุณควรรอหากคุณอยู่บนแพลตฟอร์ม. Net

ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่เป็นไปได้จะอยู่ที่นี่


5

ฉันจะบอกว่า DryadLinq เป็นสิ่งที่ใกล้เคียงที่สุดที่พวกเราชาว. NET มีต่อ Hadoop แต่ขึ้นอยู่กับว่าคุณต้องการใช้ hadoop เพื่ออะไร หากคุณกำลังมองหาระบบรักษาไฟล์แบบกระจาย (DFS) ที่ปรับให้เหมาะสมที่สุดแล้วDryadLINQไม่ใช่สิ่งที่คุณกำลังมองหา มีอะนาล็อกกับ DFS แต่คุณต้องสร้างพาร์ติชันด้วยตนเองและแจกจ่ายแต่ละพาร์ติชัน

ดังที่กล่าวไว้หากมุมมองการดำเนินการแบบกระจายของ Hadoop ที่คุณกำลังมองหากว่า DryadLINQ นั้นยอดเยี่ยมอย่างแท้จริง (และไม่ฉันไม่ได้มีส่วนเกี่ยวข้องกับ MS) ตราบใดที่คุณมีการตั้งค่าคลัสเตอร์Microsoft HPCกว่าที่จะใช้ DryadLINQ นั้นง่ายมาก

รหัสที่คุณเขียนเป็นเพียงโค้ด LINQ ที่ตรงจริงๆยกเว้นแทนที่จะเรียกใช้ LINQ โดยที่IEnumerable<T>คุณต้องดำเนินการPartitionedTable<T>(โครงสร้างข้อมูลแบบกระจายที่สร้างขึ้นเอง)

สิ่งที่เจ๋งมากเกี่ยวกับ DryadLINQ คือการหมุนรอบตัวเองอย่างรวดเร็ว (ลองทดสอบปรับแต่งทำซ้ำ) เมื่อพัฒนาอัลกอริทึม คุณเพียงแค่เขียนโค้ด LINQ เพื่อทำการคำนวณของคุณและ DryadLINQ จะดูแลส่วนการดำเนินการแบบกระจายทั้งหมด มันเป็นอะนาล็อกที่เป็นธรรมชาติที่สุดที่ฉันเคยพบมาซึ่งทำให้การเขียนโค้ดสำหรับการประมวลผลแบบกระจายเหมือนกับการเขียนโค้ดสำหรับการประมวลผลแบบกระบวนการเดียว


4

คุณสามารถตรวจสอบบางสิ่งเช่น RavenDb ซึ่งให้การสนับสนุนที่ดีมากสำหรับ MapReduce สำหรับข้อมูลขนาดใหญ่พอสมควร เนื่องจากมีอยู่ใน. Net จึงมี API ไคลเอนต์ LINQ ที่เหมาะสมพร้อมใช้งาน

http://ravendb.net/

ในการเริ่มต้นคุณสามารถอ่านบล็อกของฉันได้


2

อาจจะดีกว่าถ้าใช้ Apache Hadoop และสตรีมมิ่งเนื่องจาก Apache Hadoop กำลังได้รับการพัฒนาและดูแลโดยยักษ์ใหญ่ในอุตสาหกรรมเช่น Yahoo และ Facebook ดังนั้นจึงสามารถทำในสิ่งที่คุณคาดหวังให้ทำ

หากคุณต้องการโซลูชันใน. NET โปรดตรวจสอบการใช้งาน Myspace @ MySpace Qizmt - Mapreduce Framework โอเพนซอร์สของ MySpace


2

Microsoft อยู่ระหว่างการเปิดตัวHDInsightซึ่งเรียกเก็บเงินเป็น "การแจกจ่าย Hadoop ที่เข้ากันได้กับ Apache 100%"

มีให้บริการทั้งบน Windows Server และบริการ Windows Azure


1
HDInsight คือการกระจาย Hortonworks ผู้ผลิตรายใหญ่รายอื่น ๆ กำลังทำงานร่วมกับ Microsoft เพื่อเสนอการแจกจ่ายบน Azure เกี่ยวกับคำถาม: มีอินเทอร์เฟซ. NET สำหรับ HDInsight แต่ HDInsight ไม่ใช่. NET
ashtonium


1

ตอนนี้คุณสามารถใช้ Hadoop ได้โดยตรงจาก. NET Microsoft ได้ปล่อย SDK ให้ทำเช่นนั้น

https://hadoopsdk.codeplex.com/

แน่นอนว่านี่หมายถึงการใช้เครือข่าย Hadoop ที่ใช้ java แต่มันสำคัญหรือไม่ว่าเซิร์ฟเวอร์กำลังทำงานใน java? ฉันแน่ใจว่าอาจมีคนพยายามที่จะพอร์ต แต่ฉันไม่คิดว่ามันจะเป็นความคิดที่ดีเนื่องจาก บริษัท ต่างๆกำลังสนับสนุนเวอร์ชัน java อยู่แล้วและฉันไม่คิดว่าพอร์ต. NET จะได้รับความสนใจเช่นเดียวกัน



1

ภายใน Microsoft ได้ใช้ Cosmos สิ่งนี้พร้อมใช้งานภายนอก Microsoft ผ่าน Azure มันชื่อAzure ข้อมูลทะเลสาบ AnalyticsและAzure ข้อมูลทะเลสาบร้าน การวิเคราะห์ Azure Data Lake เป็นประเภทของ Yarn as a service และ Azure Data Lake Store WebHDFS เป็นบริการ Azure Data Lake Analytics เวอร์ชันแรกโฮสต์เฉพาะ U-SQL ภาษาที่อิงตาม Transact-SQL + C #



0

dryad / linq กำลังผลิตและจะออกเร็ว ๆ นี้: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx ใช้ร่วมกัน ด้วย Microsoft HPC สำหรับโซลูชันแบบคลัสเตอร์ที่มีประสิทธิภาพสำหรับการสืบค้นข้อมูลที่ไม่มีโครงสร้าง


/ จะออกเร็ว ๆ นี้ /จะไม่ดูคำตอบด้านบน
om-nom-nom

1
ผู้ต้องสงสัย Dryad และ HDInsight ขัดแย้งกัน โปรดทราบว่า Microsoft จะวาง Dryad สำหรับ HDInsight
SwabJat

0

ดังที่คนอื่น ๆ ได้กล่าวไว้DryadLINQเป็นกรอบการเขียนโปรแกรมที่ช่วยให้นักพัฒนาสามารถเขียนแบบสอบถาม LINQ และดำเนินการบนคลัสเตอร์ในลักษณะที่คล้ายกับ MapReduce เมื่อเร็ว ๆ นี้โครงการ DryadLINQ ได้รับการเผยแพร่ภายใต้สิทธิ์การใช้งาน Apache บนGitHubและรุ่นนี้รวมถึงการสนับสนุนสำหรับการทำงานบนคลัสเตอร์ YARN (รวมถึงคลัสเตอร์ Azure HDInsight)

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