搜索日志实时展示项目

搜索日志实时展示项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iez0Bcep-1639467720594)(C:\Users\yfy\AppData\Roaming\Typora\typora-user-images\image-20211213083809254.png)]

项目数据写入过程:

使用create_log.sh 动态生成数据 -> 导入到 hadoop01上的flume -> hadoop03上的flume -> kafka ->

spark(汇聚数据) -> mysql ;

项目数据读取(展示)过程:

mysql -> 服务端(一个maven项目) -> 前端(echarts可视化软件进行展示)

一、数据写入环境搭建

数据源准备

1.数据源地址 :http://www.sogou.com/labs/resource/q.php
2.数据处理

模拟数据实时动态生成效果,为后续数据处理及展示提供源源不断的数据

首先在hadoop01家目录下创建一个search目录,将老师发的数据SogouQ.reduced拷贝到目录中,以下所有操作都在search目录中进行

2.1处理乱码问题
iconv  -f  gb18030  -t  utf-8   SogouQ.reduced  >  sogou.csv
2.2创建create_log.sh文件
if [ $# -ne 3 ] ; then
 echo "usage $0   src_file  dst_file frequence"
 exit
fi
while  read line ;do echo $line | tr ' ' ',' >> $2 ; sleep $3 ; done < $1
2.3动态生成数据

#增加create_log.sh执行权限
chmod +x create_log.sh
#执行生成动态数据的脚本 注意在/home/hadoop/search/目录下执行#
nohup  ./create_log.sh  sogou.csv   sogou.input  0.1 &
#查看动态生成的数据
tail -f  sogou.input

nohup命令操作

#nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

#nohup命令将日志输出到nohup.out文件中

#使用fg命令可以将nohup执行的进程显示到控制台
fg
#fg命令执行后,可以使用ctrl+c 终止这个进程

1.flume安装配置

flume安装完后要配置环境变量

在 .bashrc中添加

export FLUME_HOME=/usr/local/flume
export PATH=$PATH:$FLUME_HOME/bin

source .bashrc 生效

hadoop01上的操作

创建/home/hadoop/search/flume目录,在flume目录中创建 flume-sogou.conf

将 /home/hadoop/search/sogou.input 的数据源源不断地传输到 hadoop03:4141端口

# agent name  a1

a1.sources = r1
a1.sinks = k1
a1.channels = c1


# source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /home/hadoop/search/sogou.input
a1.sources.r1.shell = /bin/bash -c

# sink

a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop03
a1.sinks.k1.port = 4141

# channel

a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 10000

#

a1.sources.r1.channels = c1
a1.sinks.k1.channel =  c1
 cd /home/hadoop/search/flume/
 nohup flume-ng agent --name a1 --conf-file flume-sogou.conf  &
 #查看flume是否正常启动
 ps aux|grep flume-sogou.conf
hadoop03
将flume的数据传输到kafka中

创建/home/hadoop/search/flume目录,在flume目录中创建flume-kafka.conf 文件

# agent name  a3

a3.sources = r1
a3.sinks = k1
a3.channels = c1


# source
a3.sources.r1.type = avro
a3.sources.r1.bind = hadoop03
a3.sources.r1.port = 4141

# sink

a3.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a3.sinks.k1.kafka.bootstrap.servers = hadoop01:9092,hadoop02:9092,hadoop03:9092
a3.sinks.k1.kafka.topic = weblog
a3.sinks.k1.parseAsFlumeEvent = false
# channel

a3.channels.c1.type = memory
a3.channels.c1.capacity = 10000
a3.channels.c1.transactionCapacity = 10000

#

a3.sources.r1.channels = c1
a3.sinks.k1.channel =  c1
cd /home/hadoop/search/flume/
 nohup flume-ng agent --name a3 --conf-file flume-kafka.conf  &
 #查看flume是否正常启动
 ps aux|grep flume-kafka.conf

2.kafka安装

要想kafka正常运行,首先要确定zookeeper是正常运行的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9RrSqKc2-1639467720598)(C:\Users\yfy\AppData\Roaming\Typora\typora-user-images\image-20211213113611286.png)]

查看三台机器上是否有QuorumPeerMain进程,没有就把zookeeper启动起来,上图就是zookeeper没有启动,kafka连接zookeeper不成功的例子。

在所有机器上进行环境变量配置 .bashrc文件

export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin

source .bashrc

hadoop02
 /usr/local/kafka/bin/kafka-server-start.sh  /usr/local/kafka/config/server.properties   &
hadoop03
 /usr/local/kafka/bin/kafka-server-start.sh  /usr/local/kafka/config/server.properties   &

查看是否有数据从hadoop03上的flume传过来

 kafka-console-consumer.sh --zookeeper hadoop01:2181 --topic  weblog

3.spark安装配置

3.1初识spark

spark是一个基于内存的快速、通用、可扩展的大数据分析技术引擎,相比于MapReduce计算框架,它计算速度更快、编程简单、适用于实时处理场景。

观看 https://www.bilibili.com/video/BV11A411L7CK?p=1 中001-003集视频(15分钟左右),对spark有个初步了解

3.2.spark安装

将spark 2.4.0版本安装到hadoop01节点,给同学们提供了如下安装包,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cYZFpgJk-1639467720600)(C:\Users\yfy\AppData\Roaming\Typora\typora-user-images\image-20211214112821552.png)]

3.2.1.设置依赖环境
#spark2.4.0版本依赖包括 scala 2.11 ,java jdk1.8
#1.首先要安装scala 2.11
  sudo apt install  scala 
#2.验证scala是否安装成功,执行scala命令,看输出是否显示
    Welcome to Scala version 2.11.6 (OpenJDK 64-Bit Server VM, Java 1.8.0_292).
    Type in expressions to have them evaluated.
    Type :help for more information.
#3.按照jdk1.8,注意之前我们安装的是jdk1.7,所以要将jdk的环境变量改成1.8(这一步非常重要)
  #将jdk1.8的包解压安装到/usr/lib/jvm/
  #将.bashrc中的jdk环境变量切换成jdk1.8
  #使用source命令生效新生成的环境变量
  
3.2.2.spark安装
#压缩包解压
sudo  tar xzvf  spark-2.4.0-bin-without-hadoop.tgz    -C /usr/local/
#将解压后的目录修改为 /usr/local/spark  

#将/usr/local/spark目录所属用户和用户组改为hadoop

#设置spark环境变量,也就是能让spark在任意位置执行

#文件配置
/usr/local/spark/conf 下的spark-env.sh 中增加如下内容(确保hadoop环境变量没问题,也就是任意位置可以执行hadoop命令)
export SPARK_DIST_CLASSPATH=$(hadoop classpath)

#将如下依赖包拷贝到 /usr/local/spark/jars中
kafka-clients-0.10.2.0.jar
spark-sql-kafka-0-10_2.11-2.4.0.jar
spark-streaming-kafka-0-10_2.11-2.4.0.jar
mysql-connector-java-5.1.40-bin.jar
#设置日志级别,在/usr/local/spark/目录中执行如下命令
cp log4j.properties.template  log4j.properties
#修改 log4j.properties内容中
log4j.rootCategory=INFO, console 改成 log4j.rootCategory=WARN, console
#命令执行
spark-submit   --class org.apache.spark.examples.SparkPi  /usr/local/spark/examples/jars/spark-examples_2.11-2.4.0.jar 100

4.mysql安装与表创建

 #安装mysql的服务端,客户端
 sudo apt install mysql-server  mysql-client
 #启动mysql服务端
 sudo  systemctl  start  mysql
 #登录mysql服务器
 mysql -uroot -proot
 #创建数据库stat
 
 #创建表 webCount,包含一个int类型的count字段,一个varchar类型的titleName字段,字符集CHARSET设置为utf8
 

s_2.11-2.4.0.jar 100


### 4.mysql安装与表创建

```shell
 #安装mysql的服务端,客户端
 sudo apt install mysql-server  mysql-client
 #启动mysql服务端
 sudo  systemctl  start  mysql
 #登录mysql服务器
 mysql -uroot -proot
 #创建数据库stat
 
 #创建表 webCount,包含一个int类型的count字段,一个varchar类型的titleName字段,字符集CHARSET设置为utf8
 

二、数据展示环境搭建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值