每个应用程序都会产生数据,包括日志消息、度量指标、用户活动记录、响应消息等。如何移动数据,几乎变得与数据本身一样重要。如果你是架构师、开发者或者产品工程师,同时也是Apache Kafka新手,那么这本实践指南将会帮助你成为流式平台上处理实时数据的专家。
本书介绍了在Java编程中78条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码。
ElasticSearch7+Spark 构建高匹配度搜索服务+千人千面推荐系统,基于大众点评搜索以及推荐业务,使用SpringBoot加mybatis结合前端模板搭建运营后台门店管理功能,借助ElasticSearch的最新版本ES7,完成高相关性进阶搜索服务,并基于spark mllib2.4.4构建个性化千人千面推荐系统。
SparkConf是 Spark 应用程序的配置。用于将各种 Spark 参数设置为键值对的形式。大多数情况下,可以使用 new SparkConf() 创建一个 SparkConf 对象,该对象将从任何 spark.* 应用程序中设置的 Java 系统属性来加载值。
Hadoop Metrics2是一个收集各种指标的监控工具,可应用于Hadoop、HBase、Kylin等大数据组件监控指标收集。主要分为3个主要部分:MetricsSystemImpl、Source和Sink,其中Source和Sink都可以自定义。本文讲述如何自定义Sink,来收集指标入OpenTSDB。
Bitmap的基本思想是以一个bit位来表示一个元素对应的value,即使用bit数组下标来表示元素值,以大大缩小存储空间。BitMap一般用来快速查找、去重、删除等操作,但是它只能用于数字类型。那么如果要使用字符串类型的该怎么办呢? 这就需要先把字符串字典编码,生成字符串到数字的映射。本文参考kylin的全局字典编码配合RoaringBitmap以实现精准去重。
首先,我们先了解一下元数据平台架构,主流程是:SQL采集 --》 SQL解析 --》应用层。 1. SQL采集:针对各种SQL查询引擎,编写相应的钩子函数进行SQL收集,收集内容有执行时间、执行耗时、执行用户、执行引擎、jobId和执行SQL等等,最后把SQL信息入Kafka。Hive是实现ExecuteWithHookContext接口,Presto是实现EventListener接口,Spark是实现SparkListner接口。 2. SQL解析:Flink实时消费Kafka数据,进行SQL解析。解析SQL的过程为:定义词法规则和语法规则文件 --》 使用Antlr实现SQL词法和语法解析 --》生成AST语法树 --》遍历AST语法树,考虑到Presto和Spark的SQL语法类似,因此直接参考Hive底层源码实现SQL解析。解析完成后,把血缘信息和元数据信息分别入JanusGraph和ElasticSearch。 3. 应用层:数据录入JanusGraph和ElasticSearch后,就可以进行血缘查询和元数据查询。然后通过graph节点的出度入度进行热点分析。
为什么要阅读源码?这个问题对于热爱、学习、使用技术的程序er的重要性不言而喻:不懂原理只会使用就是重复劳动的码农,技术长进不大,以后也会碰到职业天花板。所以我们就开始吧!