什么是Hive常见用例?

时间:2017-10-15 17:09:57

标签: hadoop hive nosql

我是Hive的新手;所以,我不确定公司如何使用Hive。让我给你一个场景,看看我在概念上是否正确使用Hive。

假设我的公司希望保留一些Web服务器日志文件,并且能够始终搜索并分析日志。因此,我创建了一个表列,其对应于日志文件中的列。然后我将日志文件加载到表中。现在,我可以开始查询数据了。因此,随着数据在未来的日期出现,我只是继续将数据添加到此表中,因此我总是将我的日志文件作为Hive中的表格来搜索和分析。

这种情况是否常见?如果是,那么如何继续向表中添加新的日志文件?我是否必须每天手动将它们添加到表中?

1 个答案:

答案 0 :(得分:2)

可以使用Hive来分析静态数据集,但是如果你有流式日志,我真的不会建议Hive。它不是一个搜索引擎,只需几分钟就可以找到您正在寻找的任何合理数据。

如果您必须留在Hadoop生态系统中,HBase可能是更好的选择。 (Hive可以查询Hbase)

如果您需要合理的日志分析工具,请使用Splunk或Solr / Elasticsearch / Graylog的开源替代品。

但要回答你的问题

  

如何继续向表中添加新的日志文件?我是否必须每天手动将它们添加到表中?

在HDFS位置使用sixty-capital:bquijob_79805aa6_15f20d3c084 Hive表作为日志。使用Flume将日志数据发送到该路径(或将日志发送到Kafka,从Kafka发送到HDFS,以及搜索/分析系统)

如果您要添加日期分区,则只需要更新表格(因为这是您获得更快的Hive查询的方式)。您可以使用EXTERNAL检测HDFS上缺少的分区。或者按计划自行运行MSCK REPAIR TABLE。注意:Confluent的HDFS Kafka Connect将自动为您创建Hive表分区

如果必须使用Hive,如果将数据转换为ORC或Parquet格式,则可以更好地改进查询