1

我们有一个称为 Xtrace 的日志记录系统。我们使用该系统在 SQL Azure 数据库中转储日志、异常、跟踪等。然后,运维团队将这些数据用于调试、SCOM 目的。考虑到 SQL Azure 的 150 GB 限制,我们正在考虑使用 HDInsight(大数据)服务。

  1. 如果我们将数据转储到 Azure 表存储中,HDInsight 服务是否适用于 ATS?

  2. 或者它只适用于 blob 存储,这意味着需要将日志记录创建为 blob 存储上的文件?

    1. 最后一个问题。考虑到我上面解释的场景,使用 HDInsight 服务是否是一个不错的选择?
4

2 回答 2

1

HDInsight 将使用来自 HDFS 的内容,或者来自通过 Azure Storage Vault (ASV) 映射到 HDFS 的 blob 存储,它有效地在 blob 存储之上提供了一个 HDFS 层。后者是推荐的方法,因为您可以将大量内容写入 Blob 存储,这可以很好地映射到稍后可由 HDInsight 作业使用的文件系统。这对于日志/跟踪之类的东西非常有用。想象一下,将每小时日志写入特定容器中的单独 blob。然后,您将创建 HDInsight 群集,并将其附加到同一存储帐户。然后,指定输入目录变得非常简单,该目录映射到指定存储容器内的文件,然后就可以使用了。

您还可以将数据存储在 Windows Azure SQL DB(传统命名:“SQL Azure”)中,并使用名为Sqoop的工具将数据直接从 SQL DB 导入 HDFS 进行处理。但是,您将拥有您在问题中提到的 150GB 限制。

没有从 Table Storage 到 HDFS 的内置映射;您需要创建某种类型的转换器来从表存储中读取并写入文本文件以进行处理(但我认为直接写入文本文件会更有效,无需进行批量读/写以准备您的HDInsight 处理)。当然,如果您正在对日志数据执行非 HDInsight 查询,那么最初存储到表存储中,然后在每次启动 HDInsight 作业时提取您需要的特定数据可能确实是有益的。

Azure 门户上有一些HDInsight 文档,提供了有关 HDFS + Azure Storage Vault 的更多详细信息。

于 2013-10-01T11:33:23.893 回答
0

关于 Azure 表存储部分,上面的答案有点误导。不必先将 ATS 内容写入文本文件,然后再处理文本文件。相反,可以编写标准的 Hadoop InputFormat 或 Hive StorageHandler,直接从 ATS 读取。目前至少有 2 个可用的实现:

于 2015-02-09T14:48:31.763 回答