基于spark的快速离线分析框架easy-spark

在spark基础上,做简单二次封装,简化初级程序员快速入手spark分析程序
文档地址
gitee代码库easy-spark

架构

在这里插入图片描述

架构说明

  1. EngineCore自定义封装核心引擎
  2. SparkBase开发者继承类: 注入SQLContext,JavaSparkContext,SparkSession,ConfKit,DbFactory
  3. SQLContext,JavaSparkContext,SparkSession:spark原生操作类
  4. ConfKit:自定义配置文件操作类config.properties
  5. DbFactory:数据会话工厂配置各类数据源

本地开发模式

APP入口程序

通过注解的@Engine(name = “engineName”)方式声明spark统计任务并继承SparkBase类,实现doAi方法。

@Engine(name = "GeoJsonApp")
public class GeoJsonApp extends SparkBase {

    @Override
    public void doAi(JSONObject params) {
        Dataset<Row> jsonDataset = sparkSession.read().json(configKit.getEsparkFilePath());
        jsonDataset.printSchema();
        jsonDataset.show();
    }
    
}

启动任务

EngineApp.java 根据参数输入需要调试启动的app

集群模式

示例已spark standalone模式,每台spark节点统计目录都需要有相同结构且相同文件。

集群提交的格式

  • cluster
    • config
    • lib 程序包
    • sh spark任务启动脚本

例如: A,B,C三台spark集群,文件放置目录 /home/easy-spark/cluster

集群打包要求

mvn clean install -Dmaven.test.skip=true -P cluster-build

提交脚本命令

注意:geo-json-app.sh脚本内部commonPropertiesPath必须配置成绝对路径否则读取不到自定义配置文件

$ cd cluster/sh
$ sh geo-json-app.sh
不到自定义配置文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值