是否有与Apache Hadoop等效的.NET?

时间:2008-12-04 01:18:44

标签: c# .net hadoop mapreduce

所以,我一直在热切地关注着Hadoop,说实话我很着迷,事情并没有变得更冷。

我唯一的小问题是我是C#开发人员,而且是Java版本。

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

15 个答案:

答案 0 :(得分:57)

您是否看过使用Hadoop's streaming?

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

我开始看到异构方法通常是最好的,看起来其他人也在做同样的事情。

如果您查看协议缓冲区或Facebook的节俭等项目,您会发现有时最好使用另一种语言编写的应用程序并使用您偏好的语言构建粘合剂。

答案 1 :(得分:13)

答案 2 :(得分:13)

最近,MySpace发布了他们的.NET MapReduce框架Qizmt作为开源,所以这也是这个领域的潜在竞争者。

答案 3 :(得分:10)

我在问题here

中回答了您的问题

在源中说出来:

Microsoft dropped其替代方案(Dryad)支持Hadoop。 明年,他们将发布带有Hadoop集成的MS SQL Server 2012。正如我们所说,Azure和Windows Sever支持正在开发中。

将于2012年上半年推出。

Hadoop是#1 BigData平台,即使是Oracle正在采用它,也将得到开源和专有源(Java,.Net,Python等)的支持。

如果您正在开发某些内容,那么您应该等待.Net平台。

有关可能的内容的更多信息将可用here

答案 4 :(得分:5)

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

话虽如此,如果你正在寻找的Hadoop的分布式执行方面比DryadLINQ真的很棒(不,我不是MS的附属)。只要您拥有Microsoft HPC群集设置,就可以轻松使用DryadLINQ。

您编写的代码实际上只是直接的LINQ代码,除了在IEnumerable<T>上执行LINQ之外,您必须在PartitionedTable<T>(自构建分布式数据结构)上执行它。

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

答案 5 :(得分:4)

你可以研究像RavenDb这样的东西,它为MapReduce提供了相当大的数据支持。因为它内置在.Net中,所以可以使用合适的LINQ客户端API。

http://ravendb.net/

为了帮助您入门,您可以阅读我的blog entery。

答案 6 :(得分:2)

使用Apache Hadoop和流式传输可能更好,因为Apache Hadoop正在由雅虎和Facebook等行业的大巨头积极开发和维护。所以它可以做你期望它做的事。

如果您需要.NET解决方案,请查看Myspace实施@ MySpace Qizmt - MySpace’s Open Source Mapreduce Framework

答案 7 :(得分:2)

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

它既可以在Windows Server上使用,也可以作为Windows Azure服务使用。

答案 8 :(得分:1)

微软研究院有Daytona项目 http://research.microsoft.com/en-us/projects/daytona/

您可以下载它。 C#中有一个WordCount示例。

答案 9 :(得分:1)

您现在可以直接从.NET使用Hadoop Microsoft已发布了SDK来执行此操作。

https://hadoopsdk.codeplex.com/

当然这意味着使用基于Java的Hadoop网络。但是,如果服务器在java中运行,这有关系吗?我相信有人可能试图移植它,但我不认为这是一个好主意,因为公司已经支持java版本,我不认为.NET端口会得到同样的关注。

答案 10 :(得分:1)

看看:

http://www.windowsazure.com/en-us/services/hdinsight/

它是Hadoop for Azure的一个实现,您可以使用.NET来访问它。

答案 11 :(得分:1)

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

答案 12 :(得分:0)

在.NET上有一个非常可爱的MapReduce实现:http://mapsharp.codeplex.com/

答案 13 :(得分:0)

dryad / linq正在进行产品化,并将很快发布: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx 与Microsoft HPC结合使用,提供基于群集的强大解决方案,用于查询非结构化数据

答案 14 :(得分:0)

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