背景
公司数据处理具有两个计算框架,单机框架和MR框架。眼下我已经抽象出一套API interface, 供业务计算开发者使用。
并分别在两个计算框架下实现了API的运行调度。应用开发者有时间须要通过上传override的配置文件。来调整业务计算參数。单机框架易于实现。但在MR框架里,须要解决override的配置文件的分发问题。
实现
1. 通过命令行传入配置文件路径;
2. MR job client端读入本地配置文件,并增加DistributedCache。并把命令行參数不加改动,附加到MR child JVM启动參数数组中。
3. MR child JVM启动后检查启动參数, 发现有配置文件,且配置文件不存在。则将配置文件路径替换为DistributedCache相应的本地路径。
4. child JVM job读入替换后的配置文件,并应用到mr job中。实现计算參数的改动。
參考
http://dongxicheng.org/mapreduce-nextgen/hadoop-distributedcache-details/