我已经在Hadoop工作了很长一段时间,我们都知道我们使用本地模式来构建脚本/作业并在本地测试它们。 但是如果我们有一个场景,因为我们的一些客户拥有较小的数据集,而且有些拥有较大的数据集,而且我们不想编写业务逻辑的两个代码 - 一个用于本地运行模式,一个用于分布式模式运行,那么如何去做吧。
生产部署的一种方法是为具有较小数据集的客户提供Hadoop作业/ Pig / MR作业的本地模式运行,并为具有较大数据集的客户提供分布式设置模式。
我的问题是: 在生产中提供本地模式Hadoop设置(因为数据大小不是很大),这是一个好主意吗?!
如果伪分布式模式应该是生产中小数据集的选择,我需要对每种方法(本地模式和伪分布式模式)所面临的限制进行一些思考,并且如果在部署中存在任何风险同样的制作。如果有人遇到这样的设计挑战,请提供帮助。
请多多建议..
由于
答案 0 :(得分:1)
我们将部分产品版本以伪分布式模式发布,即使在本地模式下也是如此,以防磁盘速度极慢且CPU资源不足。这些配置通常安装在虚拟机上,因此我们向客户推荐的是计划的VM备份。这在一定程度上解决了恢复问题。
重要的是告知客户在性能和可靠性方面的固有权衡,同时鼓励他们将当前配置视为可扩展性的正确架构,如果他们对功能和整体结果感到满意规模较小。
我们让客户以伪分布式模式运行,其中1次计划外停机事件持续了2年 - 这是硬件级别的停电。由于非正常关机而导致数据丢失,但范围有限。
我们为这些安装做的一件事就是安排在非高峰时段每天由cron触发的HBase自动主要压缩。