平台营销型网站有什么设计网站推荐

web/2025/10/5 5:32:57/文章来源:
平台营销型网站,有什么设计网站推荐,查看网站开发语言,网站布局图Flume#xff08;1.11.0版本#xff09; 简介 概述 Flume本身是由Cloudera公司开发的后来贡献给了Apache的一套针对日志数据进行收集(collecting)、汇聚(aggregating)和传输(moving)的机制 Flume本身提供了简单且灵活的结构来完成日志数据的传输 Flume有两大版本#x…Flume1.11.0版本 简介 概述 Flume本身是由Cloudera公司开发的后来贡献给了Apache的一套针对日志数据进行收集(collecting)、汇聚(aggregating)和传输(moving)的机制 Flume本身提供了简单且灵活的结构来完成日志数据的传输 Flume有两大版本 Flume0.X又称之为Flume-og依赖于Zookeeper部署需要提供的格式文件相对复杂所以现在市面上已经不使用了Flume1.X又称之为Flume-ng不依赖于Zookeeper部署需要提供的格式文件结构明确且简单所以是现在流通的版本 基本概念 Event Flume会将收集到的每一条日志封装成一个Event Event本质上就是一个json串即Flume会将收集到的日志封装成json的形式Event中固定的包含两部分headers和body {headers:{},body:}AgentFlume流动模型的基本组成结构至少包含3部分 Source从数据源采集数据 - collectingChannel临时存储数据 - aggregatingSink将数据写出到目的地 - moving 流动模型 单级流动 多级流动又称之为串联流动 扇入流动又称之为并联流动、聚集流动 扇出流动又称之为复用流动 复杂流动按照需求将多个流动进行组合那么就是复杂流动 参数解释 参数解释--name或者-n指定要运行的agent的名字--conf或者-cFlume的原生配置--conf-file或者-f执行的文件-D指定运行其他的参数flume.root.logger指定日志的打印级别级别分为INFOWARN和ERROR可以指定打印位置console和logfile Source NetCat TCP Source Netcat TCP Source监听TCP请求在使用的时候需要监听指定的主机和端口从这个指定主机的指定端口来接收TCP请求并且将TCP请求内容作为日志来进行收集 默认情况下每一条数据大小不能超过512B可以通过参数max-line-length来修改 在Flume中所有的流动模型不是通过代码来指定而是通过格式文件来配置所以实际过程中往往会要求格式文件存放在统一的位置上。上课过程中统一要求将格式文件放到/opt/software/flume-1.11.0/data下 cd /opt/software/flume-1.11.0/ mkdir data cd data编辑格式文件文件名和后缀名可以自己定义 properties文件的 key value 格式配置在vim会有颜色上的区分便于阅读。 vim basic.propertie在文件中添加 # 给Agent起名 a1就是这个agent的名字 # 给Source起名 # 如果有多个Source那么名字之间用空格隔开 a1.sources s1 # 给Channel起名 a1.channels c1 # 给Sink起名 a1.sinks k1# 配置Source a1.sources.s1.type netcat a1.sources.s1.bind 0.0.0.0 a1.sources.s1.port 8090# 配置Channel a1.channels.c1.type memory a1.channels.c1.capacity 1000 a1.channels.c1.transactionCapacity 1000# 配置Sink a1.sinks.k1.type logger# 将Source和Channel绑定 a1.sources.s1.channels c1 # 将Sink和Channel绑定 a1.sinks.k1.channel c1执行 flume-ng agent --name a1 --conf $FLUME_HOME/conf --conf-file basic.properties -Dflume.root.loggerINFO,console复制窗口之后发送TCP请求 nc hadoop01 8090Exec Source Exec Source运行指定命令监听命令结果将命令结果作为日志进行收集 案例监听指定文件如果文件中新添了数据那么自动收集这个文件中的数据 构建空文件 touch /opt/software/flume-1.11.0/data/a.txt监听这个文件如果这个文件中新添了数据自动收集数据作为日志 vim execsource.properties在文件中添加 a1.sources s1 a1.channels c1 a1.sinks k1# 配置Exec Source # Source的类型 a1.sources.s1.type exec # 监听指定的命令 a1.sources.s1.command tail -F /opt/software/flume-1.11.0/data/a.txt # 指定命令的脚本类型 a1.sources.s1.shell /bin/sh -ca1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1执行命令 flume-ng agent -n a1 -c $FLUME_HOME/conf -f execsource.properties -Dflume.root.loggerINFO,console在新窗口中追加数据 echo testing /opt/software/flume-1.11.0/data/a.txt echo exec /opt/software/flume-1.11.0/data/a.txtAVRO Source AVRO Source接收被AVRO序列化之后的数据结合AVRO Sink可以实现复杂的流动模型 案例 编辑文件 cd /opt/software/flume-1.11.0/data/ vim avrosource.properties 在文件中添加 a1.sources s1 a1.channels c1 a1.sinks k1# 配置AVRO Source # 类型必须是avro a1.sources.s1.type avro # 监听的主机 a1.sources.s1.bind 0.0.0.0 # 监听的端口号 a1.sources.s1.port 6666a1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1启动 flume-ng agent -n a1 -c $FLUME_HOME/conf -f avrosource.properties -Dflume.root.loggerINFO,console在新窗口中启动AVRO客户端 flume-ng avro-client -H hadoop01 -p 6666 -F a.txtSpooling Directory Source 监听指定的目录如果目录中产生了新的文件那么自动的将新文件中的内容收集起来 默认情况下这个文件如果被收集了那么文件的后缀就是.COMPLETED 案例 创建目录 mkdir /opt/flume_data编辑文件 vim spooldirsource.properties在文件中添加 a1.sources s1 a1.channels c1 a1.sinks k1# 配置Spooling Directory Source # 类型必须是spooldir a1.sources.s1.type spooldir # 监听的目录 a1.sources.s1.spoolDir /opt/flume_data # 被收集过的文件后缀 # 利用这条规则可以过滤掉一部分不需要收集的文件 a1.sources.s1.fileSuffix .finisheda1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1执行 flume-ng agent -n a1 -c $FLUME_HOME/conf -f spooldirsource.properties -Dflume.root.loggerINFO,consoleTaildir Source 可以用于监听一个或者一组文件如果被监听的文件中添加了新数据那么新添的数据会被自动收集 Exec Source需要通过指定tail -F命令才能监听指定文件Spooling Directory Source监听指定的目录并不能确定文件中是否新添了数据 不同于Exec Source的地方在于Taildir Source不需要指定命令还可以监控一类文件且Taildir Source通过记录偏移量实现断点续传效果 偏移量通过属性positionFile来决定默认是~/.flume/taildir_position.json 需要注意的是Taildir Source不支持在Windows中使用 案例监听flume_data目录下所有的log和txt文件如果文件被添加新数据那么自动收集 编辑文件 vim taildirsource.properties在文件中添加 a1.sources s1 a1.channels c1 a1.sinks k1# 配置Taildir Source # 类型必须是TAILDIR a1.sources.s1.type TAILDIR # 监听的一组文件的组名 a1.sources.s1.filegroups f1 f2 # 文件组中的要监听的文件 a1.sources.s1.filegroups.f1 /opt/flume_data/.*log.* a1.sources.s1.filegroups.f2 /opt/flume_data/.*txt.* # 偏移量的存储位置 a1.sources.s1.positionFile /opt/flume_data/taildir_position.jsona1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1执行 flume-ng agent -n a1 -c $FLUME_HOME/conf -f taildirsource.properties -Dflume.root.loggerINFO,consoleSequence Generator Source 序列产生器从0开始递增到totalEvents默认情况下totalEvents的值Long.MAX_VALUE 实际过程中会利用这个Source测试流动模型是否搭建成功 案例 a1.sources s1 a1.channels c1 a1.sinks k1# 配置Sequence Generator Source # 类型必须是seq a1.sources.s1.type seq # 最大值 a1.sources.s1.totalEvents 100a1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1HTTP Source 接收HTTP请求并且将请求内容作为日志进行收集 只能接收GET和POST请求其中GET请求接收只能用于实验实际过程中使用HTTP Source来接收POST请求 案例 在文件中添加 a1.sources s1 a1.channels c1 a1.sinks k1# 配置HTTP Source # 类型必须是http a1.sources.s1.type http # 监听端口 a1.sources.s1.port 8888a1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1启动Flume 发送POST请求 curl -X POST -d [{headers:{class:flume},body:welcome~~~}] http://hadoop01:8888Custom Source Flume支持用户自定义Source。Flume针对Source提供了顶级接口Source但是实际过程中并不是实现Source接口而是实现子接口之一 EventDrivenSource事件驱动Source本身是一个被动型Source需要自己定义线程来获取数据以及封装数据PollableSource拉取Source本身是一个主动型Source提供了线程来获取数据只需要考虑数据怎么封装即可 由于在自定义Source的时候还需要考虑获取格式文件中的参数值所以还需要实现Configurable接口实际过程中考虑到要覆盖的方法比较多所以继承AbstractSource pom依赖 !--Flume核心包-- dependencygroupIdorg.apache.flume/groupIdartifactIdflume-ng-core/artifactIdversion1.11.0/version /dependency !--Flume开发包-- dependencygroupIdorg.apache.flume/groupIdartifactIdflume-ng-sdk/artifactIdversion1.11.0/version /dependency !--Flume配置包-- dependencygroupIdorg.apache.flume/groupIdartifactIdflume-ng-configuration/artifactIdversion1.11.0/version /dependency自定义EventDrivenSource 代码 import org.apache.flume.Context; import org.apache.flume.Event; import org.apache.flume.EventDrivenSource; import org.apache.flume.channel.ChannelProcessor; import org.apache.flume.conf.Configurable; import org.apache.flume.event.EventBuilder; import org.apache.flume.source.AbstractSource;import java.util.HashMap; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;// 自定义代码实现Sequence Generator Source加深理解 public class AuthDrivenSource extends AbstractSource implements EventDrivenSource, Configurable { private long start; private long end; private long step; private ExecutorService es;// 获取参数值 Override public void configure(Context context) {// 3 - 4// 获取起始值// 如果用户没有指定那么默认从0开始递增start context.getLong(start, 0L);// 获取结束值// 如果不指定递增到Long.MAX_VALUEend context.getLong(end, Long.MAX_VALUE);// 获取步长// 如果不指定那么默认每次递增1step context.getLong(step, 1L);// 保证数据的合理性if (start end || step 1)throw new IllegalArgumentException(); }// 启动Source Override public synchronized void start() {// 线程池中准备5个线程es Executors.newFixedThreadPool(5);// 获取ChannelProcessorChannelProcessor cp this.getChannelProcessor();// 提交任务es.submit(new Add(start, end, step, cp)); }// 结束Source Override public synchronized void stop() {if (es ! null) es.shutdown(); }}// 自增 class Add implements Runnable {private final long start; private final long end; private final long step; private final ChannelProcessor cp;public Add(long start, long end, long step, ChannelProcessor cp) {this.start start;this.end end;this.step step;this.cp cp; }Override public void run() {for (long i start; i end; i step) {// 封装headers// 在headers中记录了数据产生的时间MapString, String headers new HashMap();headers.put(time, String.valueOf(System.currentTimeMillis()));// 封装bodybyte[] body String.valueOf(i).getBytes();// 将数据封装成EventEvent e EventBuilder.withBody(body, headers);// 将Event传递给Channel来存储cp.processEvent(e);} } }将程序打成jar包要求是JDK1.8好多框架还不支持17版本上传到Flume安装目录的lib目录下 cd /opt/software/flume-1.11.0/lib/ rz回到格式文件目录下编辑文件 cd /opt/software/flume-1.11.0/data/ vim authdrivensource.properties在文件中添加 a1.sources s1 a1.channels c1 a1.sinks k1# 配置自定义EventDrivenSource # 类型必须是类的全路径名 a1.sources.s1.type com.fesco.source.AuthDrivenSource # 起始值 a1.sources.s1.start 10 # 结束值 a1.sources.s1.end 100 # 步长 a1.sources.s1.step 5a1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1启动Flume 自定义PollableSource 代码 import org.apache.flume.Context; import org.apache.flume.Event; import org.apache.flume.PollableSource; import org.apache.flume.channel.ChannelProcessor; import org.apache.flume.conf.Configurable; import org.apache.flume.event.EventBuilder; import org.apache.flume.source.AbstractSource;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class AuthPollableSource extends AbstractSource implements PollableSource, Configurable { private long min; private long max; private long step;// 获取配置 Override public void configure(Context context) {this.min context.getLong(min, 0L);this.max context.getLong(max, Long.MAX_VALUE);this.step context.getLong(step, 1L);if (min max || step 1)throw new IllegalArgumentException(); }// 封装数据写出数据 Override public Status process() {// 定义List来临时存储数据ListEvent events new ArrayList();// 获取ChannelProcessorChannelProcessor cp this.getChannelProcessor();for (long i min; i max; i step) {// 封装headersMapString, String headers new HashMap();headers.put(timestamp, String.valueOf(System.currentTimeMillis()));// 封装bodybyte[] body String.valueOf(i).getBytes();// 封装EventEvent e EventBuilder.withBody(body, headers);events.add(e);// 每50条数据写一次if (events.size() 50) {// 写出数据。这个方法一次写出多个cp.processEventBatch(events);// 清空集合events.clear();}}return Status.READY; }// PollableSource主动提供线程来获取数据 // 如果线程暂时没有获取到数据那么线程会临时休眠 // 这个方法就是控制线程的休眠时间单位是毫秒 Override public long getBackOffSleepIncrement() {return 1000; }Override public long getMaxBackOffSleepInterval() {return 10000; } }打成jar包上传到lib目录下 cd ../lib rz回到格式文件目录下编辑文件 cd ../data/ vim authpollablesource.properties在文件中添加 a1.sources s1 a1.channels c1 a1.sinks k1# 配置自定义PollableSource # 类型必须是类的全路径名 a1.sources.s1.type com.fesco.source.AuthPollableSource //注意自己的全类名 # 起始值 a1.sources.s1.min 10 # 结束值 a1.sources.s1.max 1000 # 步长 a1.sources.s1.step 5a1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1cd …/data/ vim authpollablesource.properties 在文件中添加properties a1.sources s1 a1.channels c1 a1.sinks k1# 配置自定义PollableSource # 类型必须是类的全路径名 a1.sources.s1.type com.fesco.source.AuthPollableSource //注意自己的全类名 # 起始值 a1.sources.s1.min 10 # 结束值 a1.sources.s1.max 1000 # 步长 a1.sources.s1.step 5a1.channels.c1.type memorya1.sinks.k1.type loggera1.sources.s1.channels c1 a1.sinks.k1.channel c1启动Flume

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站项目需求分析广州黄埔区做网站培训机构

MNN是一个高效、轻量的深度学习框架,它支持深度模型的推理与训练,尤其在端侧的推理与训练性能在业界处于领先地位。MNN已经在阿里巴巴的多个App中使用,覆盖多个场景,同时在IoT等场景下也有若干应用。它支持TensorFlow、Caffe、ONN…

鼠标放到一级导航时才显示网站二级导航 鼠标离开时不显示 怎么控制360浏览器怎么创建网页

FOFA网络空间搜索引擎使用教程 FOFA是白帽汇推出的一款网络空间搜索引擎,它通过进行网络空间测绘,能够帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。 官网:https:…

杭州pc手机网站建设wordpress优秀中文主题

获取需要的 RPM 包常用站点: http://mirrors.sohu.com http://rpmfind.net http://rpm.pbone.net/

网站后台功能开发免费素材库网站

一、接下来,我们来说这个“图形上下文栈” 1.我们还是把之前的copy这份儿代码复制一下,改个名字,叫做“02-图形上下文栈”, 好,我们把刚才那个圆形拿过来,那条线也拿过来,用CGContextAdd:这种方式, 把第一步,获取当前上下文,也拿过来,第三步,渲染,也拿过来, 打开…

莱州网站建设服务wordpress源码商城

最近换手机的时候一时冲动败了个32G的TF卡。买后又觉得手机存储空间还比较充裕,暂时用不上,便打算套个读卡器当U盘用。最开始我用的是以前买手机的时候送的一个读卡器,但其兼容性很差,在以前的那个8G的卡里还能勉强用用&#xff0…

佛山专业网站建设公司推荐海口网站自助建站

转自:http://www.cnblogs.com/ninghechuan/p/6172237.html 1、notepad与vivado关联 打开vivado软件,选择菜单栏“Tools——>Options…”,在弹出的对话框中,选择General选项卡,如图1所示。 拉动右边的滚动条到Text E…

纯文字排版设计网站蚌埠app制作公司

一、研究背景 随着经济的发展和金融市场的不断完善,股票投资成为了人们重要的投资方式之一。汽车行业作为国民经济的重要支柱产业,其上市公司的股票表现备受关注。Fama-French 三因子模型是一种广泛应用于股票市场的资产定价模型,它考虑了市场…

seo网站推广与优化方案山西房地产网站建设

文章目录 1. 准备数据1.1 配置超参数1.2 下载数据1.3 配置数据 2. 创建模型2.1 定义鉴别器2.2 定义生成器 3. 训练模型3.1 创建实例3.2 开始训练3.3 保存模型 4. 什么是GAN(对抗生成网络)? 🍨 本文为🔗365天深度学习训练营 中的学…

手机创建网站网络教学平台

ODOO17作为ERP软件,其核心优势在于数据安全。凭借强大的原生安全机制及灵活的配置,确保数据安全无忧: ODOO17, as an ERP software, boasts its significant advantage in exceptional data security performance. It effectively ensures wo…

网站建设技术要求公司网站免费建设

vue指令-插值表达式 1、什么是插值表达式2、Vue变量声明在哪里 1、什么是插值表达式 双大括号&#xff0c;可以把vue数据变量直接显示在标签内 2、Vue变量声明在哪里 data函数返回对象上&#xff0c;用key属性声明 示例&#xff1a; <template><div id"app&…

会宁网站建设公司哪些因素营销网站权重

六 分布式流量防护 1 认识分布式流量防护 在分布式系统中&#xff0c;服务之间的相互调用会生成分布式流量。如何通过组件进行流量防护&#xff0c;并有效控制流量&#xff0c;是分布式系统的技术挑战之一。 什么是服务雪崩 假设我有一个微服务系统&#xff0c;这个系统内包…

怎么做投票管理系统后台网站松江区做网站

长期维护windows服务器终结出来的安全设置批处理与大家分享&#xff0c;复制以下全部内容用记事本另存为bat或者cmd执行分隔符号echo. echo ------------------------------------------------------ echo. echo ........... echo. net share c$ /delete net share d$ /delete …

大气的金融网站免费ppt模板之家

目录 一、下载nacos并运行 1.1、创建9001微服务作为提供者 1.2、创建80微服务作为消费者 二、naocs配置中心规则与动态刷新 2.1、创建3377微服务 2.2、在nacos中创建配置文件 三、nacos数据模型之Namespace-Group-Datald 3.1、DatalD方案 3.2、Group方案 3.3、Name…

房山重庆网站建设o2o网站做推广公司

这篇文章介绍下BASH shell中的字符串处理的相关命令。之前有介绍过shell的其它命令&#xff0c;请参考&#xff1a; BASH shell脚本篇1——基本命令 BASH shell脚本篇2——条件命令 Bash字符串也是一种数据类型&#xff0c;它用于表示文本而不是数字&#xff0c;它是一组可能…

pc端宣传网站开发做+淘宝客最大的网站是叫什么

阅读推荐程序员跳槽时机已到&#xff0c;闲聊中面试官无意泄题SpringBoot作为日常开发利器&#xff0c;开箱即用&#xff0c;大量的star等已经成为节省开发的重要框架之一&#xff0c;但是各个框架的star中引入的日志框架却不尽相同&#xff0c;有的是log4j&#xff0c;有的是s…

企业网站建设板块茂名网站开发公司

条件(Conditionals) 条件&#xff1a; 条件提供了语言的流控制&#xff0c;否则就是纯粹的静态语言。提供的条件有导入、混入、函数以及更多。下面的例子纯粹示例&#xff0c;并不是使用建议 if / else if / else 这没什么好说的&#xff0c;跟一般的语言一致&#xff0c;i…

营销网站建设佛山专业做淘宝网站

文章目录 首先是主线程 其次是一个程序 通过一个QThread来放入程序 进阶一点: 手动开启关闭线程俩个线程 其实QT中的thread(线程)是很容易的 首先是主线程 #include "mainwindow.h" #include "ui_mainwindow.h"#include <QDebug>MainWindow::MainWin…

网站建设 说明网站制作案例

学习一款软件&#xff0c;我个人建议是先学习怎么用&#xff0c;然后是学习怎么用的好&#xff0c;再研究源码。 上一篇文章详细描述了我们该如何安装虚幻5引擎&#xff1a; UnrealEngine学习(01)&#xff1a;安装虚幻引擎https://blog.csdn.net/zuodingquan666/article/deta…

找网络公司建网站的流程沈阳定制型网站建设

微信公众号&#xff1a;趣编程ACE关注可了解更多的.NET日常实战开发技巧&#xff0c;如需源码 请公众号后台留言 源码;[如果觉得本公众号对您有帮助&#xff0c;欢迎关注].Net6下集成微服务网关-Ocelot网关常见功能1&#xff1a;路由 routing2: 请求聚合3&#xff1a;身份验证和…

cms网站开发涉及的知识中国建筑app下载

简介&#xff1a;从汽车行业的变化&#xff0c;我们即可初步看出芯片的重要性&#xff0c;那么&#xff0c;芯片对汽车行业的发展具体有哪些重要影响呢&#xff1f; 根据全球汽车咨询机构Auto Forecast Solutions统计的数据&#xff0c;截至10月10日&#xff0c;由于芯片短缺&…