【发布时间】:2015-08-20 19:58:21
【问题描述】:
需要有关实施最佳实践的帮助。 运行环境如下:
- 日志数据文件不定期到达。
- 日志数据文件的大小为 3.9KB 到 8.5MB。平均约为 1MB。
- 一个数据文件的记录数从13行到22000行。平均约为 2700 行。
- 数据文件必须在聚合前进行后处理。
- 可以更改后处理算法。
- 后处理文件与原始数据文件分开管理,因为后处理算法可能会改变。
- 执行每日聚合。所有后处理的数据文件必须逐条过滤并计算聚合(平均值,最大最小值...)。
- 由于聚合是细粒度的,聚合后的记录数不会那么少。它可以是原始记录数量的一半左右。
- 在某一时刻,后处理文件的数量可以达到 200,000 左右。
- 数据文件应该可以单独删除。
在测试中,我尝试通过 Spark 处理 160,000 个后处理文件,该文件从带有 glob 路径的 sc.textFile() 开始,但由于驱动程序进程出现 OutOfMemory 异常而失败。
处理此类数据的最佳做法是什么? 我应该使用 HBase 而不是普通文件来保存后处理数据吗?
【问题讨论】:
标签: hadoop apache-spark hadoop-yarn