为了账号安全,请及时绑定邮箱和手机立即绑定

分布式离线/实时日志统计系统(Hadoop.Spark)

标签:
Hadoop

概要

本文总结采用目前最流行的Hadoop生态圈和Spark生态圈搭建一套完整的分布式日志采集系统,支持离线和实时计算,可以满足多种需求,例如PV,UV,实时交易量等各个业务下的场景。

项目架构

webp

项目架构图

集群一览

大数据两个重要角色

  • 存储  采用Hadoop集群

角色ip
NameNode192.168.6.98
DataNode1192.168.6.92
DataNode2192.168.6.99
  • 计算 采用Spark

角色ip
Master192.168.6.98
Worker1192.168.6.92
Worker2192.168.6.99

组件清单及功能

  • Tomcat 主要搜集业务上报的日志,例如自定义JS的PV和点击,移动客户端的PV和点击等,需要出接口和对应SDK帮助各个业务线和端集成简单,快速,正确。(参考示例例如友盟)

  • Nginx 作为反向代理服务器,主要搜集服务器日志,好处无需各个端主动上报,缺点不能够满足各种复杂的需求

  • Flume 分布式日志采集器,优点可以指定日志输出目录,代替做FTP日志文件服务器,不需要再主动下载日志文件,而是主动下发到Hadoop和Spark服务器。

  • Kfaka 高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
    实时路线

  • spark-streaming 拿到kafka的实时数据流,进行实时计算,它以时间片为消费单位,比如可以设置为1秒

  • Redis NoSQL中的键值对内存数据库(不够会扩展到磁盘),用一定的计算逻辑,计算实时的PV和UV数据
    离线路线

  • HDFS Hadoop分布式文件系统,主要用于日志存储,本文采用Apache开源的,还有一些商用的未采用,下文会做小知识分享。

  • Hive 数据仓库,清洗数据后,存储结构化数据,本身拥有强大的SQL支持,简单易学,尤其针对pv,uv统计相当方便

  • Hue 图形化显示Hive仓库的Web工具,直接使用图形化来执行SQL,快速拿到想要的数据。

  • MySQL 最终想要的业务数据会使用PySpark任务做处理,放置到该Mysql中,同时可以作为Hive的元数据存储

  • AZKABAN 相当好用的生成定时任务,同时很方便的提供图像化操作,方便创建以及管理查看任务运行情况

  • CentOS本集群构建所使用的基础计算机操作系统

  • Spark计算集群

  • Python 用于清洗数据的脚本,计算业务数据的脚本

  • SSM 用来搭建Web后台

结束

为什么如何搭建都没有讲?具体如何搭建集群以及各个环节如何融入的技术,请自行参考其他博文,本文只阐述项目架构。
搭建以上各个组件细节甚多,坑甚多,不同组件版本会遇到不同情况。我写出来也不具有统一参考性,我觉得自行摸索配合该架构图,会逐步打通整个业务流程,熟悉掌握大数据集群这两个关键性技术存储和计算。



作者:热血沸腾
链接:https://www.jianshu.com/p/6984b81695e8


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消