【问题标题】:Is there a .NET equivalent to Apache Hadoop? [closed]是否有与 Apache Hadoop 等效的 .NET? [关闭]
【发布时间】:2016-03-26 00:23:41
【问题描述】:

所以,我一直怀着浓厚的兴趣关注Hadoop,老实说,我很着迷,事情并没有变得更酷。

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

并不是我对 Java 的了解不如我在寻找 Hadoop.net 或 NHadoop 或采用 Google MapReduce 方法的 .NET 项目。有人知道吗?

【问题讨论】:

    标签: c# .net hadoop mapreduce


    【解决方案1】:

    你看过使用Hadoop's streaming?

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

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

    如果您查看诸如协议缓冲区或 facebook 的 thrift 之类的项目,您会发现有时最好使用用另一种语言编写的应用程序并以您喜欢的语言构建粘合剂。

    【讨论】:

    • 这不是在 C# 中使用 Hadoop,流式解耦流程,数据作为字符串传递,效率不高。
    【解决方案2】:

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

    【讨论】:

    • 他们的许可证是 GPL ;( 如果他们选择限制较少的东西会很棒...
    • 在这种情况下,GPL 不太可能妨碍您。只要您不将您的修改分发到您的组织之外的源(如果您进行过任何修改),您就不需要发布任何代码。
    • 我们分发我们的闭源产品(作为产品公司)。如果我们试图依赖 GPL 的软件组件,那么我们也需要自动分发我们的源代码,这不是 LGPL,在闭源项目中包含一个库是可以的:(
    • 完全公平。我只是认为大多数人使用 Map-Reduce 框架不会有这个限制。也就是说,我不了解 MySpace 将其作为 GPL 发布的商业案例,据我所知他们没有单独授权。
    • 我也不懂!如果有人想创建一个“MySpace 杀手”,他们可能会通过在内部使用它来满足(无需重新分发二进制文件或源代码)。我想使用 AGPL(Affero GPL)更适合使用它来修复公共 Web 服务的漏洞,而不是分发任何源......悲伤和奇怪:/
    【解决方案3】:

    【讨论】:

    • 微软取消了 Dryad 并决定坚持使用 Hadoop
    • @ArnonRotem-Gal-Oz:你有来自微软的那个声明的参考吗?
    • 请参阅blogs.technet.com/b/windowshpc/archive/2011/11/11/… - “作为此版本的一部分,我们还更新了 LINQ to HPC 的预览版,但是,这将是最终预览版,我们不打算推出生产版本。根据我们 10 月在 PASS 会议上的声明,我们将集中精力将 Apache Hadoop 引入 Windows Server 和 Windows Azure ..."
    【解决方案4】:

    我在我的问题here中回答了你的问题

    在源码这里说:

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

    2012年上半年上市。

    Hadoop 是排名第一的BigData 平台,将得到开源和专有源(Java、.Net、Python 等)的支持,甚至 Oracle 也在采用它。

    如果你正在开发一些东西,如果你在 .Net 平台上,你应该等待。

    更多关于什么是可能的信息将可用here

    【讨论】:

      【解决方案5】:

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

      话虽如此,如果您正在寻找的 Hadoop 的分布式执行方面比 DryadLINQ 真的很棒(不,我不隶属于 MS)。只要你有一个Microsoft HPC 集群设置,那么使用 DryadLINQ 真的很容易。

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

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

      【讨论】:

        【解决方案6】:

        您可以研究 RavenDb 之类的东西,它为相当大的数据量的 MapReduce 提供了非常好的支持。因为它是在 .Net 中构建的,所以可以使用适当的 LINQ 客户端 API。

        http://ravendb.net/

        为了让你开始,你可以阅读我的blog entery。

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            【解决方案8】:

            Microsoft 正在推出 HDInsight,标榜为“100% 与 Apache 兼容的 Hadoop 发行版”。

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

            【讨论】:

            • HDInsight 是 Hortonworks 发行版。其他主要供应商也在与微软合作,在 Azure 上提供他们的发行版。与问题有关:HDInsight 有 .NET 接口,但 HDInsight 本身不是 .NET
            【解决方案9】:

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

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

            【讨论】:

              【解决方案10】:

              您现在可以直接从 .NET 使用 Hadoop 微软已经发布了一个 SDK 来实现这一点。

              https://hadoopsdk.codeplex.com/

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

              【讨论】:

                【解决方案11】:

                看看:

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

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

                【讨论】:

                  【解决方案12】:

                  在内部,微软一直在使用 Cosmos。这已通过 Azure 在 Microsoft 之外提供。它被命名为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# 的语言。

                  【讨论】:

                    【解决方案13】:

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

                    【讨论】:

                      【解决方案14】:

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

                      【讨论】:

                      • /将很快发布/不会,请参阅上面的答案
                      • 嫌疑人 Dryad 和 HDInsight 不和。一直听说微软将放弃 Dryad for HDInsight
                      【解决方案15】:

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

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2013-06-24
                        • 2010-09-06
                        • 2012-09-03
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2011-09-21
                        相关资源
                        最近更新 更多