FileBeat+Kafka+Flink+Redis之数据一条龙差一点服务

一、任务概况

​ 大概模仿一下流数据的产生(通过脚本定时生成)、传递(通过FileBeat监控double11.log文件并实时传送给kafka)、处理(通过kafka传递过来的数据交给Flink进行统计)、存储(用java实现连接Redis并存储)。

​ 模仿的事例过程是很简化的天猫双11实时交易的流程。

在这里插入图片描述

二、具体实现

1.模拟生产实时流数据

利用Linux shell自动化模拟每秒钟产生一条交易额数据,数据内容为用户id,购买商品的付款金额,用户所在城市及所购买的商品 。

double11.sh代码如下:

#!/bin/bash
i=1
for i in $(seq 1 60)
    do
        customernum=`openssl rand -base64 8 | cksum | cut -c1-8`
        pricenum=`openssl rand -base64 8 | cksum | cut -c1-4`
        citynum=`openssl rand -base64 8 | cksum | cut -c1-2`
        itemnum=`openssl rand -base64 8 | cksum | cut -c1-6`
        echo "customer"$customernum","$pricenum",""city"$citynum",""item"$itemnum >> /usr/local/data2/double11/double11.log
        sleep 1
    done

在shell中执行

在这里插入图片描述

生成数据保存到double11.log文件中
在这里插入图片描述

利用 Linux crontab 每分钟执行一次这个脚本(参考链接: https://blog.csdn.net/qq_40374604/article/details/86540393 ),便可以模拟生成流数据。

2. Filebeat实时监控double11.log产生的每条交易额记录,将记录实时流向到Kafka的topic 。

FileBeat的安装参考链接: https://blog.csdn.net/jeikerxiao/article/details/84841792

主要做两件事情:

  1. 配置FileBeat读入文件的路径,修改paths,如下配置能读取/usr/local/data2/double11/下所有以.log结尾的文件。
    在这里插入图片描述

  2. 配置FileBeat输出,hosts是Kafka主机IP,topic是传递的话题,还有很多参数感兴趣的话可以自己查阅。

在这里插入图片描述

在shell中执行./filebeat -e -c filebeat.yml命令来启动Filebeat,显示的东西是很乱,但这就是正常启动的样子。
在这里插入图片描述

3.Flink对Kafka传入的数据进行处理。

​ 这部分是核心工作,利用模拟生成的消费者信息可以做很多事情,在这里就简单做了实时总交易额客户端消费kafka数据和根据城市实时总交易额客户端消费kafka数据这两件事情。

​ 我这里编程工具为sts,其实Idea和eclipse都可以,看个人喜好。使用Flink Java API,我对这些API的具体工作过程不是很理解,在网上找了很多资料,勉强知道了这些API可以怎么使用,所以代码中的注释不是很详细,有兴趣的话可以自己去查阅。

需要导入的maven依赖 :

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-clients -->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients_2.11</artifactId>
            <version>1.0.0</version>
        </dependency>
 
        <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java -->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_2.11</artifactId>
            <version>1.0.0</version>
            <scope>provided</scope>
        </dependency>
 
        <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-java -->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-java</artifactId>
            <version>1.0.0</version>
        </dependency>
 
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-kafka-0.8_2.11<
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个开源的分布式计算框架,可用于处理大数据集并提供高可靠性,高可用性和高性能。要进行详细的安装部署,需要运行以下步骤: 1. 安装Java:Hadoop基于Java编写,因此需要安装适当的Java版本。 2. 安装Hadoop:以二进制文件的形式下载Hadoop,并将其解压缩到目标位置。编辑Hadoop配置文件,并设置必要的参数,例如本地文件系统和Hadoop所依赖的其他组件。 3. 部署HDFS:使用bin/hdfs script启动HDFS守护进程并格式化NameNode。配置HDFS,并在数据节点上创建数据目录。 4. 部署YARN:使用bin/yarn script启动YARN守护进程,并在ResourceManager节点上运行MR程序的ApplicationMaster服务。重新配置YARN,并设置资源管理器和节点管理器。 5. 安装Spark:以二进制文件的形式下载Spark,并将其解压缩到目标位置。编辑Spark配置文件,并设置必要的参数,例如运行模式,内存设置和调试选项。 6. 安装Hive:以二进制文件的形式下载Hive,并按照说明进行安装。配置Hive,并设置Metastore和HiveServer2。 7. 安装HBase:以二进制文件的形式下载HBase,并按照说明进行安装。配置HBase,并设置区域服务器和HBase主服务器。 8. 安装Oozie:以二进制文件的形式下载Oozie,并按照说明进行安装。编辑Oozie配置文件,并设置必要的参数,例如数据库连接,属性和内存设置。 9. 安装Kafka:以二进制文件的形式下载Kafka,并按照说明进行安装。配置Kafka,并设置必要的参数,例如Zookeeper连接,日志存储位置和日志大小限制。 10. 安装Flume:以二进制文件的形式下载Flume,并按照说明进行安装。配置Flume,并设置必要的参数,例如Flume代理,事件类型和目标。 11. 安装Flink:以二进制文件的形式下载Flink,并按照说明进行安装。配置Flink,并设置必要的参数,例如集群模式,任务管理器,计算管道和作业提交方式。 12. 安装ES:以二进制文件的形式下载Elasticsearch,并按照说明进行安装。配置Elasticsearch,并设置必要的参数,例如节点类型,索引设置和查询配置。 13. 安装Redash:以二进制文件的形式下载Redash,并按照说明进行安装。配置Redash并设置必要的参数,例如数据库连接,权限和查询模式。 以上提到的大数据技术是开源的,所以可以在官网上找到相关二进制文件和详细的安装部署指南。也可以使用一些自动化的部署工具,如Puppet和Ansible来简化整个过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值