数据采集-Lua集成kafka流程跑通|学习笔记

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 快速学习数据采集-Lua集成kafka流程跑通

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop框架搭建):数据采集-Lua集成kafka流程跑通】学习笔记与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/670/detail/11615


数据采集-Lua集成kafka流程跑通

 

内容介绍:

一、修改数据采集-Lua集成kafka配置参数

二、编写 Lua 采集数据并发送至 Kafka 的脚本

 

一、修改数据采集-Lua集成kafka配置参数

具体如下: 

Nginx文件:nginx.conf

worker_processess  1;

events {

Worker_connections 1024;

}

http{

includemime.types;

default_typeapplication/octet-stream;

sendfileon;

keepalive_timeout 65;

#开启共享字典,设置内存大小为 10M,供每个nginx 的线程消费

lua_shared_dict shared data 10m;

#配置本地域名解析

resoiver 127.0.0.1;

server {

listen80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location/{

#roothtml;

#index index.htmlindex.htm

#开启nginx 监控 

完成 Lua 的采集数据,且发送到 Kafka 这个脚本完善脚本、强制写配置参数时,会再进行介绍。

 

二、编写 Lua 采集数据并发送至 Kafka 的脚本

1. 导入 Kafka 依赖包

本质上open  restate 现在是集成了 resty 第三方的安装包,但不属于集成 Kafka 的。

脚本中验证进入前面目录,进入到 Lua  lib ,里面没有 Kafka再进入到 resty 里边 resty 中也没有 Kafka ,但是它有 redis 。

即 open resty 集成了 radis,但是没有集成 Kafka ,因此需要第三方引入。

(1)按照之前所写的 redis ,引入局部的变量 

local importkafka=require“ reasty . redis ”

材料中选择打开:反爬虫项目-素材-资料包- OpenResty -资源,选择 Lua -resty-Kafka master.zip并解压当前文件夹打开文件夹 lib - risky - Kafka 。 Kafka 整个目录及所有内容上传到集群中来。

具体位置:上传到我集群当中, Lua lib 里面

使用SSH客户端上传

Host Name:192.168.100.160,

用户名: root

码:1234561

(2)将目录上传至 usr - local - Openresty - Lua lib - resty

我们再来从界面中确认,当含有 producer 、broker等时,即说明已将 Kafka 引入进来了

确认一下目录,第三方的 Kafka 已经上传到了100.160这个机器上面,它的目录即为 recipe里面的 Kafka 。

(3)选中 /resty/kafka并复制粘贴到我的代码里边,同时替换“/ /”为“ . ”不进行替换也可以正常使用。

(4)引入 producer ,粘贴复制至我的代码。

2. 创建我的 Kafka 的生产者

1定义一个 Kafka 的生产者进行接收,定义一个局部或全局的local kafkaProducer =importkafka:new()“( )”内需引入。

打开素材-资料包- Openresty -资源;选中lua-resty-kafka -master 打开,并打开 lib - resty - kafka ,选择 producer.Jua

利用查找found:_M.new

其中 producer、 CLUSTER_NAME 、 self 存在默认值可以不用传Broker_list 存在缺失,则需要进行引入:Ctrl+C粘贴至上述“( )”内。

(2)添加 Broker_list实例数据

Local broker_list=({})共添加三个节点即 Kafka

第一个节点IP端口分别用 host=“192.168.100.100,”port=“9092”

第二个节点:host=“192.168.100.110,”port=“9092”

第三个节点host=“192.168.100.120,”port=“9092”

3.发送数据

(1)kafkaProducer:send(),“(  )”内填数据

具体参数:_M.send

其中self 不用处理; topic 、 key 、 message 需要进行发送,且不具有默认值Ctrl+C将其放到上述“(  )”内。

(2)实例化 topic

Local topic=“test01”

3Key:指的topic的具体所属的分区编号。

实例数据写入 Kafka 分区的编号,

将 key 替换为local partitionNumber=”0”

4Message

local message “12345--678910

临时写分区编号、 message ,先把流程跑通,跑通后再解决 topic 、分区编号及 message 的问题

5上传到集群,找到160里面,当前该目录 pwd 是 Test Lua ,把脚本拖过来,ll发送过去。 GetDateToKafka.lua 脚本就有了,需要把它加载到 ngx 服务器里边,Ctrl+C 到 ngx 服务器中做个配置。

(6)输入以下代码并进入:

image.png

进入后,把redis改掉,改成刚刚  GetDateToKafka.lua 并保存。

(7)重启 ngx 服务器重启重启没有报错并查看当前 Kafka 里有哪些topic,实际上现在应只有一个topic, test

8运行一下当前脚本重启刷新界面当前界面是 redis ,刷新界面看下效果

刷新后显示为没有信息代码不存在报错情况:脚本导入 broker 、生产producer 、发送数据等各环节均没有报错

9验证test01是否出出现test01即说明topic创建出来了验证其数据,是否是先前输入的1-10

image.png

刷新可以看到数据显示:

说明写脚本分区编号数据还未输入外,目前流程上是通的,完全没有问题。

相关文章
|
1月前
|
存储 Java C++
lua完整学习笔记
Lua学习笔记,涵盖了Lua的注释、数据结构、标识符、保留字、变量、运算符、函数、流程控制语句、循环语句、table的使用、迭代器以及模块化等基础知识点。
45 3
lua完整学习笔记
|
1月前
|
消息中间件 存储 分布式计算
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
34 4
|
1月前
|
消息中间件 缓存 大数据
大数据-57 Kafka 高级特性 消息发送相关01-基本流程与原理剖析
大数据-57 Kafka 高级特性 消息发送相关01-基本流程与原理剖析
40 3
|
2月前
|
数据采集 消息中间件 存储
实时数据处理的终极武器:Databricks与Confluent联手打造数据采集与分析的全新篇章!
【9月更文挑战第3天】本文介绍如何结合Databricks与Confluent实现高效实时数据处理。Databricks基于Apache Spark提供简便的大数据处理方式,Confluent则以Kafka为核心,助力实时数据传输。文章详细阐述了利用Kafka进行数据采集,通过Delta Lake存储并导入数据,最终在Databricks上完成数据分析的全流程,展示了一套完整的实时数据处理方案。
70 3
|
3月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
85 1
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
3月前
|
jenkins 持续交付
jenkins学习笔记之六:共享库方式集成构建工具
jenkins学习笔记之六:共享库方式集成构建工具
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
150 0
|
3月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
76 0
|
3月前
|
Java 测试技术 容器
从零到英雄:Struts 2 最佳实践——你的Web应用开发超级变身指南!
【8月更文挑战第31天】《Struts 2 最佳实践:从设计到部署的全流程指南》深入介绍如何利用 Struts 2 框架从项目设计到部署的全流程。从初始化配置到采用 MVC 设计模式,再到性能优化与测试,本书详细讲解了如何构建高效、稳定的 Web 应用。通过最佳实践和代码示例,帮助读者掌握 Struts 2 的核心功能,并确保应用的安全性和可维护性。无论是在项目初期还是后期运维,本书都是不可或缺的参考指南。
50 0