我有很多来自运行网络测试的文本报告和日志文件。我想将这些报告和日志存储在数据存储中,我可以在其中解析它们并根据解析的数据运行报告。我还希望这个系统在报告类型和数据中都是可扩展的。它接受的日志以及可用于的数据量和查询/报告。
同事建议Hadoop
可能满足这一需求,我组织中的另一个团队表示他们使用Cassandra
进行类似的项目(但是有更多的数据,大部分是机器生成的)。我一直在阅读关于Hadoop and Cassandra
的内容,我真的不确定使用类似的内容是否过度,以及每个日志/报告类型的自定义解析器的关系数据库是否会更加清晰。
根据我对Hadoop
的理解,我需要编写MapReduce
函数来解析每种类型的输入数据,如果我使用{{}我认为我需要做类似的事情。 1}}。我也读过一些关于Cassandra
的内容,听起来它可能有用,但我没有深入研究过。
在我的情况下使用Hadoop或Cassandra(或其他)有什么好处(如果有的话)?
任何形式的建议都将受到赞赏。
答案 0 :(得分:1)
这是我从你的问题描述中得到的:
这里有一些关于你提到的工具的见解和警告:
鉴于已经配置了Hadoop集群,Hive可能是最简单的解决方案:它可以让您将数据看作是一组表:SQL查询,连接等等...... Hive(粗略地)尽管您的群集很大,但您没有获得即时答案:换句话说,您可以将其用于批处理操作,而不是用于交互式网络面板等。
Cassandra可用于存储大量数据。它易于扩展,坚固且相对易于使用。根据您的要求,我认为可能需要考虑的是,它需要非常仔细地考虑您将用于存储数据的模式:模式将决定您之后可以做什么和不能做什么。因此,如果您想要以新的方式执行更广泛的分析或读取数据,您可能无法想象,因为数据存储在数据库中的方式可能无法实现。
我不熟悉的其他选项:HBase(基于HDFS的数据存储),Pig(如Hive,查询被编译成Hadoop作业;模型有哪些变化:而不是您需要编写的SQL查询& #34;流"。)
我建议尝试Hive(或Pig),也许使用像Amazon EMR这样的服务(这样可以避免Hadoop集群设置的麻烦)。