我每分钟从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/