Centos安装Kafka集群
kafka是LinkedIn开发并开源的一个分布式MQ系统,现在是Apache的一个孵化项目。在它的主页描述kafka为一个高吞吐量的分布式(能 将消息分散到不同的节点上)MQ。在这片博文中,作者简单提到了开发kafka而不选择已有MQ系统的原因。两个原因:性能和扩展性。Kafka仅仅由 7000行Scala编写,据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。
安装准备
版本
Kafka版本:kafka_2.10-0.8.2.0
Zookeeper版本:3.4.6
Zookeeper 集群:hadoop104,hadoop107,hadoop108
Zookeeper集群的搭建参见:在CentOS上安装ZooKeeper集群
物理环境
安装两台物理机:
192.168.40.104 hadoop104(运行3个Broker)
192.148.40.105 hadoop105(运行2个Broker)
该集群的创建主要分为三步,单节点单Broker,单节点多Broker,多节点多Broker
单节点单Broker
本节以hadoop104上创建一个Broker为例
下载kafka
下载路径:http://kafka.apache.org/downloads.html

- #tar -xvf kafka_2.10-0.8.2.0.tgz
- # cd kafka_2.10-0.8.2.0
配置
修改config/server.properties

- broker.id=1
- port=9092
- host.name=hadoop104
- socket.send.buffer.bytes=1048576
- socket.receive.buffer.bytes=1048576
- socket.request.max.bytes=104857600
- log.dir=./kafka1-logs
- num.partitions=10
- zookeeper.connect=hadoop107:2181,hadoop104:2181,hadoop108:2181
启动Kafka服务

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

创建Topic

- #bin/kafka-topics.sh --create --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181 --replication-factor 1 --partitions 1 --topic test
查看Topic

- #bin/kafka-topics.sh --list --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181
输出:

producer发送消息

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

consumer接收消息

- #bin/kafka-console-consumer.sh --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181 --topic test --from-beginning

如果要最新的数据,可以不带--from-beginning参数即可。
# /bin/kafka-console-consumer.sh --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181 --topic test
单节点多个Broker
配置
将上个章节中的文件夹再复制两份分别为kafka_2,kafka_3

- #cp -r kafka_2.10-0.8.2.0 kafka_2
- #cp -r kafka_2.10-0.8.2.0 kafka_3
分别修改kafka_2/config/server.properties以及kafka_3/config/server.properties 文件中的broker.id,以及port属性,确保唯一性

- kafka_2/config/server.properties
- broker.id=2
- port=9093
- kafka_3/config/server.properties
- broker.id=3
- port=9094
启动
启动另外两个Broker

- #cd kafka_2
- # bin/kafka-server-start.sh config/server.properties &
- #cd ../kafka_3
- # bin/kafka-server-start.sh config/server.properties &
创建一个replication factor为3的topic

- #bin/kafka-topics.sh --create --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
查看Topic的状态

- bin/kafka-topics.sh --describe --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181 --topic my-replicated-topic

- "leader" is the node responsible for all reads and writes for the
given partition. Each node will be the leader for a randomly selected
portion of the partitions. - "replicas" is the list of nodes that replicate the log for this
partition regardless of whether they are the leader or even if they are
currently alive. - "isr" is the set of "in-sync" replicas. This is the subset of the
replicas list that is currently alive and caught-up to the leader.
多个节点的多个Broker

- #scp -r config/ root@hadoop105:/root/hadoop/kafka_4/
- #scp -r config/ root@hadoop105:/root/hadoop/kafka_5/
配置

- kafka_4
- brokerid=4
- port=9095
- host.name=hadoop105
- kafka_5
- brokerid=5
- port=9096
- host.name=hadoop105
启动服务

- #cd kafka_4
- # bin/kafka-server-start.sh config/server.properties &
- #cd ../kafka_5
- # bin/kafka-server-start.sh config/server.properties &

总结
在kafka的核心思路中,不需要在内存里缓存数据,因为操作系统的文件缓存已经足够完善和强大,只要不做随机写,顺序读写的性能是非常高效的。
kafka的数据只会顺序append,数据的删除策略是累积到一定程度或者超过一定时间再删除。Kafka另一个独特的地方是将消费者信息保存在客户端
而不是MQ服务器,这样服务器就不用记录消息的投递过程,每个客户端都自己知道自己下一次应该从什么地方什么位置读取消息,消息的投递过程也是采用客户端
主动pull的模型,这样大大减轻了服务器的负担。Kafka还强调减少数据的序列化和拷贝开销,它会将一些消息组织成Message
Set做批量存储和发送,并且客户端在pull数据的时候,尽量以zero-copy的方式传输,利用sendfile(对应java里的
FileChannel.transferTo/transferFrom)这样的高级IO函数来减少拷贝开销。可见,kafka是一个精心设计,特定于
某些应用的MQ系统,这种偏向特定领域的MQ系统我估计会越来越多,垂直化的产品策略值的考虑。
只要磁盘没有限制并且不出现损失,kafka可以存储相当长时间的消息(一周)。
转:http://www.centoscn.com/CentosServer/cluster/2015/0312/4863.html
Centos安装Kafka集群的更多相关文章
- Centos7.5安装kafka集群
Tags: kafka Centos7.5安装kafka集群 Centos7.5安装kafka集群 主机环境 软件环境 主机规划 主机安装前准备 安装jdk1.8 安装zookeeper 安装kafk ...
- 快速安装 kafka 集群
前言 最近因为工作原因,需要安装一个 kafka 集群,目前网络上有很多相关的教程,按着步骤来也能完成安装,只是这些教程都显得略微繁琐.因此,我写了这篇文章帮助大家快速完成 kafka 集群安装. ...
- CentOS7 安装kafka集群
1. 环境准备 JDK1.8 ZooKeeper集群(参见本人博文) Scala2.12(如果需要做scala开发的话,安装方法参见本人博文) 本次安装的kafka和zookeeper集群在同一套物理 ...
- RedHat6.5安装kafka集群
版本号: Redhat6.5 JDK1.8 zookeeper-3.4.6 kafka_2.11-0.8.2.1 1.软件环境 1.3台RedHat机器,master.slave1. ...
- helm安装kafka集群并测试其高可用性
介绍 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据. 这种动作( ...
- 安装kafka 集群 步骤
1.下载 http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz 2.解压 tar -zxvf kafka_2.11-2.1 ...
- centos安装k8s集群
准备工作 关闭swap,注释swap分区 swapoff -a 配置内核参数,将桥接的IPv4流量传递到iptables的链 cat > /etc/sysctl.d/k8s.conf < ...
- 安装kafka集群
1解压tar包 tar -zxvf kafka_2.-.tgz 2.进入config目录 3.配置server.properties文件 # Licensed to the Apache Softwa ...
- Centos 安装k8s 集群(单master开发环境)
本教程是在VM中搭建K8s 所以第一步骤先配置虚拟机的ip 和上网情况详细参考https://www.cnblogs.com/chongyao/p/9209527.html 开始搭建K8s集群 两台机 ...
随机推荐
- 输入一个数组,求最小的K个数
被这道题困了好久,看了剑指Offer才知道OJ上的要求有点迷惑性. 题目: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 一 ...
- VisualSVN Server HTTPS
目测windows平台当前搭建svn最简单的就是VisualSVN Server 启动https 证书cp下面目录 C:\Program Files\VisualSVN Server\certs 修改 ...
- 【BZOJ-2440】完全平方数 容斥原理 + 线性筛莫比乌斯反演函数 + 二分判定
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2371 Solved: 1143[Submit][Sta ...
- Android成长日记-ViewPager的使用
ViewPager在安卓应用中主要用于作为程序的引导页面,欢迎页面,以及其他的动画效果,下面将给你讲述ViewPager的使用 在Android3.0以上的Api中,提供了ViewPager的接口,所 ...
- Bzoj2683 简单题 [CDQ分治]
Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 1071 Solved: 428 Description 你有一个N*N的棋盘,每个格子内有一个整数, ...
- C++ 之 const references
extraction from The C++ Programming Language 4th. ed., Section 7.7 References, Bjarne Stroustrup To ...
- Alpha版本十天冲刺——Day 2
站立式会议 会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 学习post请求连接服务器,学习git 无 http资源请求方法封装,完成Android验证码获取接口和登录验证接口 今天满课, ...
- GSON使用笔记(1) -- 序列化时排除字段的几种方式
http://blog.csdn.net/zxhoo/article/details/21471005 GSON是Google发布的JSON序列化/反序列化工具,非常容易使用.本文简要讨论在使用GSO ...
- BZOJ3393:[USACO LPHONE] 激光通讯
分层图+堆优化的dijkstra 将原图分为4层,分别是只向上,向下,向左,向右建立边,然后层与层之间的转移很好处理.稠密图,应该用堆优化的dijkstra. //OJ 1845 //by Cydia ...
- SaltStack与ZeroMQ(二)
SaltStack与ZeroMQ SaltStack底层是基于ZeroMQ进行高效的网络通信. ZeroMQ简介 ØMQ (也拼写作ZeroMQ,0MQ或ZMQ)是一个为可伸缩的分布式或并发应用程序设 ...