美文网首页
Apache griffin的搭建及应用

Apache griffin的搭建及应用

作者: maverick_360 | 来源:发表于2020-10-29 11:54 被阅读0次

    我们面临的问题

          随着接入产品的日益增多,以及数据仓库表、字段的日益丰富,数据侧和策略侧对数据质量的关注,越发的迫切;如何能够快速、高效的对核心数据资产,有一个清晰的认知和监控,成为了数据侧需要解决的难题。

    我们的解决方案

        首先考虑到团队的实际情况,优先考虑借鉴公司内部或者开源的产品,避免人员的大量投入。最终经过前期的调研, 我们选择了Apach griffin。Apache griffin 是ebay中国开源的项目,2018年成为了Apache 下面的顶级开源项目。Apache griffin能解决哪些问题呢?

              1. 数据的一致性检测,例如两张表内,相关字段的一致性问题

              2. 数据的完整性,字段、取值是否有异常,比如过多的空值、或者枚举值不在合法的范围内等问题

              3. 数据的唯一性:其内部定制化了一些常用的规则,如计算相关字段的去重个数

              4. 有效性:用户可以通过自定义规则,支持字段合法性的校验,例如IMEI、安卓ID是否合规等

    Apache griffin的搭建

    在搭建过程中,可以参见Apache griffin相关的文档,例如:

    https://git.efivestar.com/projects/INFRA/repos/infra-bigdata/browse/doc/griffin/griffin.md?at=master

    在此项目内,我们使用的Apache griffin的最新版本5.0,由于业务场景的要求,主要是对batch数据进行监控;同时,在上述文档的配置中,缺少了对measure项目相关配置,需要在源码内,对src/main/resources下的env-batch.json进行配置,修改其中的spark.master方式为yarn,同时设置HDFS和ES的相关配置信息。

    搭建过程中注意事项

    1. ES的密码问题;在搭建过程中,由于采用的公司ES集群,需要设置用户的账户和密码信息;在service/src/resources下,配置文件预留了相关的参数,但是在measure项目中,却没有保留用户名和密码的相关参数,会导致在spark写入ES的过程中,由于授权问题,导致失败;解决办法比较简单粗暴,在ElasticSearchSink类中,找到httpResult方法,在header参数中,增加Authorization头,并加入对应的参数值(此处为了快速尝试,采用了硬编码,后期可以从配置中读取);如下所示:

        2. 在创建measure时,需要从hive中读取所有的DB和tables,加载任务过久

    通过前端接口,查看页面加载时调用的方法和对应接口,并定位相关的函数,修改一下两个方法,让其只加载配置文件中定义的DB,降低返回数据量;

    Apache griffin的应用

    · 完事具备,只欠使用;griffin支持四中主要的任务,在我们这里只关注前两个,accuracy和profiling。首先,可以参照网上教程创建对应的measure,其次创建对应的Job信息;此处可以支持任务的例行化及指标的可视化等;

    下一步的工作

    监控的核心诉求,还是在发生问题时,进行异常的报警周知;下一步工作会将公司统一的报警接口,集成到griffin平台内,当数据有异常波动时,周知相关的负责人。

    相关文章

      网友评论

          本文标题:Apache griffin的搭建及应用

          本文链接:https://www.haomeiwen.com/subject/ylekvktx.html