代码之家  ›  专栏  ›  技术社区  ›  Harsha Hulageri

在hadoop中存储解析的日志数据并将其导出到关系数据库中

  •  1
  • Harsha Hulageri  · 技术社区  · 16 年前

    我可以使用正则表达式或pig解析和提取信息。我面临的挑战是如何将从两个日志中提取的信息映射到单个聚合格式或文件,以及如何将这些数据导出到MYSQL。

    我想的方法很少

    2) 使用Hbase或Hive在hadoop中以表格式存储数据并将其导出到MySQL

    哪种方法是最可行的,也请建议您知道的任何其他替代解决方案。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Eric Sammer    16 年前

    拥有更小、更简单的MR工作并将它们联系在一起,几乎总是比拥有大而复杂的工作更好。我认为你最好的选择是选择像#1这样的东西。换句话说:

    1. 以统一格式处理apachehttpd日志。
    2. 使用任何有意义的逻辑连接1和2的输出,将结果写入相同的格式。
    3. 将结果数据集导出到数据库。

    您可能可以在同一步骤中执行连接和转换(1和2)。使用贴图进行变换,并执行“减少边连接”(reduce side join)。

    听起来你并不需要/想要随机访问的开销,所以我就不看HBase了。这并不是它的优点(尽管您可以在随机访问的意义上通过按时间戳在HBase中查找每个记录、查看它是否存在、将记录合并到中,或者如果它不存在则简单地插入,但是这相对来说非常慢)。Hive可以方便地存储这两种格式的“统一”结果,但是您仍然需要将记录转换成这种格式。

    绝对地

    尽管如此,如果考虑到完整的日志记录,问问自己将这么多数据放入数据库是否有意义。这种数据量正是Hadoop本身要长期存储和处理的情况。如果您正在计算这些数据的聚合,请务必将其放入MySQL。

    推荐文章