1. 概述
本人从 2014 年开始使用 Apache Spark,基于以往项目经验,为了降低项目开发复杂度,减少开发成本,开发了 light-spark 框架。 本框架屏蔽了底层技术细节,让开发人员面向 SQL 编程,更专注于业务逻辑,减少开发过程中 Debug 工作,让 Apache Spark 更方便使用。
2. 适用场景
项目业务大部分功能可以用 SQL 实现,符合以下情况,建议使用本框架:
- 逻辑链条较长,开发周期较长
- 逻辑较复杂,开发时需要反复调试,从而反复修改 Debug 代码
- 业务不稳定,功能频繁迭代
- 开发人员对大数据技术细节不太熟悉
3. 设计思想
- 大数据项目中整个处理流程如下:
开始 -> 加载数据 -> 业务计算 -> 结果存储 -> 结束
![d4a167f9bdd21716ff9585f261ae6567.png](https://i-blog.csdnimg.cn/blog_migrate/0a0a62b2b14371ed3693ebc3c71755db.jpeg)
核心思想是面向 Spark DataFrame(SQL) 编程,通过 DataFrame 串联起数据处理流程各个环节,使用 SparkSQL 处理业务逻辑,并定义到配置文件,以便于开发和后期维护,业务调整时避免修改代码。 同时,暴露接口支持开发人员自定义硬编码,实现不能使用 SQL 处理的复杂逻辑,通过配置,把这些逻辑纳入整个处理流程。
- 使用样例 该样例背景为一个指标计算,需要加载 hive 表数据并关联 jdbc 中的表数据,经过 SQL 计算处理后,结果数据存储到 jdbc 表中,整个处理逻辑定义到一个配置文件中
4. 使用
启动脚本样例