因此,我一直对Hadoop怀有浓厚的兴趣,老实说,我很着迷,事情并没有变得那么酷。
我唯一的小问题是我是C#开发人员,并且使用Java。
我并不是在不那么了解Java,而是在寻找包含Google MapReduce方法的Hadoop.net或NHadoop或.NET项目。有人知道吗?
因此,我一直对Hadoop怀有浓厚的兴趣,老实说,我很着迷,事情并没有变得那么酷。
我唯一的小问题是我是C#开发人员,并且使用Java。
我并不是在不那么了解Java,而是在寻找包含Google MapReduce方法的Hadoop.net或NHadoop或.NET项目。有人知道吗?
Answers:
你有看过使用 Hadoop的流传输?
我一直在python中使用它:-)。
我开始发现异构方法通常是最好的方法,看起来其他人也一样。
如果您查看诸如协议缓冲区或Facebook节俭之类的项目,您会发现有时最好使用以其他语言编写的应用程序,并以自己喜欢的语言来构建胶水。
请参阅http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx或http://msdn.microsoft.com/en-us/library/dd179423.aspx
最近,MySpace发布了他们的.NET MapReduce框架Qizmt作为开放源代码,因此这也是该领域的潜在竞争者。
我想说DryadLinq是我们.NET人士与Hadoop最接近的东西。但这取决于您要使用hadoop的用途。如果您正在寻找优化的自维护分布式文件(DFS)系统,那么DryadLINQ并不是您想要的。它与DFS类似,但是您必须手动构建分区并分发每个分区。
话虽这么说,如果与DryadLINQ相比,它要寻找的是Hadoop的分布式执行方面真的很棒(而且,我不隶属于MS)。只要您具有Microsoft HPC群集设置,就比使用DryadLINQ更加容易。
您编写的代码实际上只是简单的LINQ代码,只不过IEnumerable<T>
您必须对其执行PartitionedTable<T>
(自建分布式数据结构),而不是执行LINQ 。
DryadLINQ真正酷的是开发算法时的快速转换时间(尝试,测试,调整,重复)。您只需编写LINQ代码即可进行计算,而DryadLINQ将负责整个分布式执行部分。这是我遇到的最自然的类比,它使得编写用于分布式处理的代码就像编写用于单进程处理的代码一样。
您可以查看类似RavenDb的东西,它为相当大的数据量提供了对MapReduce的非常不错的支持。由于它内置于.Net中,因此可以使用适当的LINQ客户端API。
为了让您入门,您可以阅读我的博客 Entery。
最好使用Apache Hadoop和流传输,因为Apache Hadoop是由Yahoo和Facebook这样的行业巨头共同积极开发和维护的。因此它可以完成您期望的操作。
如果您需要.NET中的解决方案,请检查Myspace实现@ MySpace Qizmt-MySpace的开源Mapreduce框架
微软正在推出HDInsight,该产品被称为“ 100%与Apache兼容的Hadoop发行版”。
它在Windows Server和Windows Azure服务上均可用。
Microsoft Research拥有Daytona项目 http://research.microsoft.com/en-us/projects/daytona/
您可以下载它。C#中有一个WordCount示例。
现在,您可以直接从.NET直接使用Hadoop。Microsoft已经发布了一个SDK。
https://hadoopsdk.codeplex.com/
当然,这意味着使用基于Java的Hadoop网络。但是服务器是否在Java中运行是否重要?我确信有人可能会尝试移植它,但是我认为这不是一个好主意,因为公司已经在支持Java版本,并且我认为.NET端口不会受到同样的关注。
在内部,Microsoft一直在使用Cosmos。这已在Microsoft外部通过Azure提供。它的名称为Azure Data Lake Analytics和Azure Data Lake Store。Azure数据湖分析是将Yarn作为服务,将Azure Data Lake Store WebHDFS作为服务。Azure Data Lake Analytics的第一个版本仅托管基于Transact-SQL + C#的语言U-SQL。
.NET上有一个非常可爱的MapReduce实现:http://mapsharp.codeplex.com/
dryad / linq正在生产中,并将很快发布:http : //blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx 结合使用与Microsoft HPC一起使用的功能强大的基于群集的解决方案,用于查询非结构化数据