项目名称:项目一: 珍品网数仓搭建以及离线分析
项目职责:采集日志数据跟业务数据,并区分日志类型。
构建数仓环境,并将Hive引擎更换为Tez,加快计算速度。
构建ODS、DWD、DWS、ADS数仓分层。
选择合适的框架技术进行分析:数据量大的用Hive分析,计算量大的用Spark分析。
需求指标:
统计页面单跳转化率、当日不同地区销售额、各区域Top10商品统计、不同系统版本用户分布、app新增用户数、用户留存率、流失用户数、活跃用户数、用户收藏商品数、用户评价率统计、统计本月的沉默用户、订单到支付的转化率,统计点击、下单、支付数量等
技术描述:
SparkStreaming集成Kafka采用Direct方式接受数据和手动维护offset实现精准一次性消费。
使用Checkpoint保存状态变量,使用GetOrCreate方式获取SparkStreaming使得在错误时从Driver中恢复数据。
使用背压功能来解决了流量激增时每个Batch数据太多处理了的问题。
使用HDFS分层存储功能将热点数据存储到SSD提升了查询速度。
使用MapWithState代替UpdateStateByKey来做状态管理,提高了性能。
使用Cache避免了Checkpoint时候会被计算两次的弊端。
使用Redis中的Set数据类型的不可重复的特性实现活跃用户的过滤缓存。
使用Transform算子加上广播变量实现了高效分发活跃用户的缓存数据。
使用SparkStreaming窗口函数实现用户行为大屏。
使用Elasticsearch和IK分词器实现了全文检索功能。
项目二:珍品网实时分析平台201810-201910
开发环境:IDEA+Maven+Git
软件架构:Flume+Kafka+Zookeeper+SparkStreaming+Redis+ES+MySql+Canal+Azkaban
软件架构: Flume + Kafka + Zookeeper + HDFS + Hive + SparkSql + Mysql + Azkaban
项目描述: 通过对日志采集系统采集到的用户行为数据跟业务系统数据进行分析,建立数仓架构,统计出新增用户、活跃用户、留存率、转化率,评价率等指标,为企业决策提供数据支持,方便企业针对商品、用户进行优化决策,提高收益,扩大市场占有率。
项目描述: 通过SparkStreaming实时统计反映运营状况的重要指标,为规避风险、领导决策提供有时效性的数据支持,主要进行了实时统计当日访问量、Vip新增用户量、最近一小时成交额、每天各地区 Top3 热门商品,广告点击趋势、广告点击数、各地区热门广告,广告点击次数,分析恶意点击用户,实时预警功能等
参与实时和离线指标分析项目的搭建、技术可行性验证及技术方案选型。
合理安排工作计划、保质保量的完成项目的开发任务。
参与部分优化工作。
使用KafkaUtils生成SparkStreaming低级消费API来消费Kafka中Topic
在将数据写入到Redis过程中防止频繁创建Redis的新连接,使用ForeachPartition
配置setCheckpointDir检查点,保证使用有状态算子时的数据恢复
优化spark的计算效率,比如对某些数据做broadcast广播到其他节点,加快运算
使用Redis集群,数据类型选择Set,进行去重,实时当日用户访问量的指标统计
利用Spark窗口函数,设置窗口大小为一小时,统计最近一小时的成交额
利用静态ip资源库,解析用户所在的地区,然后进行分组
我们开启了SparkStreaming优雅的关闭,防止死锁,提升程序性能
9. 使用Canal实现了实时监控Mysql中的变化,并保存到Kafka中。
项目三: 珍品网app实时分析 flink框架调研更新 20 1910-2020 04
开发环境: Scala + IDEA + JDK + Maven + Git
软件架构: Flink + Kafka + Redis + HBase + MySQL
项目描述: 由于对实时性要求较高,尝试用Flink作为数据处理的框架,实现统计最近一小时内每五分钟的热门商品,利用CEP库进行事件流的模式匹配,实现订单支付实时监控等需求
参与业务需求的探讨
参与实时数仓架构设计
参与实时数仓各个层之间的数据转换
对接实时数据到Kafka,添加Flink的KafkaSource清洗数据后形成原始表
使用Flink的KafkaSource对原始表的数据进行处理,形成明细表,汇总表,将数据进行缓存,供接口掉用
将宽表分两支进行存储,分别是Kafka和Hbase
使用Flink的CEP library进行模式匹配,实现复杂事件处理,通过自定义AggregateFunction,WindowFunction,KeyedProcessFunction实现定时功能和累加功能
使用Kafka Sink,Redis Sink,自定义Sink等为数据统计分析做准备
使用EventTime特性,指定Watermark,利用EventTimeWindow API使用滚动窗口,滑动窗口等,对数据流进行处理后输出到MySQL,HBase,Redis
项目四: 珍品网日志采集系统搭建201703-201708
软件架构: Zookeeper + Hadoop + Flume + Kafka + Spark + Hive + Mysql + Sqoop + Azkaban
项目描述: 将公司APP、柜台、代销等多个渠道的业务数据,用户行为数据采并清洗汇总形成统一的数据中心仓库,提供针对各种应用场景的数据表。
参与数据仓库的设计及调优工作。
参与之后的基准测试。
参与采集各渠道运营数据、业务数据,用户行为数据。
参与数据仓库ETL开发和优化工作。
参与数据仓库表结构的设计及调优。
1、搭建Nginx实现负载均衡,将埋点日志分发到不同的日志服务器,存储为文件,以天为单位滚动,日志保留时长30天。
2、使用Tomcat搭建日志服务器来接收埋点日志,使用Log4J来按天滚动日志。
3、搭建Hadoop-HA 高可用集群,并对集群进行基准测试与调优,配置HDFS多目录,安装Snappy与lzo压缩格式,安装Zookeeper,通过zookeeper来实现HDFS和YARN的故障转移。
4、部署Flume,使用TailDirSource实现对日志服务器日志多目录的监控、断点续传,使用KafkaChannel来对接Kafka。自定义Flume拦截器简单的对数据进行ETL。
5、搭建Ganglia实现对Flume运行状态、性能的监控,出现异常情况报警。
6、搭建Kafka集群,配置Kafka常用参数调优,对Kafka集群的生产速率和消费速率进行压力测试,确定Kafka集群上限。
7、搭建Flume来消费Kafka日志数据,发送到HDFS,调整Flume配置防止HDFS上出现大量小文件。
8、搭建KafkaManager实现对Kafka集群运行状态的监控