Ubuntu下kafka集群环境搭建及测试
kafka介绍:
- 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
 - 高吞吐量[2] :即使是非常普通的硬件Kafka也可以支持每秒数百万[2] 的消息。
 - 支持通过Kafka服务器和消费机集群来分区消息。
 - 支持Hadoop并行数据加载。[3]
 
Kafka相关术语介绍
- BrokerKafka集群包含一个或多个服务器,这种服务器被称为broker[5]
 - Topic每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
 - PartitionPartition是物理上的概念,每个Topic包含一个或多个Partition.
 - Producer负责发布消息到Kafka broker
 - Consumer消息消费者,向Kafka broker读取消息的客户端。
 - Consumer Group每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
单节点模式:
1,解压
root@Ubuntu-:/usr/local# tar zxvf kafka_2.-0.8.2.2.tgz
2,重命名
root@Ubuntu-:/usr/local# mv /usr/local/kafka_2.-0.8.2.2 /usr/local/kafka
3,起zookeeper集群到指定后台文件(不占用页面)
root@Ubuntu-:/usr/local/kafka# bin/zookeeper-server-start.sh config/zookeeper.properties > logs/kafka131-.log >& &
4,起kafka集群到指定后台文件(不占用页面)
bin/kafka-server-start.sh config/server.properties >logs/kafka131-server-.log >& &
5,查看zookeeper和kafka启动情况
root@Ubuntu-:/usr/local/kafka# jps
QuorumPeerMain
Kafka
Jps
6,新增一个topic
root@Ubuntu-:/usr/local/kafka# bin/kafka-topics.sh --create --topic huxing --zookeeper localhost: --partitions --replication
Created topic "huxing".
7,所有可以使用的topic
root@Ubuntu-:/usr/local/kafka# bin/kafka-topics.sh --list --zookeeper localhost:
huxing
8,查询某个topic的信息
root@Ubuntu-:/usr/local/kafka# bin/kafka-topics.sh --describe --topic huxing --zookeeper localhost:
Topic:huxing PartitionCount: ReplicationFactor: Configs:
Topic: huxing Partition: Leader: Replicas: Isr:
Topic: huxing Partition: Leader: Replicas: Isr:
9,删除某个topic
在此之前需要在server.properties的配置文件中加入一行
delete.topic.enable=true
重启,然后执行代码
root@Ubuntu-:/usr/local/kafka# bin/kafka-topics.sh --delete --topic huxing --zookeeper localhost:
Topic huxing is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
root@Ubuntu-:/usr/local/kafka# bin/kafka-topics.sh --list --zookeeper localhost:
hello
world
在jps中可以查询到确实已经被删除了
10,创建producer和consumer用户
在创建producer用户时,出现下列错误:
解决办法:在server.properties的配置文件中加入一行
advertised.host.name=192.168.22.131
在server.properties 上该参数用来配置返回的host.name值,把这个参数配置为外网IP地址。
这个参数默认没有启用,默认是返回的 java.net.InetAddress.getCanonicalHostName 的值,这个值并不等于 hostname 的值而是返回IP,但在linux上这个值就是 hostname 的值。
配置好后重启,在两个shell框中输入下列命令:
producer:
root@Ubuntu-:/usr/local/kafka# bin/kafka-console-producer.sh --topic hello --broker-list localhost:
[-- ::,] WARN Property topic is not valid (kafka.utils.VerifiableProperties)
aa
aaa
consumer:
root@Ubuntu-:/usr/local/kafka# bin/kafka-console-consumer.sh --topic hello --zookeeper localhost:
于是,在producer的shell框中输入的内容将会同步更新到consumer中
标记删除的topic也可以使用
--------------------------------------------
集群模式:
由于我用kafka中内置的zookeeper怎么配置也无法启动,所以打算放弃kafka中内置的ZK,转而自己去下载
zookeeper
1,解压压缩包
2,进入zookeeper目录下的conf子目录, 创建zoo.cfg文本文件,内容如下:
initLimit=
tickTime=
syncLimit=
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=
server.=192.168.22.131::
server.=192.168.22.132::
server.=192.168.22.135::
三个服务器上都是一样的内容
参数说明:
- tickTime: zookeeper中使用的基本时间单位, 毫秒值.
 - dataDir: 数据目录. 可以是任意目录.
 - dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
 - clientPort: 监听client连接的端口号.
 
3,在配置的dataDir目录下,创建myid文本文件,内容为server.1等的”.”后的数字相同,每个服务器下的myid文件都不相同
kafka:
1,在server.propoties文件中更改:



启动:
启动zookeeper服务器(三台):
bin/zkServer.sh start
启动kafka服务器(三台):
bin/kafka-server-start.sh config/server.properties
创建topic:
root@Ubuntu-:/usr/local/kafka# bin/kafka-topics.sh --create --topic huxing2 --zookeeper 192.168.22.131:,192.168.22.132:,192.168.22.135: --replication-factor --partitions
Created topic "huxing2".
列出可使用的topic:
root@Ubuntu-:/usr/local/kafka# bin/kafka-topics.sh --list --zookeeper localhost:
huxing2
查询某个topic的信息:
root@Ubuntu-:/usr/local/kafka# bin/kafka-topics.sh --describe --topic huxing2 --zookeeper localhost:
Topic:huxing2 PartitionCount: ReplicationFactor: Configs:
Topic: huxing2 Partition: Leader: Replicas: ,, Isr: ,,
Topic: huxing2 Partition: Leader: Replicas: ,, Isr: ,,
从图中可以看出来,Partition分别存在不同的broker中,每个broker都不同,所以broker无副本
windows下运行kafka(自带zookeeper)
1,下载kafka
https://www.apache.org/dyn/closer.cgi?path=/kafka/2.2.1/kafka_2.11-2.2.1.tgz
2,解压到windows目录,并进入到该目录的cmd中
启动kafka自带的zookeeper
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
启动kafka
.\bin\windows\kafka-server-start.bat .\config\server.properties
创建topic主题:windows目录下面
kafka-topics.bat --create --zookeeper localhost: --replication-factor --partitions --topic test
创建生产者发送消息:windows目录下面
kafka-console-producer.bat --broker-list localhost: --topic test
创建消费者消费消息:windows目录下面
kafka-console-consumer.bat --bootstrap-server localhost: --topic test --from-beginning
删除topic test
kafka-topics.bat --delete --topic test --bootstrap-server localhost:
查看topic
kafka-topics.bat --list --bootstrap-server localhost:
Ubuntu下kafka集群环境搭建及测试的更多相关文章
- kafka  集群环境搭建 java
		
简单记录下kafka集群环境搭建过程, 用来做备忘录 安装 第一步: 点击官网下载地址 http://kafka.apache.org/downloads.html 下载最新安装包 第二步: 解压 t ...
 - 【运维技术】kafka三实例集群环境搭建及测试使用
		
kafka三实例集群环境搭建及测试使用 单机搭建分为两部分:1. 软件安装启动 2. 软件配置 软件安装启动: # 切换到目录 cd /app # 获取kafka最新安装包,这边使用的是镜像地址,可以 ...
 - Linux环境下SolrCloud集群环境搭建关键步骤
		
Linux环境下SolrCloud集群环境搭建关键步骤. 前提条件:已经完成ZooKeeper集群环境搭建. 一.下载介质 官网下载地址:http://www.apache.org/dyn/close ...
 - Linux环境下HDFS集群环境搭建关键步骤
		
Linux环境下HDFS集群环境搭建关键步骤记录. 介质版本:hadoop-2.7.3.tar.gz 节点数量:3节点. 一.下载安装介质 官网下载地址:http://hadoop.apache.or ...
 - Linux环境下ZooKeeper集群环境搭建关键步骤
		
ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...
 - 数据源管理 | Kafka集群环境搭建,消息存储机制详解
		
本文源码:GitHub·点这里 || GitEE·点这里 一.Kafka集群环境 1.环境版本 版本:kafka2.11,zookeeper3.4 注意:这里zookeeper3.4也是基于集群模式部 ...
 - 大数据 -- zookeeper和kafka集群环境搭建
		
一 运行环境 从阿里云申请三台云服务器,这里我使用了两个不同的阿里云账号去申请云服务器.我们配置三台主机名分别为zy1,zy2,zy3. 我们通过阿里云可以获取主机的公网ip地址,如下: 通过secu ...
 - Kafka集群环境搭建
		
Kafka是一个分布式.可分区.可复制的消息系统.Kafka将消息以topic为单位进行归纳:Kafka发布消息的程序称为producer,也叫生产者:Kafka预订topics并消费消息的程序称为c ...
 - Kafka集群环境搭建(2.9.2-0.8.2.2)
		
Kafka是一个分布式.可分区.可复制的消息系统.Kafka将消息以topic为单位进行归纳:Kafka发布消息的程序称为producer,也叫生产者:Kafka预订topics并消费消息的程序称为c ...
 
随机推荐
- Spring MVC: 环境搭建并实现简易的HelloWorld
			
第一步:使用配置Tomcat服务器的Eclipse新建一个名为“TestSpringMVC”的web项目 第二步:将所使用的jar包复制到WEB-INF/lib目录下 第三步:在web.xml中配置D ...
 - Use Matlab though C++
			
0. Environment Windows 8.1 Pro x64 Matlab R2013a 32-bit (installed in "F:\ProgramFiles_x86\MATL ...
 - 【题解搬运】PAT_A1016 Phone Bills
			
从我原来的博客上搬运.原先blog作废. 题目 A long-distance telephone company charges its customers by the following rul ...
 - 第三十三篇 Python中关于OOP(面向对象)的常用术语
			
面向对象的优点 从编程进化论可知,面向对象是一种更高等级的结构化编程方式,它的好处主要有两点: 1. 通过封装明确了内外,你做为类的缔造者,你就是女娲,女娲造物的逻辑别人无需知道,女娲想让你知道,你才 ...
 - 在阿里云上遇见更好的Oracle(二)
			
从上一篇文章的反馈来看,大家还是喜欢八卦多过技术细节,那这一篇继续一些题外话,说说我对“去IOE”的看法. 对同一件事情,参与的没参与的人,讨论起来,都会有各自的立场.所以这里先申明一下,以下内容只是 ...
 - 当我们在安装tensorflow时,我们在安装什么?- Intro to TF, Virtualenv, Docker, CUDA, cuDNN, NCCL, Bazel
			
(Mainly quoted from its official website) Summary: 1. TensorFlow™ is an open source software library ...
 - %matplotlib inline
			
整理摘自 https://zhidao.baidu.com/question/1387744870700677180.html %matplotlib inline是jupyter notebook里 ...
 - chrome谷歌浏览器导致的密码被修改现象
			
版本 68.0.3440.106(正式版本) (32 位)记住密码功能有个缺陷,会把自己的密码自动填写到别人的密码框中,假如这个时候点击保存密码,就会导致其他用户的密码被修改为登录用户的密码. 很 ...
 - lintcode-116-跳跃游戏
			
116-跳跃游戏 给出一个非负整数数组,你最初定位在数组的第一个位置. 数组中的每个元素代表你在那个位置可以跳跃的最大长度. 判断你是否能到达数组的最后一个位置. 注意事项 这个问题有两个方法,一个是 ...
 - 【bzoj4517】[Sdoi2016]排列计数  组合数+dp
			
题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是稳定的 满足条 ...