我是hadoop的新手。请帮帮我。我有一个不断更新的日志文件,我需要将此日志文件存储到配置单元中的一个表中。是否可以随时或定期将日志文件中生成的新行添加到此表中?
roejwanj1#
配置单元支持insert语句,因此应该是可能的。同时,我也不推荐这种使用Hive的方法。我假设我们谈论的是严重的日志流——否则我们就不会使用Hive。当我们简单地将额外的文件复制到某个hdfs目录(定义为配置单元的外部表)时,配置单元在数据加载速度上是优越的所以我建议使用logrotate(或其他技术)每x分钟或y兆字节创建一个新文件,然后简单地将它们复制到hdfs中。
q3aa05252#
Hive并没有很好地支持这一点。我建议使用flume将日志文件存储到hdfs中,然后让hive表简单地指向该位置并使用适当的serde来访问它。或者,旋转日志文件,并且只在完成对其的写入后将其存储到配置单元中。
2条答案
按热度按时间roejwanj1#
配置单元支持insert语句,因此应该是可能的。同时,我也不推荐这种使用Hive的方法。我假设我们谈论的是严重的日志流——否则我们就不会使用Hive。
当我们简单地将额外的文件复制到某个hdfs目录(定义为配置单元的外部表)时,配置单元在数据加载速度上是优越的
所以我建议使用logrotate(或其他技术)每x分钟或y兆字节创建一个新文件,然后简单地将它们复制到hdfs中。
q3aa05252#
Hive并没有很好地支持这一点。我建议使用flume将日志文件存储到hdfs中,然后让hive表简单地指向该位置并使用适当的serde来访问它。
或者,旋转日志文件,并且只在完成对其的写入后将其存储到配置单元中。