大数据项目实战之新闻话题的实时统计分析

  • 时间:
  • 浏览:6

既然要实现客户端实时接收服务器端的消息,而服务器端又实时接收客户端的消息,必不可少的本来我WebSocket了,WebSocket实现了浏览器与服务器全双工通信(full-duple),能更好的节省服务器资源和效率并达到实时通讯。WebSocket用HTTP握手完后 ,服务器和浏览器就使用这条HTTP链接下的TCP连接来直接传输数据,离开了复杂性的HTTP头部和格式。一旦WebSocket通信连接建立成功,就都都都里能 在全双工模式下在客户端和服务器之间来回传送WebSocket消息。即在同一时间、任何方向,都都都都里能 全双工发送消息。WebSocket 核心本来我OnMessage、OnOpen、OnClose,本项目使用的是和Spring集成的法律妙招,想要还要有configurator = SpringConfigurator.class。

主要通过设置Source、Channel、Sink来完成日志架构设计 。



环境准备

本文讲解的比较粗糙,有没有来越多没有来越多没有来越多没有来越多细节的东西,毕竟一整个项目不机会用一篇文章说清楚。。。没有来越多没有来越多没有来越多没有来越多实践的东西还要读者我该人去领悟,想要架构、环境搭建、法律妙招、流程还是很有参考价值的!

前言:本文是一一个多 多完全的大数据项目实战,实时|离线统计分析用户的搜索话题,并用酷炫的前端界面展示出来。你这人 指标对网站的精准营销、运营都有极大帮助。架构大致是按照企业标准来的,从日志的架构设计 、转化处里、实时计算、JAVA后台开发、WEB前端展示,一条完全流程线下来,甚至每个节点都用的高可用架构,都考虑了故障转移和容错性。所用到的框架包括:Hadoop(HDFS+MapReduce+Yarn)+Flume+KafKa+Hbase+Hive+Spark(SQL、Structured Streaming )+Hue+Mysql+SpringMVC+Mybatis+Websocket+AugularJs+Echarts。所涉及到的语言包括:JAVA、Scala、Shell

机会本文何必 零基础教学,没有来越多没有来越多没有来越多没有来越多只讲架构和流程,基础性知识自行查缺补漏。Github机会上传完全项目代码:liuyanling41-Github

验证一下HBASE和HIVE是都有同步的:

各方面配置都和Agent2完全一样、省略。

具体讲解如下:

这里选折 Mysql是机会,没没有人的需求本来我报表展示,还要在前台展示的字段何必 多,关系型数据库完全也能支撑。在Hbase里有几百万条数据(一一个多 多浏览话题机会有十几万人搜索过,也本来我说一一个多 多话题都有十几万条数据,没有 多量数据当然要处在Hbase中),而经过spark的计算,这十几万条数据在mysql中就变成了一条数据(XXX话题,XXX浏览量)。

机会业务需求变了,我还要实时查询用户各种信息(数据量很大,字段没有来越多没有来越多没有来越多没有来越多),没有 当然本来我实时的直接从Hbase里查,而不想在Mysql中。

没有来越多没有来越多没有来越多没有来越多企业中要根据不同的业务需求,充分考虑数据量等问题报告 ,进行架构的选折 。

我该人虽然传统JDBC虽然是太笨重,还是最喜欢Spring整合Mybatis对数据库进行操作。这里主要完成的操作本来我对mysql的数据进行查询。详情请参考github,地址文章开头已给出。

最终效果图如下:

没没有人都都都里能 想看 开头给出的项目效果图还是蛮漂亮的,虽然非常简单,本来我用的Echarts你这人 框架。直接给它传值就ok了,你这人 前端你这人 事它都我能 玩转信用卡 了。详情请参考github,地址文章开头已给出。





没没有人知道Hive是一一个多 多数据仓库,主要本来我转为MapReduce完成对多量数据的离线分析和决策。完后 没没有人机会用Flume集成Hbase,使得Hbase能源源不断的插入数据。没有 没没有人直接将HIVE集成HBase,曾经只要Hbase有数据了,那Hive表也都有数据了。为社 集成呢?很简单,用【内部表】就玩转信用卡 了。

项目架构图如下:

好了现在没没有人都都都里能 在Hive中尽情的离线分析和决策了~~~

这里我选折 的是2.2版本中的StructuredStreaming,机会它相比SparkStreaming而言有没有来越多没有来越多没有来越多没有来越多优势,它的经常出现重点本来我处里端到端的精确一次语义,保证数据的不丢失不重复,这对于流式计算极为重要。StructuredStreaming的输入源为kafka,spark对来自kafka的数据进行计算,主要本来我累加话题量和访问量。具体代码参考github。