hadoop - Hive是否可以定期将增量数据追加或插入到hdfs的同一表文件中?

标签 hadoop apache-spark hive hdfs spark-streaming

我每分钟从Spark流(从Flume exec)中加载网络捕获的数据,然后根据IP地址聚合数据,最后保存到Hive。为了使其更快,我在IP地址上创建带有分区的Hive ORC表,它运行良好。唯一的问题是每分钟都会创建许多(取决于多少个IP地址)kb小文件,现在我使用“ALTER TABLE ... CONCATENATE;”。手动合并它们,但我认为这可能会更容易,因此想问一问是否有解决方案可以将新数据增量合并/追加到第一分钟表文件中,而不是每分钟都创建新表文件。任何建议表示赞赏!

最佳答案

我放弃了,看起来没有直接的解决方案,因为Hive无法出于性能考虑将内容追加到现有数据文件中。现在,我的替代方案仍然是每周进行连接,问题是查询在进行连接时将被错误消息打断(说明无法找到数据文件),因此会对业务产生重大影响。现在,我正在考虑用HBase或Kudu替换Hive,后者更加灵活,可以提供更新/删除操作。

关于hadoop - Hive是否可以定期将增量数据追加或插入到hdfs的同一表文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47174184/

相关文章:

hadoop - 在Spark中高效读取json

mysql - 将多行转变成多列的一行(就像 R 中的 reshape 类型转换)

hadoop 名称节点端口正在使用中

python - Python 中的 Spark 数据帧 - 使用 UDF 时执行卡住

scala - 如何在 CSV 中使用双管道作为分隔符?

json - 将 Json 转换为 HIVE 中的单独列

sql - 将 Sub 查询转换为单个查询 Hive

hadoop - 使用 apache ignite 在 hdfs 上写一个文件

hadoop - 解析异常EOF配置单元

hadoop - 来自 Eclipse 的字数统计