首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在hadoop中处理主数据更新

在hadoop中处理主数据更新
EN

Stack Overflow用户
提问于 2013-12-26 15:23:38
回答 1查看 565关注 0票数 0

我开始了一个分析项目。用例是了解客户购买模式和数据源,如Web日志、关系数据库(包含产品主、客户主)。关系数据库团队和hadoop团队完全不同。在架构讨论期间,讨论了主数据(产品、客户)将是一次加载,增量更新将是从oracle到hdfs的每日sqoop,并使用Hive需要生成当前视图(包含所有最新的产品更改)。从产品详细信息开始。

  1. 在Oracle方面,产品主版大约是10G。
  2. 每天的增量从5 MB到100 MB不等。

根据我的理解,创建这样的小文件将是长期运行的名称节点上的一个负载。

如果有人遇到这样的解决方案,你是如何处理的?

EN

回答 1

Stack Overflow用户

发布于 2013-12-26 21:49:11

我还没发现什么问题。如果您从一个大文件开始,并且每天添加一个文件,那么一年后您将得到~1000个文件,这不是一个问题(至少对于name节点不是这样)。

尽管如此,在HDFS中保存小文件并不是最理想的,不管数量如何。

我建议您对此采取一种应用程序方法,并在经过足够时间之后合并文件,例如:

  1. 在您的表(产品主版)上创建每月分区,每天将新文件插入到表中,在这个月结束后,插入覆盖数据回同一个分区。
  2. 如果数据断言不是简单地通过插入完成,而是有一个更复杂的逻辑,则解决方案可能是创建主表,然后将增量数据复制到HDFS位置并在该位置上创建外部表。 在view中使用view组合这两个表,并创建一个加载过程,在可能的情况下将数据从HDFS加载到主表。

如果您确实遇到了关于太多小文件的名称节点争用,您可以阅读解决“小文件问题”这里的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20787129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档