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