首页 文章 精选 留言 我的

精选列表

搜索[布隆过滤器],共6707篇文章
优秀的个人博客,低调大师

Apache Flume之正则过滤器

在当今的大数据世界中,应用程序产生大量的电子数据 – 这些巨大的电子数据存储库包含了有价值的、宝贵的信息。 对于人类分析师或领域专家,很难做出有趣的发现或寻找可以帮助决策过程的模式。 我们需要自动化的流程来有效地利用庞大的,信息丰富的数据进行规划和投资决策。 在处理数据之前,收集数据,聚合和转换数据是绝对必要的,并最终将数据移动到那些使用不同分析和数据挖掘工具的存储库中。 执行所有这些步骤的流行工具之一是Apache Flume。 这些数据通常是以事件或日志的形式存储。 Apache Flume有三个主要组件: Source:数据源可以是企业服务器,文件系统,云端,数据存储库等。 Sink:Sink是可以存储数据的目标存储库。 它可以是一个集中的地方,如HDFS,像Apache Spark这样的处理引擎,或像ElasticSearch这样的数据存储库/搜索引擎。 Channel:在事件被sink消耗前由Channel 存储。 Channel 是被动存储。 Channel 支持故障恢复和高可靠性; Channel 示例是由本地文件系统和基于内存的Channel 支持的文件通道。 Flume是高度可配置的,并且支持许多源,channel,serializer和sink。它还支持数据流。 Flume的强大功能是拦截器,支持在运行中修改/删除事件的功能。支持的拦截器之一是regex_filter。 regex_filter将事件体解释为文本,并将其与提供的正则表达式进行对比,并基于匹配的模式和表达式,包括或排除事件。我们将详细看看regex_filter。 要求 从数据源中,我们以街道号,名称,城市和角色的形式获取数据。现在,数据源可能是实时流数据,也可能是任何其他来源。在本示例中,我已经使用Netcat服务作为侦听给定端口的源,并将每行文本转换为事件。要求以文本格式将数据保存到HDFS中。在将数据保存到HDFS之前,必须根据角色对数据进行过滤。只有经理的记录需要存储在HDFS中;其他角色的数据必须被忽略。例如,允许以下数据: 1,alok,mumbai,manager 2,jatin,chennai,manager 下列的数据是不被允许的: 3,yogesh,kolkata,developer 5,jyotsana,pune,developer 如何达到这个要求 可以通过使用 regex_filter 拦截器来实现。这个拦截器将根据规则基础来进行事件过滤,只有感兴趣的事件才会发送到对应的槽中,同时忽略其他的事件。 ##Describeregex_filterinterceptorandconfigureexcludeeventsattribute a1.sources.r1.interceptors=i1 a1.sources.r1.interceptors.i1.type=regex_filter a1.sources.r1.interceptors.i1.regex=developer a1.sources.r1.interceptors.i1.excludeEvents=true HDFS 槽允许数据存储在 HDFS 中,使用文本/序列格式。也可以使用压缩格式存储。 a1.channels=c1 a1.sinks=k1 a1.sinks.k1.type=hdfs a1.sinks.k1.channel=c1 ##assumptionisthatHadoopisCDH a1.sinks.k1.hdfs.path=hdfs://quickstart.cloudera:8020/user/hive/warehouse/managers a1.sinks.k1.hdfs.fileType=DataStream a1.sinks.k1.hdfs.writeFormat=Text 如何运行示例 首先,你需要 Hadoop 来让示例作为 HDFS 的槽来运行。如果你没有一个 Hadoop 集群,可以将槽改为日志,然后只需要启动 Flume。 在某个目录下存储 regex_filter_flume_conf.conf 文件然后使用如下命令运行代理。 flume-ngagent--confconf--conf-fileregex_filter_flume_conf.conf--namea1-Dflume.root.logger=INFO,console 注意代理名称是 a1。我用了 Netcat 这个源。 a1.sources.r1.type=netcat a1.sources.r1.bind=localhost a1.sources.r1.port=44444 一旦 Flume 代理启动,运行下面命令用来发送事件给 Flume。 telnetlocalhost40000 现在我们只需要提供如下输入文本: 1,alok,mumbai,manager 2,jatin,chennai,manager 3,yogesh,kolkata,developer 4,ragini,delhi,manager 5,jyotsana,pune,developer 6,valmiki,banglore,manager 访问 HDFS 你会观察到 HDFS 在 hdfs://quickstart.cloudera:8020/user/hive/warehouse/managers 下创建了一个文件,文件只包含经理的数据。 完整的 flume 配置 — regex_filter_flume_conf.conf — 如下: #Namethecomponentsonthisagent a1.sources=r1 a1.sinks=k1 a1.channels=c1 #Describe/configurethesource-netcat a1.sources.r1.type=netcat a1.sources.r1.bind=localhost a1.sources.r1.port=44444 #DescribetheHDFSsink a1.channels=c1 a1.sinks=k1 a1.sinks.k1.type=hdfs a1.sinks.k1.channel=c1 a1.sinks.k1.hdfs.path=hdfs://quickstart.cloudera:8020/user/hive/warehouse/managers a1.sinks.k1.hdfs.fileType=DataStream a1.sinks.k1.hdfs.writeFormat=Text ##Describeregex_filterinterceptorandconfigureexcludeeventsattribute a1.sources.r1.interceptors=i1 a1.sources.r1.interceptors.i1.type=regex_filter a1.sources.r1.interceptors.i1.regex=developer a1.sources.r1.interceptors.i1.excludeEvents=true #Useachannelwhichbufferseventsinmemory a1.channels.c1.type=memory a1.channels.c1.capacity=1000 a1.channels.c1.transactionCapacity=100 #Bindthesourceandsinktothechannel a1.sources.r1.channels=c1 a1.sinks.k1.channel=c1 本文作者:佚名 来源:51CTO

优秀的个人博客,低调大师

NJet 3.1发布!

NGINX 向云原生演进,All inOpenNJet NJet3.1在9.26号正式发布了,不同于前期的版本,这个版本中很多关键特性来源于中金金融、京东、巨硬科技的贡献,是真正的社区协作结果。 在该版本中,NJet继续在新协议支持上发力,一是继续加强HTTP3, 来自于京东的贡献实现了HTTP3代理,HTTP2代理以及HTTP3和HTTP1、HTTP2的互操作性,客户端可以发送HTTP1、2、3,经NJet转换后,可以访问后端的HTTP1、2、3服务。这意味着,服务端不需要改变,就可以适应 client发起的HTTP3请求,从而更好的支持移动互联网业务。据通名智云的调研,目前仅仅在一些特定版本的商业版(envoy提供了验证性支持,见附1,haproxy在商业版本中才有提供,见附2)提供了纯粹的HTTP3 proxy能力,互操作性基本没有。 对HTTP3的增强还来自于中金金融对HTTP3国密双证书的支持。按照国密规范,server和client交互会采用签名加密双证书。这个规范在基于TLS1.1、1.2标准的HTTP1.x,或TLS stream上都得到了落地。但当来到HTTP1.3时,由于采用了QUIC传输+TLS1.3, 国家还没有一个标准出台。我们在前面版本中,尝试遵循RFC9898,采用单证书模式,尝试了HTTP3国密的一种模式;但我们认为双证书才是HTTP3国密应该采用的标准。感谢中金金融贡献的代码,完整实现了HTTP3上的双证书模型。当然,由于标准尚未出台,目前缺乏浏览器或其他客户端,这也是OpenNJet在后续的发力点。 此外,巨硬科技贡献了MQTT proxy能力。该代理不是简单的4层转发,除了可以根据MQTT的属性做路由选择外。还实现了broker切换client无感知,即即使后端broker故障,NJet重新选择了broker,但client到NJet的长连接依然得到保持。 根据规划,NJet会在release3及以后的版本上,逐渐落地云服务领域的应用服务器。在3.1这个release中,巨硬科技依托NJet前期发布的JIT框架,贡献了通用server框架及通用proxy框架,并用websocket协议做了验证,推出了基于TCC脚本编写的websocket服务器,既实现了和c语言编写的模块的一致高性能,又实现了按需定制的灵活性。这套框架,搭配上对grpc/dubbo协议解析的支持,就可以实现利用脚本语言编写微服务的能力。最关键的是,由于复用了NJet的底层网络、事件处理能力,应用开发者可以规避线程、异步编程、网络处理等挑战,仅仅编写业务函数就可以实现集群ready,按需扩展的超高性能应用服务器。 除基于JIT的TCC脚本支持外,NJet在这次发布中,还包括了标准的python WSGI应用服务器。之所以选择python语言,因为根据调查,python技术栈中,web应用服务器性能都不高(NJet对比了常见的开源web服务器,如gunicorn, uWSGI, NJet是其5倍以上)。相比其他的实现,NJet实现的WSGI服务器,依然依托于底层的事件处理模型,单进程支持并发请求。并且最关键的是,业务代码无需变更,可以直接利用上单进程多业务并行。 此外本版本中,还极大满足了企业部署的要求:实现了微服务注册中心的集成,从而使NJet可以成为外部访问微服务的标准网关;增强了集群配额对websocket/webrtc等长链接协议的支持;提供集群规模的token服务来保持集群配置的一致性。 NJet应用引擎通过内核重构实现了独特的运行时动态配置加载能力,是新一代高性能 Web 应用引擎。NJet 拥有高性能数据面处理能力,将集群、高可用、主动健康检查、声明式 API 等多种辅助功能,通过 NJet 独特的副驾驶 CoPilot 服务框架调度,从而方便功能扩展,隔离管理 / 控制功能对数据面的影响,NJet 应用引擎性能超过 CNCF 推荐 Envoy 应用引擎的三倍。邮件组官网

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册