美文网首页Apache Kafka@IT·大数据互联网科技
分布式离线/实时日志统计系统(Hadoop.Spark)

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

作者: 热血沸腾 | 来源:发表于2017-12-24 18:08 被阅读136次

    概要

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

    项目架构

    项目架构图

    集群一览

    大数据两个重要角色

    • 存储 采用Hadoop集群
    角色 ip
    NameNode 192.168.6.98
    DataNode1 192.168.6.92
    DataNode2 192.168.6.99
    • 计算 采用Spark
    角色 ip
    Master 192.168.6.98
    Worker1 192.168.6.92
    Worker2 192.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后台

    结束

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

    相关文章

      网友评论

        本文标题:分布式离线/实时日志统计系统(Hadoop.Spark)

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