我已经开始了一个分析项目。用例是了解客户购买模式和数据源,如Web日志,关系数据库(其中包含产品主数据,客户主数据)。关系数据库团队,hadoop团队完全不同。在架构讨论期间讨论了主数据(产品,客户)将是一次性负载,增量更新将是从oracle到hdfs的每日sqoop,并且使用Hive需要生成当前视图(包含所有最新产品)变化)。从产品详细信息开始。
根据我的理解,从长远来看,创建这样的小文件将是名称节点上的负载。
任何人都遇到过这样的解决方案,你是如何处理它的?
答案 0 :(得分:1)
我还没有看到任何问题。
如果您从一个大文件开始并且每天添加1个文件,那么一年之后会产生~1000个文件,这不是问题(至少不是名称节点)。
不过,无论数量多少,在HDFS中保存小文件都不是最佳选择
我建议你采用一种适用的方法,并在经过足够的时间后合并文件,例如:
union all
中使用view
组合这两个表并创建一个加载过程,以便在可能的情况下从HDFS到主表一段时间加载数据。如果您确实遇到有关太多小文件的名称节点争用,您可以阅读有关解决“小文件问题”here的方法。