是否有一个等效于Apache Hadoop的.NET?[关闭]


98

因此,我一直对Hadoop怀有浓厚的兴趣,老实说,我很着迷,事情并没有变得那么酷。

我唯一的小问题是我是C#开发人员,并且使用Java。

我并不是在不那么了解Java,而是在寻找包含Google MapReduce方法的Hadoop.net或NHadoop或.NET项目。有人知道吗?

Answers:


57

你有看过使用 Hadoop的流传输?

我一直在python中使用它:-)。

我开始发现异构方法通常是最好的方法,看起来其他人也一样。

如果您查看诸如协议缓冲区或Facebook节俭之类的项目,您会发现有时最好使用以其他语言编写的应用程序,并以自己喜欢的语言来构建胶水。


2
在C#中使用Hadoop并不是一件技术上的事情,流技术使流程脱钩,并且数据以字符串形式传递,这可能没有那么高效。
Felice Pollano

13

7
微软取消了Dryad,并决定坚持使用Hadoop
Arnon Rotem-Gal-Oz

@ ArnonRotem-Gal-Oz:您是否有Microsoft对该声明的引用?
亚伯2012年

4
请参阅blogs.technet.com/b/windowshpc/archive/2011/11/11/…- “作为此版本的一部分,我们还将LINQ的预览版本更新为HPC,但是,这将是最终预览,我们我们不打算继续进行生产发布。根据我们在10月份PASS会议上的宣布,我们将集中精力将Apache Hadoop引入Windows Server和Windows Azure中……”
Arnon Rotem-Gal-Oz

13

最近,MySpace发布了他们的.NET MapReduce框架Qizmt作为开放源代码,因此这也是该领域的潜在竞争者。


2
他们的执照是GPL;(如果他们选择了限制性较小的东西,那就太好了……
IgorK

3
在这种情况下,GPL实际上不太可能妨碍您。只要您不对组织外部的源代码进行修改(如果进行了修改),就不需要发布任何代码。
foxxtrot 2011年

我们分发封闭源产品(作为产品公司)。而且,如果我们尝试依赖GPL的软件组件,那么我们也需要自动分发源代码,这不是LGPL的地方,在封闭源代码项目中包括一个库就可以了:(
IgorK,2011年

完全公平。我只是认为大多数人对Map-Reduce框架使用不会有此限制。就是说,据我所知,他们并没有单独授权MySpace,我不理解将MySpace作为GPL发布的商业案例。
foxxtrot 2011年

我也不明白!如果有人想创建一个“ MySpace杀手”,他们很可能会在内部使用它而满意(无需重新分配二进制或源代码)。我猜想使用AGPL(Affero GPL)更适合修复使用它的公共Web服务漏洞,而不分发任何源...
令人遗憾

10

我回答了你的问题 这里

在源代码中要在这里说:

微软放弃了它的替代品(Dryad)来支持Hadoop。明年,他们将发布具有Hadoop集成的MS SQL Server 2012。甚至在我们讲话时,Azure和Windows Sever的支持也正在开发中。

该产品将于2012年上半年上市。

Hadoop是排名第一的BigData平台,即使Oracle正在采用它,也将受到开源和专有资源(Java,.Net,Python等)的支持。

如果您正在开发某些东西,那么如果您使用的是.Net平台,则应该等待。

有关可能的更多信息,请点击此处


5

我想说DryadLinq是我们.NET人士与Hadoop最接近的东西。但这取决于您要使用hadoop的用途。如果您正在寻找优化的自维护分布式文件(DFS)系统,那么DryadLINQ并不是您想要的。它与DFS类似,但是您必须手动构建分区并分发每个分区。

话虽这么说,如果与DryadLINQ相比,它要寻找的是Hadoop的分布式执行方面真的很棒(而且,我不隶属于MS)。只要您具有Microsoft HPC群集设置,就比使用DryadLINQ更加容易。

您编写的代码实际上只是简单的LINQ代码,只不过IEnumerable<T>您必须对其执行PartitionedTable<T>(自建分布式数据结构),而不是执行LINQ 。

DryadLINQ真正酷的是开发算法时的快速转换时间(尝试,测试,调整,重复)。您只需编写LINQ代码即可进行计算,而DryadLINQ将负责整个分布式执行部分。这是我遇到的最自然的类比,它使得编写用于分布式处理的代码就像编写用于单进程处理的代码一样。


4

您可以查看类似RavenDb的东西,它为相当大的数据量提供了对MapReduce的非常不错的支持。由于它内置于.Net中,因此可以使用适当的LINQ客户端API。

http://ravendb.net/

为了让您入门,您可以阅读我的博客 Entery。



2

微软正在推出HDInsight,该产品被称为“ 100%与Apache兼容的Hadoop发行版”。

它在Windows Server和Windows Azure服务上均可用。


1
HDInsight是Hortonworks发行版。其他主要供应商也正在与Microsoft合作,以在Azure上提供其发行版。与这个问题有关:HDInsight有.NET接口,但HDInsight本身不是.NET
ashtonium 2015年


1

现在,您可以直接从.NET直接使用Hadoop。Microsoft已经发布了一个SDK。

https://hadoopsdk.codeplex.com/

当然,这意味着使用基于Java的Hadoop网络。但是服务器是否在Java中运行是否重要?我确信有人可能会尝试移植它,但是我认为这不是一个好主意,因为公司已经在支持Java版本,并且我认为.NET端口不会受到同样的关注。



1

在内部,Microsoft一直在使用Cosmos。这已在Microsoft外部通过Azure提供。它的名称为Azure Data Lake AnalyticsAzure Data Lake Store。Azure数据湖分析是将Yarn作为服务,将Azure Data Lake Store WebHDFS作为服务。Azure Data Lake Analytics的第一个版本仅托管基于Transact-SQL + C#的语言U-SQL。




0

正如其他人提到的那样,DryadLINQ是一个编程框架,允许开发人员以类似于MapReduce的方式编写LINQ查询并在集群上执行它们。DryadLINQ项目最近在GitHub上以Apache许可发布,并且该发布包含对在YARN群集(包括Azure HDInsight群集)上运行的支持。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.