2019-12-27 11:41:11 AD_plus 阅读数 17
  • 大数据硬实战之kafka视频教程

    大数据硬实战之kafka视频培训教程:本课程将从实战出发,讲解kafka原理以及在大数据中的应用场景的,是目前市面上少有的kafka实战教程,包括Kafka介绍、性能测试、数据、消息。

    2471 人正在学习 去看看 肖滨

在优锐课的java学习分享中,这篇文章探讨了构建ML基础结构的特定部分:在Kafka应用程序中部署分析模型以进行实时预测。

Apache Kafka与机器学习(ML)之间的关系是一个有趣的话题,我在如何使用Apache Kafka在生产中构建和部署可伸缩机器学习以及使用Apache Kafka推动尖端机器学习方面写了很多。

这篇文章介绍了构建机器学习基础架构的特定部分:在Kafka应用程序中部署分析模型以进行实时预测。

模型训练和模型部署可以是两个单独的过程。但是,你还可以使用许多相同的步骤进行集成和数据预处理,因为你经常需要对模型训练和模型推理执行相同的数据集成,过滤,扩充和聚合。

我们将讨论和比较两种不同的模型部署选项:具有远程过程调用(RPC)的模型服务器以及将模型本地嵌入到Kafka客户端应用程序中。我们的示例专门使用TensorFlow,但基本原理也适用于其他机器学习/深度学习框架或产品,例如H2O.ai,Deeplearning4j,Google的云机器学习引擎和SAS。

TensorFlow —一个用于机器学习/深度学习的开源库
TensorFlow是一个用于高性能数值计算的开源软件库。 其灵活的体系结构允许在从台式机到服务器集群到移动和边缘设备的各种平台(CPU,GPU,TPU等)上轻松部署计算。 它最初由Google的AI组织中的Google Brain团队的研究人员和工程师开发,为机器学习和深度学习提供了强大的支持,并在许多领域中得到使用。 TensorFlow是一个完整的生态系统,而不仅仅是一个组件。

鉴于此博文专注于模型服务,我们主要对SavedModel对象感兴趣,该对象存储了经过训练的模型,并且TensorFlow Serving作为模型服务器:

SavedModel本质上是一个二进制文件,已使用协议缓冲区(Protobuf)进行了序列化。 用C,Python,Java等生成的类可以加载,保存和访问数据。 文件格式是人类可读的TextFormat(.pbtxt)或压缩的二进制协议缓冲区(.pb)。 图对象是TensorFlow中计算的基础。 权重保存在单独的检查点文件中。

由于我们专注于TensorFlow模型的部署,因此预先训练模型的方式并不重要。 你可以利用Cloud ML Engine及其Google Cloud Platform(GCP)生态系统等云服务和集成管道,也可以构建自己的管道进行模型训练。 Kafka不仅可以在模型部署中发挥重要作用,而且在数据集成,预处理和监视中也可以发挥关键作用。

使用模型服务器和RPC进行流处理

模型服务器可以自我管理,也可以由分析供应商或云提供商托管。 模型服务器不仅为模型推理部署和缓存模型,而且还提供附加功能,例如版本控制或A / B测试。 从应用程序到模型服务器的通信通常是通过RPC通过HTTP或gRPC完成的。 对于每一个事件,Kafka应用程序与模型服务器之间都会进行这种请求-响应通信。

有许多型号服务器可用。 你可以从Seldon Server,PredictionIO和Hydrosphere.io等开源模型服务器中进行选择,也可以利用H2O.ai,DataRobot,IBM或SAS等分析供应商的模型服务器。

本文使用TensorFlow Serving,即TensorFlow的模型服务器。 它可以是自托管的,也可以使用Cloud ML Engine服务。 TensorFlow Serving具有以下特征:

包含gRPC和HTTP端点
执行模型版本控制而无需更改任何客户端代码
计划将单个推理请求分组为批,以便联合执行
优化推理时间以最小化延迟
支持许多可服务项(可服务项是模型或用于提供与模型一起提供的数据的任务):
TensorFlow模型
嵌入
词汇查询表
功能转换
非基于TensorFlow的模型
能够canarying和A / B测试的

以下是Kafka应用程序与模型服务器之间的通信方式:

The process for implementing a Kafka application is straightforward. 实施Kafka应用程序的过程非常简单。 以下是Kafka Streams应用程序和RPC到TensorFlow服务的代码段:

1.导入Kafka和TensorFlow服务API:
Java

import org.apache.kafka.common.serialization.Serdes;
import org.apache.kafka.streams.KafkaStreams;
import org.apache.kafka.streams.StreamsBuilder;
import org.apache.kafka.streams.StreamsConfig;
import org.apache.kafka.streams.kstream.KStream;
import com.github.megachucky.kafka.streams.machinelearning.TensorflowObjectRecogniser;

2.配置Kafka Streams应用程序:
Java

// Configure Kafka Streams Application
final String bootstrapServers = args.length > 0 ? args[0] : "localhost:9092";
final Properties streamsConfiguration = new Properties();
// Give the Streams application a unique name. The name must be unique
// in the Kafka cluster against which the application is run.
streamsConfiguration.put(StreamsConfig.APPLICATION_ID_CONFIG, "kafka-streams-tensorflow-serving-gRPC-example");
// Where to find Kafka broker(s).
streamsConfiguration.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);

3.执行RPC进行TensorFlow服务(如果RPC失败,则捕获异常)
Java

KStream<String, Object> transformedMessage = imageInputLines.mapValues(value -> {

            System.out.println("Image path: " + value);


            imagePath = value;


            TensorflowObjectRecogniser recogniser = new TensorflowObjectRecogniser(server, port);


            System.out.println("Image = " + imagePath);

            InputStream jpegStream;

            try {

                jpegStream = new FileInputStream(imagePath);

                

                // Prediction of the TensorFlow Image Recognition model:

                List<Map.Entry<String, Double>> list = recogniser.recognise(jpegStream);

                String prediction = list.toString();

                System.out.println("Prediction: " + prediction);

                recogniser.close();

                jpegStream.close();

   

                                 return prediction;

            } catch (Exception e) {

                e.printStackTrace();

      

                                 return Collections.emptyList().toString();

            }


        });

4.启动Kafka应用程序:
Java

// Start Kafka Streams Application to process new incoming images from the Input Topic
final KafkaStreams streams = new KafkaStreams(builder.build(), streamsConfiguration);
streams.start();

文章写到这里,下次再更新第二章节。

喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等
如果你对java技术很感兴趣也可以加入我的java学习群 V–(ddmsiqi)来交流学习,里面都是同行,验证【CSDN2】有资源共享。
不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代
在这里插入图片描述

2018-03-27 00:00:00 GV7lZB0y87u7C 阅读数 1828
  • 大数据硬实战之kafka视频教程

    大数据硬实战之kafka视频培训教程:本课程将从实战出发,讲解kafka原理以及在大数据中的应用场景的,是目前市面上少有的kafka实战教程,包括Kafka介绍、性能测试、数据、消息。

    2471 人正在学习 去看看 肖滨

生产环境中使用Apache Kafka的可扩展的机器学习

智能实时应用程序是任何行业的游戏规则改变者。机器学习及其子课题深度学习正在获得动力,因为机器学习使计算机能够在没有明确程序设计的情况下找到隐藏的见解。分析非结构化数据,图像识别,语音识别和智能决策需要此功能。这与使用Java,.NET或Python的传统编程有很大的不同。


虽然机器学习背后的概念并不新鲜,但大数据集和处理能力的可用性使得每个企业都可以构建强大的分析模型。任何行业都有大量的使用案例,通过在企业应用程序和微服务中应用分析模型来增加收入,降低成本或改善客户体验。


本文讨论关键任务实时应用程序中机器学习的潜在用例,利用Apache Kafka作为中央可扩展的关键任务神经系统以及Apache Kafka的Streams API构建智能流应用程序。


可扩展的关键任务实时应用程序

互联网,智能手机和永远在线思想的出现改变了人们今天的行为方式。这包括人们对设备,产品和服务如何与它们互动的期望:人们现在期望实时信息。企业面临的挑战是在太迟之前采取行动应对关键业务时刻。批处理已经不够了。你需要立即采取行动,甚至更好:积极主动。


传统企业可以为其日常业务实施非常强大的实时处理。通常情况下,需要了解该领域的知识,并构建新的流分析以增加业务价值。流处理用例存在于每个行业中,例如:

      .欺诈检测:将支付信息与其他历史数据或已知模式相关联,以在发生欺诈之前检测欺诈。这通常需要非常快速的处理,因为您在决定库存移动,共享信息或运送物品之前必须拒绝交易。

      .交叉销售:在客户离开商店之前,关联客户大数据以制定特定于上下文的个人定制优惠或折扣。您可以利用实时信息(如基于位置的数据,支付数据),还可以利用历史数据(如CRM或Loyalty平台的信息)为每位客户提供最佳报价。

      .预测性维护:关联机器大数据以预测故障发生之前。这允许在零件破裂之前更换零件。根据行业和用例,这可以节省大量资金(例如制造),增加收入(例如自动售货机)或增加客户体验(例如,电信网络故障预测)。


所有这些用例的关键在于您处理运行中的大数据。您需要处理事件才能采取行动。积极主动,不被动!在客户离开商店之前,您的系统应该在发生欺诈性交易之前做出决定,而不是在机器发生故障之前。


但这并不意味着您需要毫秒响应时间。在几种使用情况下,即使批处理事件也很好。例如,在大多数制造业或物联网(IoT)用例进行预测性维护时,您会监控几小时甚至几天的时间窗口,以检测基础设施或设备中的问题。一天或一周内更换有缺陷的部件就足够了。这是一个巨大的商业案例,并节省了大量资金,因为您可以检测问题并在问题发生之前解决问题,甚至还可以销毁环境中的其他部分。


利用机器学习的智能实时应用程序

如上所述的关键任务实时应用程序已经建造多年了 - 无需机器学习。为什么机器学习是游戏的改变者? 如果您了解机器学习及其子课题和深度学习,您经常会看到类似这样的例子:

      .图像识别。将图片上传到您的Facebook时间线上,并分析您的朋友,背景或手中的啤酒等物品。       .语音翻译。这使聊天机器人可以通过生成的文本或语音与人交流。       .类人的行为。 IBM Watson击败了最好的Jeopardy玩家; Google的AlphaGo击败了专业的Go玩家。


这些例子对希望建立创新型应用程序并与竞争对手脱颖而出的企业越来越相关。以同样的方式,您可以将机器学习应用于更多“传统方案”,如欺诈检测,交叉销售或预测性维护,以增强现有业务流程并制定更好的数据驱动决策。现有的业务流程可以保持原样。您只需通过分析模型替换更简单的定制代码业务逻辑和规则,以改进自动化决策。


以下部分将展示如何利用Apache Kafka作为流媒体平台,以可扩展的关键任务方式构建,操作和监控分析模型。


机器学习 - 部署分析模型的开发生命周期


我们首先考虑分析模型的开发生命周期:


1.构建:使用机器学习算法,如GLM,朴素贝叶斯,随机森林,梯度提升,神经网络或其他来分析历史数据以找到见解。 这一步包括收集,准备或数据转换等任务。

2.验证:使用交叉验证等技术来仔细检查构建的分析模型是否适用于新的输入数据。

3.操作:将构建的分析模型部署到生产环境中,以实时将其应用于新的传入事件。

4.监控:观察应用模型的结果。 这包含两部分:如果达到阈值(业务监控),发送警报。 确保准确性和其他指标足够好(分析模型监控)。

5.持续循环:通过连续执行上述所有步骤来改进分析模型。 这可以通过手动批处理模式(例如每周一次)或在线进行,其中模型针对每个传入事件进行更新。


整个项目团队必须从一开始就一起工作来讨论如下问题:


      .它如何在生产中执行? 

      .生产系统使用或支持哪些技术?

      .我们将如何监测模型推断和性能?

      .我们是否建立了覆盖整个生命周期的完整机器学习基础设施,或者使用现有的框架将模型训练与模型推断分开?

例如,一位数据科学家可以创建一个Python程序,创建一个精度很高的模型。 但是这并不能解决问题,因为您无法将其部署到生产环境中,因为它无法根据需要进行扩展或执行。


我怀疑你已经可以想象为什么Apache Kafka非常适合生产分析模型。 以下部分将解释Apache Kafka作为流平台与机器学习/深度学习框架(认为Apache Spark)结合使用来构建,操作和监控分析模型。


使用Apache Kafka进行机器学习的参考架构

在了解机器学习开发生命周期之后,让我们看看使用Kafka构建,操作和监控分析模型的参考架构:

这种体系结构的实质在于它使用Kafka作为收集特征数据的各种数据源,适合模型的模型构建环境以及服务于预测的生产应用程序之间的代理。


功能数据从托管它的各种应用程序和数据库中提取到Kafka中。这些数据用于构建模型。这种环境会根据团队的技能和首选工具集而变化。模型构建可以是数据仓库,Apache Spark或Hadoop等大数据环境,也可以是运行python脚本的简单服务器。可以发布该模型,其中获取相同模型参数的生产应用程序可将其应用于传入示例(可能使用Kafka Streams帮助索引要素数据以方便按需使用)。生产应用程序可以从Kafka接收数据作为管道,甚至可以是Kafka Streams应用程序本身。


Kafka成为ML架构中的中枢神经系统,用于喂养,构建,应用和监测分析模型。这确立了巨大的好处:

       .数据管道被简化

       .构建分析模块与提供服务分离

       .根据需要使用实时或批处理

       .分析模型可以部署在高性能,可扩展和关键任务环境中

除了利用Kafka作为可扩展的分布式消息代理外,您还可以添加Kafka生态系统的可选开源组件,如Kafka Connect,Kafka Streams,Confluent REST代理,Confluent模式注册或KSQL,而不是依赖Kafka Producer和Consumer APIs:


接下来的两节将介绍如何利用Kafka的Streams API轻松地将分析模型部署到生产环境。


机器学习开发生命周期示例

现在让我们深入一个围绕Kafka设计的ML架构的更具体的例子:

用绿色表示要构建和验证分析模型的组件。在橙色中,您会看到部署分析模型的流式处理平台,推断新事件和监控。


数据生产者不断发送消息。分析平台可以批量或实时接收这些数据。它使用机器学习算法来构建分析模型。分析模型被部署到流式传输平台。流式传输平台将分析模型应用于新事件以推断结果(即进行预测)。结果发送给数据使用者。


在这个例子中,我们将模型训练与模型推理分开,这是我在当今大多数机器学习项目中看到的典型设置:


模型训练

大数据通过Kafka被摄入到Hadoop集群中。 H2O.ai用于分析Hadoop中的历史数据以构建神经网络。数据科学家可以使用它的首选接口-R,Python,Scala,Web UI Notebook等。模型构建和验证在处理静态数据的Hadoop集群上运行。其结果是由H2O.ai以Java代码生成的训练分析模型。这已准备好用于生产部署。


模型推断

然后将神经网络部署到Kafka Streams应用程序。 Kafka Streams应用程序可以在任何地方运行,无论它是独立的Java进程,Docker容器还是Kubernetes集群。在这里,它被实时应用于每一个新事件来进行预测。 Kafka Streams利用Kafka集群提供分析模型和性能模型推断的可扩展的关键任务操作。


在线模型训练

我们可以建立完整的在线模型训练基础设施,而不是分离模型训练和模型推理。许多像Linkedin这样的科技巨头在过去利用Apache Kafka进行模型输入,训练,推理和输出。这种选择有几个折衷。大多数传统公司都使用第一种方法,这对于今天的大多数用例都适用。


模型监测和警报

将分析模型部署到生产只是第一步。监控模型的准确性,分数,SLA和其他指标,并实时提供自动警报,同样重要。指标通过Kafka反馈给机器学习工具以改进或替换模型。


用H2O.ai开发一个分析模型

以下显示了使用H2O构建分析模型的示例:一个开源机器学习框架,它利用Apache Spark或TensorFlow等其他框架。 数据科学家可以使用他或她最喜欢的编程语言,如R,Python或Scala。 最大的好处是H2O引擎的输出:Java代码。 生成的代码通常表现非常好,可以使用Kafka Streams轻松缩放。


以下是H2O.ai Flow(网络用户界面/笔记本)的截图以及构建分析模型的替代R代码:

用H2O Flow Web UI构建分析模型

用H2O的R库建立分析模型

他的输出是一个分析模型,生成为Java代码。 这可以在关键任务生产环境中无需重新开发的情况下使用。 因此,您不必考虑如何将Python或R模型“迁移”到基于Java平台的生产系统。


虽然这个例子使用H2O的功能来生成Java代码,但您可以使用其他框架(如TensorFlow,Apache MXNet或DeepLearning4J)执行类似的操作。


使用Apache Kafka的Streams API部署分析模型

Kafka Streams可轻松部署分析模型。 简单地将模型添加到流处理应用程序中 - 回想一下,它只是一个Java应用程序 - 将其应用于新的传入事件:

Apache Kafka的Streams API将H2O.ai模型嵌入到Kafka流中

由于Kafka Streams应用程序利用了底层的所有Kafka功能,因此这款新应用程序已准备好进行扩展和关键任务使用。 鉴于生产环境的考虑,不需要额外调整模型。


你可以找到正在运行的例子。 只需复制该项目,运行Maven构建,并查看Kafka Streams应用程序中如何使用H2O模型。 


这种将机器学习应用于流处理的实现可以轻松地集成到任何自动化的持续集成工作流中,使用您最喜爱的CI / CD环境工具堆栈,例如Maven,Gradle,Chef,Puppet或Jenkins。


用开放标准共享训练与推理之间的分析模型

如前所述,您需要使用适当的技术来构建分析模型。否则,您将无法以关键任务,性能和可扩展的方式将其部署到生产环境中。在数据科学家之间共享和更新模型以开发和改进模型和DevOps团队来嵌入和生产模型的一些替代方案:


       .原生模型:直接将模型部署到流处理引擎,例如在Java应用程序中通过JNI部署Python模型

       .生成的代码:独立于用于构建模型的语言,生成的二进制代码或源代码可以部署到流处理引擎,该引擎对性能进行了优化。例如,即使数据科学家使用R或Python来训练模型,该模型也会生成Java字节码。

       .外部服务器:使用SAS,MATLAB,KNIME或H2O等分析工具,通过请求响应调用外部分析服务器。这通常是通过REST接口完成的。

       .PMML(Predictive Model Markup Language,预测模型标记语言):一种较旧的XML标准,具有一些限制和缺点,但在某些分析工具中得到支持。

       .PFA(便携式格式分析):一种现代标准,除模型外还包括预处理。 PFA利用并支持JSON和Apache Avro。它在大多数分析工具中尚不支持即用型。


这些替代方案之间有各种权衡。 例如,使用像PFA这样的标准会产生额外的开销和限制,但增加了独立性和可移植性。 从Kafka的角度来看,您通常在这里大量部署关键任务,而现在的首选项通常是生成的Java代码,这些代码性能高,扩展性好,可以轻松嵌入到Kafka Streams应用程序中。 它还避免了与外部REST服务器进行通信以进行模型推断。


结论:使用Streaming Platform将分析模型部署到关键任务部署中

机器学习可以在任何行业创造价值。此外,Apache Kafka正迅速成为许多企业的中枢神经系统。机器学习是一个奇妙的用例!您可以利用Kafka进行以下操作:


        .实时推断分析模型

        .监控和警报

        .模型的在线训练

        .进入批处理层/分析群集以在那里训练分析模型

在本文中,您已经看到了一些代码示例,了解如何利用Apache Kafka及其Streams API构建用于应用和监控分析模型的可扩展的、高性能的、关键任务基础架构。


公众号推荐:

公众号:VOA英语每日一听

微信号: voahk01

可长按扫码关注,谢谢

2019-10-23 08:36:05 q18729096963 阅读数 61
  • 大数据硬实战之kafka视频教程

    大数据硬实战之kafka视频培训教程:本课程将从实战出发,讲解kafka原理以及在大数据中的应用场景的,是目前市面上少有的kafka实战教程,包括Kafka介绍、性能测试、数据、消息。

    2471 人正在学习 去看看 肖滨

Kafka学习

基本概念

1. Broker: 每一台kafka机器节点就是一个broker
2. Producer: 消息生产者 往kafka的topic写数据
3. Consumer: 消息消费者 从kafka的topic读取数据
4. Topic: 主题-虚拟概念 针对操作而言 
		consumer需要指定topic读取相应数据 producer需要指定topic写数据
5. Partition: 分片-物理概念 
	5.1 每一个topic内的数据会被分布在不同机器的多个partition(保证每台机器的负载均衡)
	5.2 多个partition内部保证有序消费,但是多个partition之间不能保证有序消费
	5.3 Partition的组成:
		5.31 index.log: 存储索引(二分法) 快速定位 segment文件
		5.32 message.log: 存储真实数据
	5.4 例子:kafka分配复制partition
		某个topic 5个Partition 3个relication
		分配策略:将第i个partition分配到(i/N)个broker
			将第i个partition的第j个replication分配到(i+j)/N个broker
6. Offset: 偏移量 用于定位数据读取的位置
7. Message: 消费数据的单位 message的size最大1M
8. consumer group: 
9. Zero Copy: 零拷贝 传输快
10. 无状态机制: kafka自身的消息不维护消费状态 需要消费者自己维护消费状态
11. SLA: 消息保留策略 7天自动删除
12. 交付保证机制:(3种)
 	12.1. at least once: 至少一次(会有重复消息,但是不丢失  消费者可以判断重复) 
 	12.2 at most once: 最多一次(不会重复发送消息 但可能会不发送)
 	12.3 exactly once: 只有一次 目前不支持

控制台操作Kafka实战

1. 创建topic主题
---- ./bin/kafka-topics.sh --create --zookeeper cdh-master:2181 --replication-factor 1 --partitions 1 --topic user

2. 查看topic列表
---- ./bin/kafka-topics.sh --list --zookeeper cdh-master:2181

3. 用Kafka的console-producer在topic user生产消息
---- ./bin/kafka-console-producer.sh --broker-list cdh-master:9092 --topic user

4. 用Kafka的console-consumer 消费topic user的消息
---- ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic user --from-beginning

注:彻底删除topic

彻底删除Kafka中的topic

1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

2、Kafka 删除topic的命令是:

 ./bin/kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】

 如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion

 你可以通过命令:./bin/kafka-topics --zookeeper 【zookeeper server】 --list 来查看所有topic



 此时你若想真正删除它,可以如下操作:

 (1)登录zookeeper客户端:命令:./bin/zookeeper-client

 (2)找到topic所在的目录:ls /brokers/topics

 (3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。



另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,

如果你删除了此处的topic,那么marked for deletion 标记消失

zookeeper 的config中也有有关topic的信息: ls /config/topics/【topic name】暂时不知道有什么用

总结:

彻底删除topic:

1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

2、如果配置了delete.topic.enable=true直接通过命令删除,如果命令删除不掉,直接通过zookeeper-client 删除掉broker下的topic即可。

2016-08-31 10:11:32 iteye_1882 阅读数 40
  • 大数据硬实战之kafka视频教程

    大数据硬实战之kafka视频培训教程:本课程将从实战出发,讲解kafka原理以及在大数据中的应用场景的,是目前市面上少有的kafka实战教程,包括Kafka介绍、性能测试、数据、消息。

    2471 人正在学习 去看看 肖滨

kafka主要是用来做日志收集,可以收集用户的流量,点击行为,kafka目前版本是1.0的,其0.9的版本坑特别多,推荐大家使用0.8.2.1版本,正是spark1.6.2集成的kafka版本

 大家可以去大象在线分享看看夜行侠老师的spark视频

 

http://www.itjoin.org/course/detail/57aa8938b52a8f0ddbd81763

2019-01-06 11:41:03 u012848709 阅读数 54
  • 大数据硬实战之kafka视频教程

    大数据硬实战之kafka视频培训教程:本课程将从实战出发,讲解kafka原理以及在大数据中的应用场景的,是目前市面上少有的kafka实战教程,包括Kafka介绍、性能测试、数据、消息。

    2471 人正在学习 去看看 肖滨

楔子

kafka简单学习 基于kafka_2.10-0.8.2.2.tgz

搭建

基于3台虚拟机had2,had3,had4 上面均有zookeeper

在这里插入图片描述

server.properties配置下面3个属性

broker.id=0# 三台机器依次是 0 1 2 
log.dirs=/opt/kafka210/date/kafka-logs
zookeeper.connect=had2:2181,had3:2181,had4:2181

启动
在 kafka目录下创建了 start.sh脚本(内容如下) 启动

#!/bin/bash
nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &

nohub 的相关信息参考次处

控制台命令

#1 创建topic
bin/kafka-topics.sh --create --zookeeper had2,had3,had4:2181  --replication-factor 1 --partitions 1 --topic test

#2 查看现有的topic
bin/kafka-topics.sh --list --zookeeper had2,had3,had4:2181

# 3 启动控制台生产者 消费者
bin/kafka-console-producer.sh --broker-list had2:9092,had2:9092,had4:9092 --topic test
bin/kafka-console-consumer.sh  --zookeeper had2,had3,had4:2181 --topic test --from-beginning


官网参考

Kafka学习

阅读数 20

kafka入门学习

阅读数 62

没有更多推荐了,返回首页