Kafka

在线推理和在线学习,从两大层级看实时机器学习的应用现状

大憨熊 提交于 2021-01-08 16:58:24
实时机器学习正得到越来越广泛的应用和部署。近日,计算机科学家和 AI 领域科技作家 Chip Huyen 在其博客中总结了实时机器学习的概念及其应用现状,并对比了实时机器学习在中美两国的不同发展现状。 选自 http:// huyenchip.com ,作者:Chip Huyen,机器之心编译,编辑:Panda。 与美国、欧洲和中国一些大型互联网公司的机器学习和基础设施工程师聊过之后,我发现这些公司可以分为两大类。一类公司重视实时机器学习的基础设施投资(数亿美元),并且已经看到了投资回报。另一类公司则还在考虑实时机器学习是否有价值。 对于实时机器学习的含义,现在似乎还没有明确的共识,而且也还没有人深入探讨过产业界该如何做实时机器学习。我与数十家在做实时机器学习的公司聊过之后,总结整理了这篇文章。 本文将实时机器学习分为两个层级: 层级 1:机器学习系统能实时给出预测结果(在线预测) 层级 2:机器学习系统能实时整合新数据并更新模型(在线学习) 本文中的「模型」指机器学习模型,「系统」指围绕模型的基础设施,包括数据管道和监测系统。 层级 1:在线预测 这里「实时」的定义是指毫秒到秒级。 用例 延迟很重要,对于面向用户的应用而言尤其重要。2009 年,谷歌的实验表明:如果将网络搜索的延迟从 100 ms 延长至 400 ms,则平均每用户的日搜索量会降低 0.2%-0.6%。2019

kafka是什么?对kafka你了解有多少?【云图智联】

佐手、 提交于 2021-01-08 11:41:35
Kafka是由 Apache软件基金会 开发的一个开源流处理平台,由 Scala和Java编写, 它是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据, 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决, 对于像 Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案,Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。 随着公司从不同来源(例如网站,用户交互,金融交易)向各种目标系统(例如数据库,分析,电子邮件系统)提供越来越多的数据,开发人员必须为每个系统编写集成,我们一起看看你 kafka的基础架构及基本概念 : 如果看到这张图不要懵逼!咱们细细品 Producer : Producer即生产者,消息的产生者,是消息的入口。 Broker : Broker是kafka实例,每个服务器上有一个或多个kafka的实例,我们姑且认为每个broker对应一台服务器。每个kafka集群内的broker都有一个 不重复的编号,如图中的 broker-0、broker-1等…… Topic :消息的主题,可以理解为消息的分类, kafka的数据就保存在topic

kafka学习(四)kafka安装与命令行调用

大城市里の小女人 提交于 2021-01-07 08:05:14
一、 安装JDK    过程就不过多介绍了... 二、 安装Zookeeper    安装过程可以参考 此处~ 三、 安装并配置kafka Kafka下载地址 http://kafka.apache.org/downloads 解压文件(我的目录是E:\zhanghaoBF\kafka\kafka_2.11-2.3.0 【PS: 这里不要在Program Files等文件名之间有空格的目录下,不然一会执行会不识别路径 】 ) 打开目录E:\zhanghaoBF\kafka\kafka_2.11-2.3.0\config下server.properties文件,把log.dirs修改为【log.dirs=D:\kafka_2.12-0.11.0.0\kafka-logs】,把listeners的配置放开 四、 启动并测试kafka 启动ZK 启动kafka     进入kafka文件目录E:\zhanghaoBF\kafka\kafka_2.11-2.3.0,执行以下命令,启动kafka通讯的服务器broker .\bin\windows\kafka-server-start.bat .\config\server.properties 创建topic    进入kafka文件目录E:\zhanghaoBF\kafka\kafka_2.11-2.3.0,输入以下命令

Kafka安装之二 在CentOS 7上安装Kafka

落花浮王杯 提交于 2021-01-07 08:04:44
一、简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息.Kafka 支持Java 及多种其它语言客户端,可与Hadoop、Storm、Spark等其它大数据工具结合使用。 二、系统环境 1、操作系统:64位 CentOS 7 2、jdk版本:1.8.0 3、zookeeper版本:zookeeper-3.4.10.tar.gz 4、三台服务器:192.168.1.91; 192.168.1.92; 192.168.1.93; 三、下载安装Kafka 进入 kafka 官方网站下载kafka 地址: https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.0/kafka-1.1.0-src.tgz

kafka消息丢失

末鹿安然 提交于 2021-01-06 11:31:20
在处理生产环境问题的过程中发现12号那天某kafka集群有少量的数据丢失,概率大致在千万分之三。 数据写入kafka之后,就完全消失了,消费者完全没有消费到这个数据。 通过找到那天的数据,查看有问题的数据在写入kafka的时候上下文应用日志发现有少量以下报错: [2019-10-12 11:03:43,xxx] This is not the correct coordinator. 理论上正常情况下kafka是不太可能丢数据的,如果出现这种情况,必然是开发人员或者硬件引发了什么问题,因为写入日志是有的,看了下应用配置 acks=1 马上意识到,问题突破口应该在这里。 acks=0 生产者能够通过网络吧消息发送出去,那么就认为消息已成功写入Kafka,一定会丢失一些数据 acks=1 master在疏导消息并把它写到分区数据问津是会返回确认或者错误响应,还是可能会丢数据 acks=all master在返回确认或错误响应之前,会等待所有同步副本都收到消息 可能以前是为了保证性能够快,选择了折中的应用配置 acks=1 。 马上想到去看下kafka的日志,猜测这个时间段必然出现出现了 master 不可用的情况才会导致数据丢失。 在kafka集群的57号节点的机器上看到这样一段日志: [2019-10-12 11:03:39,427] WARN Client session

如何保证kafka消息不丢失

这一生的挚爱 提交于 2021-01-06 10:45:31
背景 这里的kafka值得是broker,broker消息丢失的边界需要对齐一下: 1 已经提交的消息 2 有限度的持久化 如果消息没提交成功,并不是broke丢失了消息; 有限度的持久化(broker可用) 生产者丢失消息 producer.send(Object msg) ; 这个发送消息的方式是异步的;fire and forget,发送而不管结果如何; 失败的原因可能有很多,比如网络抖动,发送消息超出大小限制; 怎么破呢?永远使用带有返回值值的消息发送方式,即 producer.send(msg,callback) 通过callback可以准确的告诉你消息是否发送成功了,发送失败了你也可以有处置方法; 网络抖动: 重发 发送消息超出大小:调整消息大小进行发送 这种情况并不是broker丢失消息了,是producer的消息没有提交成功。 消费者丢失消息 kafka消费消息的模型: 即消费消息,设置好offset,类比一下: 说明时候消费者丢失数据呢?即先更新位移,再消费消息,如果消费程序出现故障,没消费完毕,则丢失了消息,此时,broker并不知道。 怎么破?总是先消费消息,再更新位移;这种可能带来消息重复消费的问题,但是不会出现消息丢失问题; 多线程消费丢失消息 即开启了位移自动提交,多线程处理的时候,如果有一个线程出现问题,但是还是提交了位移,会发生消息丢失。 怎么破?

基于 Flink 和 Drools 的实时日志处理

别等时光非礼了梦想. 提交于 2021-01-06 09:47:27
背景 日志系统接入的日志种类多、格式复杂多样,主流的有以下几种日志: filebeat采集到的文本日志,格式多样 winbeat采集到的操作系统日志 设备上报到logstash的syslog日志 接入到kafka的业务日志 以上通过各种渠道接入的日志,存在2个主要的问题: 格式不统一、不规范、标准化不够 如何从各类日志中提取出用户关心的指标,挖掘更多的业务价值 为了解决上面2个问题,我们基于flink和drools规则引擎做了实时的日志处理服务。 系统架构 架构比较简单,架构图如下: 各类日志都是通过kafka汇总,做日志中转。 flink消费kafka的数据,同时通过API调用拉取drools规则引擎,对日志做解析处理后,将解析后的数据存储到Elasticsearch中,用于日志的搜索和分析等业务。 为了监控日志解析的实时状态,flink会将日志处理的统计数据,如每分钟处理的日志量,每种日志从各个机器IP来的日志量写到Redis中,用于监控统计。 模块介绍 系统项目命名为eagle。 eagle-api:基于springboot,作为drools规则引擎的写入和读取API服务。 eagle-common:通用类模块。 eagle-log:基于flink的日志处理服务。 重点讲一下eagle-log: 对接kafka、ES和Redis 对接kafka和ES都比较简单

Atlas 介绍

≯℡__Kan透↙ 提交于 2021-01-06 09:24:46
一、Atlas是什么? 在当今大数据的应用越来越广泛的情况下,数据治理一直是企业面临的巨大问题。 大部分公司只是单纯的对数据进行了处理,而数据的血缘,分类等等却很难实现,市场上也急需要一个专注于数据治理的技术框架,这时Atlas应运而生。 Atlas官网地址: https://atlas.apache.org/ Atlas是Hadoop的数据治理和元数据框架。 Atlas是一组可扩展和可扩展的核心基础治理服务,使企业能够有效,高效地满足Hadoop中的合规性要求,并允许与整个企业数据生态系统集成。 Apache Atlas为组织提供了开放的元数据管理和治理功能,以建立其数据资产的目录,对这些资产进行分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的协作功能。 Atlas支持各种Hadoop和非Hadoop元数据类型 提供了丰富的REST API进行集成 对数据血缘的追溯达到了字段级别,这种技术还没有其实类似框架可以实现 对权限也有很好的控制 ​ 二、架构原理 Atlas包括以下组件: 采用Hbase存储元数据 采用Solr实现索引 Ingest/Export 采集导出组件 Type System类型系统 Graph Engine图形引擎 共同构成Atlas的核心机制 所有功能通过API向用户提供,也可以通过Kafka消息系统进行集成

阿里云 MaxCompute 2020-12 月刊

↘锁芯ラ 提交于 2021-01-06 09:10:44
【12月新发布功能】 1、MaxCompute 查询编辑器支持查询加速提升数据分析能力 MaxCompute 数据分析支持查询加速,当分析师通过SQL查询数据时,速度可提升至秒级,为数据分析师提供更优的数据分析体验。 适用客户及场景 数据分析师,尤其适用于数据分析师对离线数仓的数据进行取数,再通过Excel进行二次分析的场景。 发布功能 MaxCompute 数据分析查询模式支持 MaxCompute 查询加速,对于中、小数据量查询作业将执行时间从分钟级缩减至秒级。 通过 MaxCompute 查询编辑器发起查询 SQL 会优先通过查询加速进行查询,若满足则秒级返回结果,若不满足查询加速条件,则会回退离线查询,保障查询作业正常执行。 结合查询编辑器丰富的web-excel分析功能,数据分析师可通过MaxCompute数据分析快速的进行一站式数据查询、结果二次分析及结果分享。 MaxCompute查询加速功能当前支持按量计费资源,若您的项目使用包年包月资源,暂时还无法满足查询加速。 查看文档 >> 2、MaxCompute 流式数据写入服务(Streaming Tunnel)公测发布 MaxCompute Streaming Tunnel 服务,支持 API 方式实现流式数据无感知高 QPS 写入 MaxCompute。 适用客户 有实时计算Flink、数据通道DataHub

详解:同步架构和异步架构的区别及消息队列

杀马特。学长 韩版系。学妹 提交于 2021-01-06 07:27:59
分布式消息队列是是大型分布式系统不可缺少的中间件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。 对于一个架构师来说,在大型系统设计中,会经常需要面对同步和异步等架构问题,搞明白这些问题,能更好地实现程序并行执行,减少等待或无效操作,以及充分利用计算机的性能! 本文将详细讲解: 1.同步架构和异步架构的区别 2.异步架构的主要组成部分:消息生产者、消息消费者、分布式消息队列 3.异步架构的两种主要模型:点对点模型和发布订阅模型。 4. 消息队列的好处 5.消息队列相关产品 建议用10min通读,搞懂分布式消息队列的核心内容。 一、同步架构和异步架构的区别 1. 同步调用 是指从请求的发起一直到最终的处理完成期间,请求的调用方一直在同步阻塞等待调用的处理完成。 如图,在这个例子中客户端代码ClientCode,需要执行发送邮件sendEmail这样一个操作,它会调用EmailService进行发送,而EmailService会调用SmtpEmailAdapter这样一个类来进行处理,而这个类会调用远程的一个服务,通过SMTP和TCP协议把请求发送给它。 而远程服务器收到消息以后会对消息进行一系列的操作,然后将邮件发送出去,再进行返回。Adapter收到返回后,再返回给EmailService