![](https://img-blog.csdnimg.cn/42c55aa804e24545bcc71a793caa226e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
手把手搭建企业级大数据搜索引擎用户行为分析系统
文章平均质量分 83
手把手全面介绍了“企业级大数据搜索引擎用户行为分析项目”的搭建过程。该项目基于真实业务场景,以项目驱动式进行讲解,内容涵盖Hadoop、ZooKeeper、Hive、Flume、Kafka、Spark等。
大数据张老师
Java大数据专家、讲师,先后多次给中国海洋大学、曲阜师范大学、青岛理工大学等多所高校举行大数据专题讲座与实训授课。著有畅销书《Hadoop大数据技术开发实战》《Spark大数据分析实战》《Hadoop3.X大数据开发实战(视频教学版)》《Spark3.X大数据分析实战(视频教学版)》《Flink大数据分析实战》。
展开
-
四十二、《大数据项目实战之用户行为分析》多框架整合实时分析用户行为日志数据流
本节使用Flume、Kafka、Structured Streaming、MySQL对用户行为日志数据流进行实时分析,并最终通过可视化图表展示。项目实时处理工作流程回顾图前面的系统数据流架构设计,数据的流转首先由Flume收集并转发到Kafka中,然后由Spark Streaming(此处使用Structured Streaming)实时从Kafka中读取数据并计算结果,将结果实时写入MySQL中。因此要想实现整个系统的不停运转,需要有源源不断的数据流向该系统。原创 2022-11-10 17:36:13 · 1100 阅读 · 0 评论 -
《大数据项目实战之搜索引擎用户行为分析》
随着互联网的迅速发展,Web系统在满足大量用户访问的同时,几乎每天都在产生大量的用户行为数据(用户在使用系统时通过点击、浏览等行为产生的日志数据)及业务交互数据,通过对这些行为数据进行分析可以获取用户的浏览行为,从而挖掘数据中的潜在价值,更好地、有针对性地进行系统的运营。而随着每天日志数据上百GB的增长,传统的单机处理架构已经不能满足需求,此时就需要使用大数据技术并行计算来解决。本系列文章从0到1手把手讲解如何使用大数据技术对搜索引擎海量用户搜索日志数据进行用户行为分析。统计一天中上网用户最多的时间段。原创 2022-11-07 12:20:18 · 800 阅读 · 0 评论 -
四十一、《大数据项目实战之用户行为分析》使用ECharts进行前端视图展示
ECharts是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE9/10/11,Chrome,Firefox,Safari等),提供直观、交互丰富、可高度个性化定制的数据可视化图表。本节在前面已经集成了WebSocket功能的SpringBoot项目“user_analyse_web”的基础上继续进行完善,集成ECharts可视化库,在浏览器中以柱形图的方式实时展示数据。具体操作步骤如下。原创 2022-11-07 11:59:30 · 753 阅读 · 0 评论 -
四十、《大数据项目实战之用户行为分析》SpringBoot项目集成WebSocket实时推送最新数据
WebSocket是基于TCP的一种新的网络协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以直接创建持久性的连接,并进行双向数据传输。WebSocket的工作流程如图。原创 2022-11-07 11:41:20 · 1173 阅读 · 0 评论 -
三十九、《大数据项目实战之用户行为分析》IDEA搭建基于SpringBoot的Web项目
在IDEA中新建Maven项目,选择“maven-archetype-quickstart”项目原型,单击【Next】按钮,如图在新窗口中填写项目名称“user_analyse_web”、项目在本地的存放路径,如图在新窗口中选择本地Maven的settings.xml配置文件所在的位置以及本地仓库的路径,如图创建完成后的Maven项目目录结构如图。原创 2022-11-07 11:30:59 · 637 阅读 · 0 评论 -
三十八、《大数据项目实战之用户行为分析》Structured Streaming输出计算结果到MySQL
本篇文章在上一篇的基础上继续进行完善,使用Structured Streaming实时处理Kafka中的单词数据,并将处理结果写入到MySQL中。处理流程如图。原创 2022-10-25 12:23:44 · 783 阅读 · 0 评论 -
三十七、《大数据项目实战之用户行为分析》Structured Streaming消费Kafka数据实现单词计数
Structured Streaming可以作为消费者与Kafka整合,实时读取Kafka中的数据进行处理。Structured Streaming与Kafka整合,需要Kafka的版本在0.10.0以上。时间戳的类型,取值0和1。目前Kafka支持的时间戳类型有两种:0表示 CreateTime,即生产者创建这条消息的时间;使用option()指定Kafka的连接属性,常用的连接属性解析如表。可以看到,最新批次的输出结果在上一批次结果的基础上进行了累加。上述依赖库中的2.12指的是Scala的版本。原创 2022-10-25 12:14:52 · 659 阅读 · 0 评论 -
三十六、《大数据项目实战之用户行为分析》Spark Streaming整合Kafka计算实时单词数量
Kafka在0.8和0.10版本之间引入了一个新的消费者API,Spark针对这两个版本有两个单独对应的Spark Streaming包可用,分别为spark-streaming-kafka-0-8和spark-streaming-kafka-0-10。需要注意的是,前者兼容Kafka 0.8、0.9、0.10,后者只兼容Kafka 0.10及之后的版本。原创 2022-10-25 12:09:50 · 623 阅读 · 0 评论 -
三十五、《大数据项目实战之用户行为分析》Spark Streaming按批次累加单词数量
本例使用Spark Streaming实现一个完整的按批次累加的实时单词计数程序。原创 2022-10-25 12:03:42 · 671 阅读 · 0 评论 -
三十四、《大数据项目实战之用户行为分析》Spark SQL热点搜索词统计
本例根据用户上网的搜索记录对每天的热点搜索词进行统计,以了解用户所关心的热点话题。本例的数据转化流程如图。原创 2022-10-19 17:16:53 · 412 阅读 · 0 评论 -
三十三、《大数据项目实战之用户行为分析》Spark SQL读写MySQL
本例讲解使用Spark SQL的JDBC API读取MySQL数据库中的表数据,并将DataFrame中的数据写入MySQL表中。Spark集群仍然使用Standalone模式。原创 2022-10-19 17:13:43 · 630 阅读 · 1 评论 -
三十二、《大数据项目实战之用户行为分析》Spark SQL操作Hive的几种方式
除了在启动Spark Shell时指定数据库的驱动jar外,还可以将驱动jar提前复制到$SPARK_HOME/jars目录中,Spark Shell启动时会自动加载该目录中的jar到classpath中。在IDEA中编写Spark SQL操作Hive的应用程序,然后将编写好的应用程序打包为jar,提交到Spark集群中运行,即可对Hive进行数据的读写与分析。此时查看HDFS的数据仓库目录,可以看到,在数据仓库目录中生成了一个文件夹student,表student的数据存放于该文件夹中,如图。原创 2022-10-19 17:06:48 · 533 阅读 · 0 评论 -
三十一、《大数据项目实战之用户行为分析》Spark SQL与Hive整合
Hive是一个基于Hadoop的数据仓库架构,使用SQL语句读、写和管理大型分布式数据集。Hive可以将SQL语句转化为MapReduce(或Apache Spark、Apache Tez)任务执行,大大降低了Hadoop的使用门槛,减少了开发MapReduce程序的时间成本。可以将Hive理解为一个客户端工具,其提供了一种类SQL查询语言,称为 HiveQL。这使得Hive十分适合数据仓库的统计分析,能够轻松使用HiveQL开启数据仓库任务,如提取/转换/加载(ETL)、分析报告和数据分析。原创 2022-10-19 17:01:27 · 895 阅读 · 1 评论 -
三十、《大数据项目实战之用户行为分析》Spark SQL实现单词计数
创建方法是使用SparkSession.builder()创建一个Builder类型的构建器,然后调用Builder的getOrCreate()方法获取已有的SparkSession对象。可以直接在IDEA中运行上述单词计数程序,也可以将master("local[*]")中的local[*]改为Spark集群的Master地址,然后提交到Spark集群中运行。接下来可以执行SQL命令了。可以看出,lines Dataset将单词文件中的每一行看作一个元素,并且所有元素组成了一列,列名默认为value。原创 2022-10-19 16:54:18 · 433 阅读 · 0 评论 -
二十九、《大数据项目实战之用户行为分析》Spark3.X分布式集群搭建
访问Spark官网(http://spark.apache.org/downloads.html)下载预编译的Spark安装包,选择Spark版本为3.2.1,包类型为Pre-built for Apache Hadoop 3.3 and later(Hadoop 3.3及之后版本的预编译版本)。将下载的安装包spark-3.2.1-bin-hadoop3.2.tgz上传到centos01节点的/opt/softwares目录,然后进入该目录,执行以下命令,将其解压到目录/opt/modules中。原创 2022-10-19 16:48:20 · 302 阅读 · 0 评论 -
二十八、《大数据项目实战之用户行为分析》Hive集成HBase分析搜索引擎用户行为数据
我们已经知道,HBase数据库没有类SQL的查询方式,因此在实际的业务中操作和计算数据非常不方便。而Hive支持标准的SQL语法(HiveQL),若将Hive与HBase集成,则可以通过HiveQL直接对HBase的表进行读写操作,让HBase支持JOIN、GROUP等SQL查询语法,完成复杂的数据分析。甚至可以通过连接和联合将对HBase表的访问与Hive表的访问结合起来进行统计与分析。原创 2022-10-15 20:11:45 · 476 阅读 · 0 评论 -
二十七、《大数据项目实战之用户行为分析》Hive分析搜索引擎用户行为数据
本节讲解使用Hive对搜索引擎用户行为日志进行分析,具体操作步骤如下。原创 2022-10-15 20:01:24 · 746 阅读 · 0 评论 -
二十六、《大数据项目实战之用户行为分析》Hive表操作
Hive的表由实际存储的数据和元数据组成。实际数据一般存储于HDFS中,元数据一般存储于关系型数据库中。原创 2022-10-15 17:59:42 · 405 阅读 · 0 评论 -
二十五、《大数据项目实战之用户行为分析》Hive数据库操作
上述命令执行成功后,若HDFS目录/input中不存在文件夹db_hive.db则会自动创建。原创 2022-10-14 20:29:10 · 833 阅读 · 2 评论 -
二十四、《大数据项目实战之用户行为分析》Hive远程模式安装
远程模式分为服务端与客户端两部分,服务端的配置与本地模式相同,客户端需要单独配置。本例将centos01节点作为Hive的服务端,centos02节点作为Hive的客户端。在的基础上继续进行远程模式的配置。原创 2022-10-14 09:22:26 · 163 阅读 · 0 评论 -
二十三、《大数据项目实战之用户行为分析》Hive本地模式安装
本地模式的安装与内嵌模式的不同在于,需要修改配置文件,设置MySQL数据库的连接信息。此处默认已经安装好MySQL(本例使用MySQL8.0.18)。下面在内嵌模式的基础上继续进行修改,搭建本地模式,操作步骤如下。原创 2022-10-14 09:16:57 · 278 阅读 · 0 评论 -
二十二、《大数据项目实战之用户行为分析》Hive内嵌模式安装
Hive有三种运行模式:内嵌模式、本地模式和远程模式。由于Hive基于Hadoop,因此在安装Hive之前需要先安装好Hadoop。Hadoop的安装可参考,此处不再赘述。Hive只需要在Hadoop集群的其中一个节点安装即可,而不需要搭建Hive集群。Hive内嵌模式的安装步骤如下。原创 2022-10-12 10:19:17 · 367 阅读 · 0 评论 -
二十一、《大数据项目实战之用户行为分析》Flume数据实时写入HBase
本节在上一节的基础上继续进行完善,将centos03节点的Flume接收到的数据写入到Kafka和HBase中。整个过程的数据流架构如图具体操作步骤如下。原创 2022-10-12 09:37:28 · 294 阅读 · 0 评论 -
二十、《大数据项目实战之用户行为分析》Flume数据实时写入Kafka
我们已经知道,Kafka适合用于对数据存储、吞吐量、实时性要求比较高的场景。而对于数据的来源和流向比较多的情况,则适合使用Flume,且Flume不提供数据存储功能而是侧重于数据采集与传输。在实际开发中,常常将Flume与Kafka结合使用,从而提高系统的性能,使开发起来更加方便。原创 2022-10-12 09:19:52 · 893 阅读 · 0 评论 -
十九、《大数据项目实战之用户行为分析》配置Flume多节点数据采集
回顾系统数据流设计,如图配置三个Flume节点进行用户行为数据的采集。具体思路是,在centos01节点、centos02节点、centos03节点分别安装Flume,centos01节点和centos02节点的Flume负责实时监控指定的日志文件数据,并分别将监控到的新数据发送到centos03节点中的Flume进行合并,centos03节点中的Flume将接收到的数据打印到当前主机的控制台。整个过程的数据流架构如图具体操作步骤如下。原创 2022-10-12 09:09:00 · 295 阅读 · 0 评论 -
十八、《大数据项目实战之用户行为分析》Flume安装与测试
Flume依赖于Java环境,安装Flume之前需要先安装好JDK,JDK的安装此处不再赘述。下面讲解在集群中的centos01节点上安装Flume的操作步骤,并配置Flume从指定端口采集数据,将数据输出到控制台。原创 2022-10-12 09:02:44 · 300 阅读 · 0 评论 -
十七、《大数据项目实战之用户行为分析》Kafka命令行操作
生产者接收用户的标准输入发送到Kafka,消费者则一直尝试从Kafka中拉取生产的数据,并打印到标准输出中。下面使用Kafka命令行客户端创建主题、生产者与消费者,以测试Kafka集群能否正常使用。如无特殊说明,以下所有命令都是在Kafka安装目录下执行。原创 2022-10-12 08:56:00 · 196 阅读 · 0 评论 -
十六、《大数据项目实战之用户行为分析》Kafka分布式集群搭建
Kafka依赖ZooKeeper集群,搭建Kafka集群之前,需要先搭建好ZooKeeper集群。ZooKeeper集群的搭建步骤可查看前面章节,此处不做过多讲解。原创 2022-10-11 20:04:19 · 259 阅读 · 0 评论 -
十五、《大数据项目实战之用户行为分析》HBase数据表操作
HBase 为用户提供了一个非常方便的命令行操作方式,我们称之为HBase Shell。HBase Shell 提供了大多数的 HBase 命令,通过 HBase Shell 用户可以方便地创建、删除及修改表,还可以向表中添加数据、列出表中的相关信息等。原创 2022-10-11 19:58:32 · 344 阅读 · 0 评论 -
十四、《大数据项目实战之用户行为分析》HBase分布式集群搭建
HBase集群建立在Hadoop集群的基础上,而且依赖于ZooKeeper,因此在搭建HBase集群之前,需要将Hadoop集群(本例使用的Hadoop集群为非HA模式,即一个NameNode)和ZooKeeper集群搭建好。Hadoop和ZooKeeper集群的搭建读者可以参考前面章节,此处不再赘述。本例仍然使用三个节点(centos01、centos02和centos03)搭建部署HBase集群,集群各节点的角色分配如表centos01节点centos02节点centos03节点HDFS。原创 2022-10-11 15:48:24 · 703 阅读 · 0 评论 -
十三、《大数据项目实战之用户行为分析》ZooKeeper命令行操作
ZooKeeper节点状态的每一次改变,都会产生一个唯一的zxid(用于递增的ZooKeeper事务id)形式的标记。使用create命令,可以创建一个新的znode节点。使用set命令,可以修改znode节点的元数据字符串。使用get命令,可以查看某个znode的详细状态信息及其包含的元数据字符串。使用ls命令,可以查看ZooKeeper相应路径下的所有znode节点。使用delete命令,可以将某个znode节点删除。可以看到,当前根目录有一个名称为“zookeeper”的znode节点。原创 2022-10-11 14:30:45 · 315 阅读 · 0 评论 -
十二、《大数据项目实战之用户行为分析》ZooKeeper集群搭建
由于在ZooKeeper集群中,会有一个Leader服务器负责管理和协调其他集群服务器,因此服务器的数量通常都是单数,例如3,5,7等,这样数量为2n+1的服务器就可以允许最多n台服务器的失效。本例仍然使用三个节点(centos01、centos02、centos03)搭建部署ZooKeeper集群,搭建步骤如下。原创 2022-10-11 14:27:16 · 212 阅读 · 0 评论 -
十一、《大数据项目实战之用户行为分析》Hadoop HDFS Java API操作
使用HDFS Java API可以远程对HDFS系统中的文件进行新建、删除、读取等操作。本节主要介绍如何在Eclipse中使用HDFS Java API与HDFS文件系统进行交互。在使用Java API之前,首先需要新建一个Hadoop项目。Hadoop项目的结构与普通的Java项目一样,只是所需依赖包不同。原创 2022-10-11 14:17:55 · 725 阅读 · 0 评论 -
十、《大数据项目实战之用户行为分析》Hadoop HDFS命令行及Web界面操作
HDFS的命令行接口类似传统的Shell命令,可以通过命令行接口与HDFS系统进行交互,从而对系统中的文件进行读取、移动、创建等操作。或者上述格式中的hadoop fs和hdfs dfs为命令前缀,二者使用任何一个都可。下面就介绍一些HDFS系统的常用操作命令,若没有配置Hadoop的系统PATH变量,则需要进入到$HADOOP_HOME/bin目录中执行。1.ls使用ls命令可以查看HDFS系统中的目录和文件。上述命令中的hadoop fs为操作HDFS系统的命令前缀,不可省略。原创 2022-10-10 08:07:06 · 583 阅读 · 0 评论 -
九、《大数据项目实战之用户行为分析》Hadoop3.X分布式集群搭建
本例的搭建思路是,在节点centos01中安装Hadoop并修改配置文件,然后将配置好的Hadoop安装文件远程复制到集群中的其他节点。集群各节点的角色分配如表centos01节点centos02节点centos03节点HDFSNameNodeDataNodeDataNodeDataNodeYARN。原创 2022-10-10 08:01:21 · 338 阅读 · 0 评论 -
八、《大数据项目实战之用户行为分析》配置集群各节点SSH无密钥登录
Hadoop的进程间通信使用SSH(Secure Shell)方式。SSH是一种通信加密协议,使用非对称加密方式,可以避免网络窃听。为了使Hadoop各节点之间能够无密钥相互访问,使彼此之间相互信任,通信不受阻碍,在搭建Hadoop集群之前需要配置各节点的SSH无密钥登录。原创 2022-10-09 21:16:27 · 466 阅读 · 0 评论 -
七、《大数据项目实战之用户行为分析》配置CentOS7主机IP映射
配置本地Windows系统的主机IP映射,以便后续可以在本地通过主机名直接访问集群节点资源。需要注意的是,主机名后面不要有空格,且每个节点的hosts文件中都要加入同样的内容,这样可以保证每个节点都可以通过主机名访问到其他节点,防止后续的集群节点间通信产生问题。通过修改各节点的主机IP映射,可以方便地使用主机名访问集群中的其他主机,而不需要输入IP地址。这就好比我们通过域名访问网站一样,方便快捷。依次启动三个节点:centos01、centos02、centos03。原创 2022-10-09 21:11:28 · 1071 阅读 · 0 评论 -
六、《大数据项目实战之用户行为分析》VMWare中克隆虚拟机
在弹出的新窗口中,【虚拟机名称】一栏填写为“centos02”,并单击【浏览】按钮,修改新虚拟机的存储位置,然后单击【完成】按钮,开始进行克隆,如图。由于集群环境需要多个节点,当一个节点配置完毕后,可以通过VMware的克隆功能,将配置好的节点进行完整克隆,而不需要重新新建虚拟机和安装操作系统。克隆完成后,所有节点如图。在弹出的【克隆源】窗口中,选择【虚拟机中的当前状态】选项,然后单击【下一步】按钮,如图。在弹出的【克隆类型】窗口中,选择【创建完整克隆】选项,然后单击【下一步】按钮,如图。原创 2022-10-09 21:09:14 · 425 阅读 · 0 评论 -
五、《大数据项目实战之用户行为分析》CentOS7操作系统中安装JDK
Hadoop等很多大数据框架使用Java开发,依赖于Java环境,因此在搭建Hadoop集群之前需要安装好JDK。1. 卸载系统自带的JDK。(2)配置JDK环境变量。JDK的安装步骤如下。(1)上传解压安装包。原创 2022-10-09 21:01:46 · 277 阅读 · 0 评论 -
四、《大数据项目实战之用户行为分析》CentOS7系统环境配置
操作系统关闭后,可在VMWare中重新启动,如图操作系统启动后,选择或输入需要登录的账号,填写登录密码即可登录操作系统。原创 2022-10-09 20:58:38 · 449 阅读 · 0 评论