如何有效地将大数据从数据中心移动到 Azure Blob 存储,以便以后通过 HDInsight 进行处理?
Posted
技术标签:
【中文标题】如何有效地将大数据从数据中心移动到 Azure Blob 存储,以便以后通过 HDInsight 进行处理?【英文标题】:How to efficiently move big data from a data center to Azure Blob Storage for later processing via HDInsight? 【发布时间】:2014-02-21 11:44:39 【问题描述】:我需要设置计划任务,目的是将大量数据从本地数据中心复制/移动到 Windows Azure Blob 存储。
我探索的选项是 WebHDFS 和 Flume(HDInsight 目前似乎不支持后者)。
将非结构化文件从数据中心传输到 Windows Azure Blob 存储的最有效方法是什么?
【问题讨论】:
【参考方案1】:如果您使用的是 HDInsight,则根本不需要涉及 HDFS。事实上,您不需要运行集群来上传数据。将数据导入 HDInsight 的最佳方式是使用标准 .NET 客户端或 Azure Management Studio 或 AzCopy 等第三方将其上传到 Azure Blob 存储。
如果您想不断地流式传输数据,那么您最好设置 Flume、Kafka 或 Storm 之类的东西来处理 HDInsight 集群,但这需要对集群本身进行一定程度的自定义,这意味着您'将遇到重启问题,并且需要一个永久集群。
【讨论】:
Storm 现在是 Azure 通用可用性的一部分,并且不需要在集群上进行自定义以实现基本实现。 azure.microsoft.com/blog/2015/02/20/…【参考方案2】:你没有提到你在谈论多少数据(你只是说大量)。但是...假设它是 100 TB 或 PB,Azure 有一个 Import/Export Service 提供磁盘传送。
除此之外,您还需要使用自己的代码或使用第三方工具(例如 Microsoft 的 AzCopy)将您的内容传输到 blob。请记住,您将能够执行并行上传以压缩时间(只要您的数据中心的带宽足够大,让您看到好处)。
【讨论】:
【参考方案3】:您可以使用 CloudBerry 驱动器和 Flume 将数据流式传输到 HDInsight 群集/Azure Blob 存储
http://blogs.msdn.com/b/bigdatasupport/archive/2014/03/18/using-apache-flume-with-hdinsight.aspx
【讨论】:
【参考方案4】:不,您不能使用 Flume 将数据直接流式传输到 HDInsight。来自微软博客的帖子说
绝大多数 Flume 消费者会将他们的流数据放入 HDFS,而 HDFS 并不是 HDInsight 使用的默认文件系统。即使是这样 - 我们不会公开面向公众的名称节点或 HDFS 端点,因此 Flume 代理将很难到达集群!因此,出于这些原因和其他一些原因,答案通常是“不。……它不起作用或不受支持”
来源:http://blogs.msdn.com/b/bigdatasupport/archive/2014/03/18/using-apache-flume-with-hdinsight.aspx?CommentPosted=true#commentmessage
【讨论】:
【参考方案5】:还值得一提的是 ExpressRoute 选项。 Microsoft 现在有一个名为 ExpressRoute 的程序,您的数据中心可以与您的 ISP 合作以更快的连接直接连接到 Azure。另见http://azure.microsoft.com/en-us/services/expres-s-route/
【讨论】:
以上是关于如何有效地将大数据从数据中心移动到 Azure Blob 存储,以便以后通过 HDInsight 进行处理?的主要内容,如果未能解决你的问题,请参考以下文章
如何有效地将大文件加载到 IndexedDB 存储中?我的应用程序在超过 100,000 行时崩溃
如何有效地将压缩的 json 数据推送到 azure 事件中心并在 azure 流分析中处理?
嗨,我们可以使用自动电源将大 XML 文件存储到 azure sql db 中吗?