2

我有很多来自运行网络测试的文本报告和日志文件。我想将这些报告和日志存储在数据存储中,我可以在其中解析它们并根据解析的数据运行报告。我还希望这个系统在它接受的报告和日志类型以及它可以用于的数据量和查询/报告方面都是可扩展的。

一位同事建议Hadoop可能满足这一需求,我组织中的另一个团队说他们Cassandra用于类似的项目(但数据更多,大部分是机器生成的)。我一直在阅读Hadoop and Cassandra,我真的不确定使用类似的东西是否会过大,以及每个日志/报告类型具有自定义解析器的关系数据库是否会更加理智。

根据HadoopMapReduceCassandra. 我也读过一点 about Hive,听起来可能有用,但我没有深入研究它。

在我的情况下使用 Hadoop 或 Cassandra(或其他东西)有什么好处(如果有的话)?

任何形式的建议将不胜感激。

4

1 回答 1

1

这是我从您的问题描述中得到的:

  • 您有一些生成日志和文本报告的测试程序。你能大致了解一下这些数据的大小吗?
  • 您想在生成这些数据后对其进行分析(即不需要实时分析)
  • 您希望在可以摄取和处理的数据大小以及可以执行的查询和分析类型方面具有灵活性

这里有一些关于您提到的工具的见解和注意事项:

  • 鉴于已经配置了 Hadoop 集群,Hive 可能是最简单的解决方案:它可以让您将数据视为一组表:SQL 查询、连接等……Hive(大致)与您的集群一样快很大,但您不会立即得到答案:换句话说,您可以将它用于批处理操作,而不是用于交互式 Web 面板之类的东西。

  • Cassandra 对于存储大量数据很有用。它易于扩展,功能强大且相对易于使用。鉴于您的要求,我认为可能需要关注的是,它需要非常彻底地考虑您将用于存储数据的架构:架构将确定您之后可以做什么和不能做什么。因此,如果您想执行更广泛的分析,或以您今天无法想象的新方式读取数据,那么您可能无法做到,因为数据在数据库中的存储方式。

我不太熟悉的其他选项:HBase(基于 HDFS 的数据存储)、Pig(与 Hive 一样,查询被编译到 Hadoop 作业中;改变的是模型:您需要编写“流”而不是 SQL 查询)。

我建议尝试 Hive(或 Pig),也许使用 Amazon EMR 之类的服务(这样您就可以避免 Hadoop 集群设置的麻烦)。

于 2013-03-06T14:43:22.797 回答