[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iez0Bcep-1639467720594)(C:UsersyfyAppDataRoamingTyporatypora-user-imagesimage-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.csv2.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 <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.inputnohup命令 *** 作
#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.confhadoop03 将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.conf2.kafka安装 要想kafka正常运行,首先要确定zookeeper是正常运行的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9RrSqKc2-1639467720598)(C:UsersyfyAppDataRoamingTyporatypora-user-imagesimage-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 weblog3.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:UsersyfyAppDataRoamingTyporatypora-user-imagesimage-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 1004.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条)