学习笔记:从0开始学习大数据-16. kafka安装及使用

kafka与streaming集成两种方式 hadoop,spark,kafka交流群:224209501标签(空格分隔) spark streaming作为kafka消费者两种模式,测试完整通过。 阅读详情

kafka是消息处理服务的开源软件,高效高可用。可以作为大数据收集的工具或数据的管道。

1. 下载  http://kafka.apache.org/downloads
根据scala版本,我下载的是Scala 2.12  - kafka_2.12-2.1.0.tgz (asc, sha512)
2.解压
tar -zxvf  kafka_2.12-2.1.0.tgz
3.启动
(1)启动自带的zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties &
(2)启动 kafka
bin/kafka-server-start.sh config/server.properties &
jps
显示已启动
[root@centos7 kafka_2.12-2.1.0]# jps
4477 QuorumPeerMain
8637 Jps
8062 Kafka
(3)创建一个叫做“test”的topic,它只有一个分区,一个副本。 下次再启动kafka无需再次创建
 bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看创建的topic
bin/kafka-topics.sh --list --zookeeper localhost:2181

4.测试
(1)第一个shell终端启动作为消息消费者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

(2)第二个shell终端启动作为消息生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

发送测试消息

[root@centos7 kafka_2.12-2.1.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
hello
>>is working?
>

在第一个shell终端可以看到发送的消息


5. java 编程发送,接受消息测试

创建maven项目 pom.xml的依赖加入

 <dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>2.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-streams</artifactId>
    <version>2.1.0</version>
</dependency>

需运行两个程序,发送消息程序(生产者)和接收信息程序(消费者)

程序源码引自用下面的参考文章,作了些修改

MyKafkaProducer.java

package com.linbin.kafka;

import java.util.Properties;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

public class MyKafkaProducer {
	public static void main(String[] args){
	    Properties props = new Properties();
	    props.put("bootstrap.servers", "centos7:9092");
	    props.put("acks", "all");
	    props.put("retries", 0);
	    props.put("batch.size", 16384);
	    props.put("linger.ms", 1);
	    props.put("buffer.memory", 33554432);
	    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
	    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
	    Producer<String, String> producer = new KafkaProducer<String, String>(props);
	    for (int i = 0; i < 100; i++)
	        producer.send(new ProducerRecord<String, String>("test", Integer.toString(i), Integer.toString(i)));
	    producer.close();

	}
}

 MyKafkaConsumer.java

package com.linbin.kafka;


import java.util.Arrays;
import java.util.Collection;
import java.util.Properties;
import org.apache.kafka.clients.consumer.ConsumerRebalanceListener;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.common.TopicPartition;

public class MyKafkaConsumer {
	public static void main(String[] args){
	    Properties props = new Properties();
	    props.put("bootstrap.servers", "centos7:9092");
	    props.put("group.id", "test");
	    props.put("enable.auto.commit", "true");
	    props.put("auto.commit.interval.ms", "1000");
	    props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
	    props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
	    final KafkaConsumer<String, String> consumer = new KafkaConsumer<String,String>(props);

	    consumer.subscribe(Arrays.asList("test"),new ConsumerRebalanceListener() {
   		@Override
			public void onPartitionsAssigned(Collection<TopicPartition> arg0) {
			}
			@Override
			public void onPartitionsRevoked(Collection<TopicPartition> arg0) {

			}
	
	    });	    
	    
	    while (true) {
	        ConsumerRecords<String, String> records = consumer.poll(100);
	        for (ConsumerRecord<String, String> record : records)
	            System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
	    }
	}
}

在MyKafkaConsumer执行控制台可以看到信息输出

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
offset = 211, key = null, value = ddddd
offset = 212, key = null, value = how are you
offset = 213, key = 0, value = 0
offset = 214, key = 1, value = 1
offset = 215, key = 2, value = 2
offset = 216, key = 3, value = 3
offset = 217, key = 4, value = 4
offset = 218, key = 5, value = 5

可以从shell控制台和java程序交叉输入信息源和消费信息。

 

参考:
https://www.jianshu.com/p/0e378e51b442  java Kafka 简单应用实例
https://www.cnblogs.com/skying555/p/7903457.html  Kafka入门经典教程
https://www.cnblogs.com/hei12138/p/7805475.html  kafka实战

 

 

大数据之Kafka环境安装 Kafka源码包下载:http://mirror.bit.edu.cn/apache/kafka/Master 172.16.11.97Slave1 172.16.11.98Slave2 172.16.11.99#Master#Mastercd kafka_2.11-0.10.2.1/confvim server.propertie#Master、Slave1、Slave2vim ~/.bashrc#刷新环境变量#Mastervim config/server.propertie#Slave1vim con 阅读详情

相关推荐

从0开始一步一步搭大数据集群平台,小白也能玩,超详细!!!

从零开始の大数据生活(始める!!!) 以下内容纯属个人学习工作总结,知识有限,有错的地方还请各位大佬指正。

weixin_45594417的博客 1385

kafka集群搭建

在Linux环境中配置kafka单机以及集群

q1372302825的博客 995

Hadoop大数据平台安装

实验一:Hadoop大数据平台安装 16281002 杜永坤 1、实验目的 在大数据时代,存在很多开源的分布式数据采集、计算、存储技术,本实验将熟悉并搭建几种常用的大数据采集、处理分析技术环境。 《大数据技术》实验一需要在笔记本上搭建 Hadoop 集群,实验报告根据教程对笔记本上创建虚拟机搭建 Hadoop 集群的步骤进行了说明。包含所有需要安装的软件与服务的版本,安装路径,安装方法等。主要流程...

weixin_41705703的博客 6111

kafka_2.11-0.10.0.0 编程Failed to send messages after 3 tries. 错误解决

最近研究kafka在虚拟机上可以跑起来,但是在本机上连接虚拟机时候抛异常Failed to send messages after 3 tries 修改红色字体部分之后可以正常运行 # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreement

xufan007的专栏 2991

大数据环境搭建-Hadoop伪分布式安装-spark安装-kafka安装

1、 所需安装包 CentOS-7-x86_64-DVD-1908.iso VMware-workstation-full-15.1.0-13591040.exe FileZilla_3.43.0_win64_sponsored-setup.exe jdk1.8.0_171 hadoop-2.7.3 scala-2.12.1 spark-2.3.0-bin-hadoop2.7 2、修改主机名 ...

神秘人 649

5、kafka监控工具Kafka-Eagle介绍及使用

早期,要监控Kafka集群我们可以使用Kafka Monitor以及Kafka Manager,但随着监控的功能要求、性能要求的提高,这些工具已经无法满足。Kafka Eagle是一款结合了目前大数据Kafka监控工具的特点,重新研发的一块开源免费的Kafka集群优秀的监控工具。它可以非常方便的监控生产环境中的offset、lag变化、partition分布、owner等。

alanchanchn的专栏 9万+

Kafka入门教程及安装

Kafka消息队列 Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要用于大数据处理领域 发布/订阅模式:消息的发布者不会直接将消息发布给特定的订阅者,而是将消息分不同的类别,订阅者只接受感兴趣的消息 Kafka最新定义:Kafka是一个开源的分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用 Kafka基础概念 Topic:指消息的类别(主题),每个消息都必须有; Pro...

qq_45946982的博客 8181

Kafka & Mafka技术分享及讨论

Kafka & Mafka技术分享及讨论

BigData-Notes 16.9k Star 项目解析:从 Hadoop 到 Flink 的 13 个组件学习路径

本文解析了16.9k Star的BigData-Notes开源项目,为开发者设计了一套从Hadoop到Flink的13周系统学习路径。该项目覆盖大数据生态的13个核心组件,包含理论基础、环境搭建、API使用等多元学习维度,适合中级开发者快速构建大数据知识体系。

culh2177的博客 870

【学习体会】Lighttools8.4.0:简单光学系统实例

添加球型光源(SphereSource)和表面接收器: 对光线模拟的参数进行设置: 光线追踪-模拟输入 要追踪的光线总数,决定模拟的准确度,总数越多,准确度越高,当然耗时更多 预览光线数量是模拟之后可以看到的示意光线(黑线),一般是100~1000,随意设置 点击,开始模拟: (模拟结果) 如果光线太多,则会出现,可以看到剩余时间 照度分析: 分析-照度显示-光栅图表 ...

LeonJin的博客 1万+

半导体领域知识 - 初级入门

半导体领域知识 - 初级入门 知识问答 1. 一个晶圆上根据芯片的大小,可以生产几百、几千、几万个芯片。如下图: 2. 8寸晶圆指的是什么?5nm工艺指的是什么? 8寸晶圆指的是直径为175mm(17.5cm)的晶圆,下面是6/812/18寸晶圆的尺寸以及相关发展历程。目前拥有12寸线的厂商只有5家,一个12寸晶圆厂的成本需要上百亿美金。 5nm工艺指的是在一个具体的芯片上,有很多微型结构(千万、亿级别的晶体管),这些核心基本单元MOS管的栅极宽度尺寸来衡量工艺的精细程度,如果是5nm就被称为5nm工艺

Hello World! 2万+

如何从0开始学习大数据技术

如何从0开始学习大数据技术呢?本文就本人的经历给大家介绍一下如何开始学习大数据技术,如果你已经开始用自己的方法学习大数据技术,不妨也参考一下本文的方法,如果你是大牛,那可以忽略本文下面的内容了。 1.硬件准备 要想学习大数据技术,硬件是必不可少的,需要一台至少8GB内存的电脑,有条件的家里如果有多台电脑,且自己比较爱折腾的话就更好了。内存从1块钱1MB的时候,到现在1块钱20MB,依然是电脑最缺少...

xjjdlut的专栏 699

诊断CAPL自动化(5) ——没有CANdela,无法编辑cdd数据库文件,也能轻松完成诊断测试

🍅我们知道cdd数据库文件,是CANoe测试环境的重要组件,它可以让我们更加轻松的完成诊断测试工作;但是创建和编辑cdd文件是需要CANdela 来完成的,一个 liscense 就要将近二十万,成本确实高🍅特别是在处理22/2E/31服务的时候,频繁的增加功能,可能需要频繁的用CANdela 修改CDD,我测试开发过程中,一般很少去修改cdd,有这个时间,纯手撸也开发完了,就一个CANdela,鬼知道此时此刻到了谁手里,我也懒得去找。🍅演示软硬件环境;目录📘前言。

蚂蚁小兵 5756

kafka学习01-基本安装和使用

kafka学习01

qq_44768571的博客 1116

Android 14安装的APK默认允许运行时权限

本文介绍了在Android系统中实现安装应用后自动授予运行时权限的方法。通过在安装完成广播中检测应用安装状态,调用新增的DefaultPermissionGrantPolicy.grantAppRuntimePermissions()函数来授予常规权限,并使用allowSpecialPermission()处理特殊权限(如安装未知应用和悬浮窗权限)。文章详细说明了如何修改DefaultPermissionGrantPolicy类,添加grantAppRuntimePermissions和grantRunti

热衷于Android Framework和系统APP的修改经验分享 683

DeepSeek邮件管理全攻略

DeepSeek邮件助手是一款高效的邮件处理工具,提供智能分类、撰写、回复和任务自动化功能。通过API调用或多智能体系统,它能自动分类邮件意图、生成专业回复并优化邮件内容。核心功能包括智能过滤、会议安排和任务提醒,支持与主流邮箱服务集成。提供精准提示词模板,帮助用户快速生成得体邮件,提升工作效率。适合个人和企业使用,通过简单配置即可实现邮件处理自动化。

Genio_Wang的博客 180

kafka学习笔记,2024大数据开发春招

一个topic,代表逻辑上的一个业务数据集,比如按数据库里不同表的数据操作消息区分放入不同topic,订单相关操作消息放入订单topic,用户相关操作消息放入用户topic,对于大型网站来说,后端数据都是海量的,订单消息很可能是非常巨量的,比如有几百个G甚至达到TB级别,如果把这么多数据都放在一台机器上可定会有容量限制问题,那么就可以在topic内部划分多个partition来分片存储数据,不同的partition可以位于不同的机器上,每台机器上都运行一个Kafka的进程Broker。

2401_84166376的博客 514

EMI辐射发射超标案例

EMI辐射发射超标案例

让你爱上电路设计 8503

【大数据工具】Kafka伪分布式、分布式安装和Kafka-manager工具安装与使用

管理多个 Kafka 集群便捷的检查 Kafka 集群状态(topic,broker,备份分布情况,分区分布情况)选择要运行的副本基于当前分区状况进行可以选择 topic 配置并创建 topic(0.8.1.1 和 0.8.2 的配置不同)删除 topic(只支持 0.8.2 以上的版本并且要在 broker 配置中设置Topic list 会指明哪些 topic 被删除(0.8.2 以上版本使用)为已存在的 topic 增加分区为已存在的 topic 更新配置。

程序员五哥 3594

华为OD机试真题2025双机位B卷 Java&Go 实现【朋友圈个数】

给定一组朋友关系,统计一下该朋友关系网中的朋友圈个数。 朋友圈的定义:一个朋友圈至少由3个朋友组成,且要求同一个朋友圈中的任意两个人都具有直接的朋友关系。 输入描述 输入一个朋友关系列表,如 Fiends =A.B],[A.C],IB,DI,其中的每一个元素 Friendsi表示 Friends[i][0)和 Friends [i][1] 是朋友关系 先输入一个数字 N 代表关系的总数,后面每条关系一行,两个成员以逗号分隔

MISAYAONE的博客 518

液态神经网络(Liquid Neural Networks)从线虫大脑到下一代 AI

液态神经网络(Liquid Neural Networks,LNN)是一类具有动态内部结构的神经网络,其灵感来源于生物神经系统,尤其是大脑中神经元如何以复杂、非线性的方式响应外部刺激。与传统神经网络不同,液态神经网络的每个神经元在处理输入时,不再是静态线性或非线性变换,而是基于一个微分方程模型进行响应。这种建模方式使神经元的行为具有时间连续性和动态适应性。换句话说,它不仅“记住”过去的信息,还能根据当前环境实时调整自身的动态特性,这对于感知、决策、预测等任务都非常关键。

hello.reader 7409

最新kafka学习笔记(1),大数据开发知识总结

整体上,producer通过网络发送消息到Kafka集群,然后consumer来进行消费。

2401_84573183的博客 883

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

如何使用kafka-eagle-2.0.2管理Kafka集群

点击蓝色字关注!本篇文章大概2537字,阅读时间大约13分钟Kafka产线环境需要管理的Topic和Consumser越来越多,使用命令行工具进行管理会非常繁杂。因此,大数据平台上需要一...

baidu_31618421的博客 1042

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大数据学习笔记第2课 Zookeeper & Kafka集群搭建

大数据学习笔记第2课 Zookeeper & Kafka集群搭建1、环境准备2、JDK下载与安装3、kafka下载4、zookeeper与kafka安装5、在hadoop01上启动zookeeper6、在hadoop01、hadoop02、hadoop03上启动kafka7、创建topic8、生产Message9、消费Message10、模拟发送消息至kafka结束语 1、环境准备 1、服务器: 个人笔记本电脑: 型号:小米游戏笔记本15.6 处理器:Intel® Core™ i7-7700HQ C

分享技术,传播知识! 572

kafka学习笔记(1),2024年最新2024大数据开发面试题知识点总结

一个topic,代表逻辑上的一个业务数据集,比如按数据库里不同表的数据操作消息区分放入不同topic,订单相关操作消息放入订单topic,用户相关操作消息放入用户topic,对于大型网站来说,后端数据都是海量的,订单消息很可能是非常巨量的,比如有几百个G甚至达到TB级别,如果把这么多数据都放在一台机器上可定会有容量限制问题,那么就可以在topic内部划分多个partition来分片存储数据,不同的partition可以位于不同的机器上,每台机器上都运行一个Kafka的进程Broker。

2401_84166376的博客 804

大数据学习笔记第2课(续) 通过filebeat收集nginx访问日志到kafka集群

大数据学习笔记第2课(续) 通过filebeat收集nginx访问日志到kafka集群1、说明2、环境说明3、Nginx安装与配置4、启动一个Mini Http Server处理5000端口的请求5、filebeat下载、配置与安装6、启动filebeat开启日志收集7、通过java程序发送http请求至nginx,使nginx产生访问日志。8、通过java程序模拟kafka消息消费9、结尾 1、说明 本文是接着我的上一篇博文《大数据学习笔记第2课 Zookeeper & Kafka集群搭建》往下写

分享技术,传播知识! 840
上一篇: 学习笔记:从0开始学习大数据-15. Flume安装及使用
下一篇: 学习笔记:从0开始学习大数据-17.Redis安装及使用
领尚
博客等级 码龄14年 1143粉丝 271原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值