什么';用Hadoop来组织和存储大数据,用Hive来查询大数据,这是正确的方法吗?

什么';用Hadoop来组织和存储大数据,用Hive来查询大数据,这是正确的方法吗?,hadoop,logging,amazon-web-services,bigdata,amazon-emr,Hadoop,Logging,Amazon Web Services,Bigdata,Amazon Emr,因此,基本上我在不同的平台上安装了一些应用程序,它们将日志数据发送到我的服务器。它是一个节点服务器,基本上接受日志条目的有效负载,并将它们保存到各自的日志文件中(作为写流缓冲区,因此速度很快),并在每次填充时创建一个新的日志文件 我存储日志的方式本质上是每个“端点”一个文件,每个日志文件由与度量相对应的空间分隔值组成。例如,播放器事件日志结构可能如下所示: 时间戳用户mediatype事件 然后日志条目将如下所示 143321453 bob iPhone play 通过阅读文档,我认为这种格式适

因此,基本上我在不同的平台上安装了一些应用程序,它们将日志数据发送到我的服务器。它是一个节点服务器,基本上接受日志条目的有效负载,并将它们保存到各自的日志文件中(作为写流缓冲区,因此速度很快),并在每次填充时创建一个新的日志文件

我存储日志的方式本质上是每个“端点”一个文件,每个日志文件由与度量相对应的空间分隔值组成。例如,播放器事件日志结构可能如下所示:

时间戳用户mediatype事件

然后日志条目将如下所示

143321453 bob iPhone play

通过阅读文档,我认为这种格式适合Hadoop之类的东西。我认为这是可行的,我将把这些日志存储在服务器上,然后运行cron作业,定期将这些文件移动到S3。从S3开始,我可以使用这些日志作为使用Amazon的EMR的Hadoop集群的源。从那里,我可以用Hive查询它

这种方法有意义吗?我的逻辑有缺陷吗?我应该如何为Amazon的EMR保存/移动这些文件?我是否需要将所有日志文件连接成一个大文件

另外,如果我将来向日志添加一个度量,会怎么样?这会把我以前的数据都弄乱吗


我意识到我有很多问题,那是因为我对大数据不熟悉,需要一个解决方案。非常感谢您抽出时间,我非常感谢。

如果您有大量定期更改的日志转储,那么您制定的方法是有意义的。使用EMRFS,您可以直接处理来自S3的日志(您可能知道)

当您将新日志事件“附加”到配置单元时,将生成部件文件。因此,在将它们加载到蜂巢之前,您不必连接它们

(在第0天,日志以某种分隔形式加载到配置单元中,通过各种转换生成部件文件。在随后的周期中,新事件/日志将出现在这些部件文件上。)

不断增加新领域是一项挑战。您可以创建新的数据结构/集和配置单元表并将它们连接起来。但是连接将是缓慢的。因此,您可能需要在模式中定义填充符/占位符

如果您要接收日志流(许多小日志文件/事件),并且需要运行接近实时的分析,那么请查看Kinesis

(同时试驾黑斑羚,速度更快)


。。我的2c。

我实际上并不关心解析和索引日志文件……我已经编写了一个服务来实现这一点,它需要定制。我的问题是,如何使用Amazon的Elastic Map Reduce对这些数据运行配置单元查询