kafka介绍和集群环境搭建

kafka概念:

kafka是一个高吞吐量的流式分布式消息系统,用来处理活动流数据,比如网页的访问量pm,日志等,既能够实时处理大数据信息

也能离线处理。

特点:

1.高吞吐量

2.是一种显式的分布式系统,它假设,数据生产者(producer),代理(brokers)和数据使用者(consumer)分散在多台机器上。

3.有关哪些数据已经被使用了的状态信息保存为数据使用着(consumer)的一部分,而不是保存在服务秋上。

关于队列的基础知识:

消息:指的是通信的基本单位,由消息生产者(producer)发布关于某个胡全体(topic)的消息,这句话的意思是消息以一种物理方式被发送给了

作为代理(broker)的服务器,若干的消费者(consumer)订阅(subscribe)某个话题,然后生产者发布的消息都会被发送给所有的使用者。

kafka是一个显式的分布式系统,指的是生产者,消费者,和代理者都可以运行在作为一个逻辑单位的,相互协调的集群的不同机器上。

消费者组:每个消费者进程都隶属于一个消费者组,每条消息只会发送到这个消费者组中的一个消费者进程,消费者组将多个消费者进程或多台

机器在逻辑上看做为了一个消费者。消费者组的意义就是,每条消息都只会发送到这个消费者组中的一个进程,但是在同一个组中的消费者进程

都能使用这个消息,所以无论消费者组中有多少个订阅者,每条信息值在组中存储一份!

在kafka中,使用者(consumer)负责维护反应哪些消息已经被使用的状态(偏移量),在kafka中会将状态数据保存到zookeeper中,

在hadoop的加载作业从kafka并行加载作业时,每个mapper在map任务结束之前会将状态偏移量,存储到hdfs中。通过这种机制还可以回退数据读。

分发机制;

kafka通常情况下是运行在集群中的服务器上。没有中央的“主”节点。代理彼此之间是对等的,不需要任何手动配置即可可随时添加和删除。同样,

生产者和消费者可以在任何时候开启。
每个代理都可以在zookeeper(分布式协调系统)中注册的一些元数据(例如,可用的主题)。生产者和消费者

可以使用zookeeper发现主题和相互协调。关于生产者和消费者的细节将在下面描述。

消费者和生产者通过分区实现负载均衡。

主题:用来区分不同种类的数据信息

分区partition:有主有从,将数据写到不同的文件上,分区的编号默认是从0开始,0,1,2,3...

leader负责读写数据,follower负责同步数据,高吞吐量,负载均衡

producer来可以去不同的分区上去写数据,consumer也是同样原理,这样就可以

将读写负载均衡到不同的分区中

消费之consumer,消费数据从主分区上(leader)读

消费组:共享消费信息,在同一个消费组中的消费者,读取同一份数据只要一次就行了,因为

同一个组中消费者之间共享数据

#########################################################################################################

安装kafka:

1.上传kafka_2.9.2-0.8.1.1.tgz到服务器

2.单节点kafka,

a.先启动zookeeper集群

执行bin/kafka-server-start.sh  config/server.properties

会报:

Unrecognized VM option ‘UseCompressedOops‘

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

原因是jdk的版本不匹配,需要修改一下配置文件

修改文件:

去掉这个配置

-XX:+UseCompressedOops

b.启动一个服务端

bin/kafka-server-start.sh config/server.properties

c.查看topic

bin/kafka-topics.sh --list --zookeeper localhost:2181

创建topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

查看topic描述

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

d.测试

启动一个生产者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

开启一个消费者

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

3.集群搭建

修改配置文件

vim config/server-1.properties

最后的zookeeper集群的配置

zookeeper.connect=storm01:2181,storm02:2181,storm03:2181

再将kafka的配置拷贝到其他的服务器

scp -r /usr/itcast/kafka [email protected]:/usr/itcast/

scp -r /usr/itcast/kafka [email protected]:/usr/itcast/

修改配置文件

vim config/server-1.properties

broker.id=1,broker.id=2

启动测试

时间: 2024-08-10 17:09:45

kafka介绍和集群环境搭建的相关文章

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(八)安装zookeeper-3.4.12

如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.> 如何安装hadoop2.9.0请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二)安装hadoop2.9.0> 如何安装spark2.2.1请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1

如何配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.> 如何安装hadoop2.9.0请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二)安装hadoop2.9.0> 安装spark的服务器: 192.168.0.120 master 192.168.0.121 slave1 192.168.0.122 slave

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.> 如何安装hadoop2.9.0请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二)安装hadoop2.9.0> 如何安装spark2.2.1请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。

Centos7出现异常:Failed to start LSB: Bring up/down networking. 按照<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.>配置好虚拟机,正在使用中,让它强制断电后,启动起来发现ip无法访问,而且重启网络失败: 执行:systemctl restart network.service 出现异常:Failed to start LSB: Br

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十三)kafka+spark streaming打包好的程序提交时提示虚拟内存不足(Container is running beyond virtual memory limits. Current usage: 119.5 MB of 1 GB physical memory used; 2.2 GB of 2.1 G)

异常问题:Container is running beyond virtual memory limits. Current usage: 119.5 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container. spark-submit提交脚本: [[email protected] work]$ more submit.sh #! /bin/bash jars=""

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十一)NIFI1.7.1安装

一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120 master 192.168.0.121 slave1 192.168.0.122 slave2 具体请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.> 2. 安装zookeeper分布式集群具体请参考<Kafka:ZK+Kafka+Spark Streaming集群

Kafka 完全分布式集群环境搭建

思路: 先在主机s1上安装配置,然后远程复制到其它两台主机s2.s3上, 并分别修改配置文件server.properties中的broker.id属性. 1. 搭建前准备 示例共三台主机,主机IP映射信息如下: 192.168.32.101 s1 192.168.32.102 s2 192.168.32.103 s3 搭建ZooKeeper 集群,搭建步骤参考: https://www.cnblogs.com/jonban/p/zookeeper.html 2.下载 Kafka 下载地址: h

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(七)针对hadoop2.9.0启动DataManager失败问题

DataManager启动失败 启动过程中发现一个问题:slave1,slave2,slave3都是只启动了DataNode,而DataManager并没有启动: [[email protected] hadoop-2.9.0]$ jps 2497 Jps 2052 DataNode [[email protected] hadoop-2.9.0]$ jps 2497 Jps 2052 DataNode [[email protected] hadoop-2.9.0]$ jps 2497 Jps

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十三)定义一个avro schema使用comsumer发送avro字符流,producer接受avro字符流并解析

参考<在Kafka中使用Avro编码消息:Consumer篇>.<在Kafka中使用Avro编码消息:Producter篇> pom.xml <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>0.10.0.1</version> </dependenc