文史百科 centos中怎么安装kafka
Posted 节点
篇首语:天才就是百分之九十九的汗水加百分之一的灵感。本文由小常识网(cha138.com)小编为大家整理,主要介绍了文史百科 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为例
#tar -xvf kafka_2.10-0.8.2.0.tgz
# cd kafka_2.10-0.8.2.0
配置
修改config/server.properties
[] view plaincopyprint?
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服务
[] view plaincopyprint?
#bin/kafka-server-start.sh config/server.properties
创建Topic
[] view plaincopyprint?
#bin/kafka-topics.sh --create --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181 --replication-factor 1 --partitions 1 --topic test
查看Topic
[] view plaincopyprint?
#bin/kafka-topics.sh --list --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181
输出:
producer发送消息
[] view plaincopyprint?
#bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
consumer接收消息
[] view plaincopyprint?
#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
[] view plaincopyprint?
#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属性,确保唯一性
[] view plaincopyprint?
kafka_2/config/server.properties
broker.id=2
port=9093
kafka_3/config/server.properties
broker.id=3
port=9094
启动
启动另外两个Broker
[] view plaincopyprint?
#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
[] view plaincopyprint?
#bin/kafka-topics.sh --create --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
查看Topic的状态
[] view plaincopyprint?
bin/kafka-topics.sh --describe --zookeeper hadoop107:2181,hadoop104:2181,hadoop108:2181 --topic my-replicated-topic
从上面的内容可以看出,该topic包含1个part,replicationfactor为3,且Node3 是leador
解释如下:
"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.
再来看一下之前创建的test topic, 从下图可以看出没有进行replication
多个节点的多个Broker
在hadoop105上分别把下载的文件解压缩到kafka_4,kafka_5两个文件夹中,再将hadoop104上的server.properties配置文件拷贝到这连个文件夹中
[] view plaincopyprint?
#scp -r config/ root@hadoop105:/root/hadoop/kafka_4/
#scp -r config/ root@hadoop105:/root/hadoop/kafka_5/
配置
并分别修改内容如下:
[] view plaincopyprint?
kafka_4
brokerid=4
port=9095
host.name=hadoop105
kafka_5
brokerid=5
port=9096
host.name=hadoop105
启动服务
[] view plaincopyprint?
#cd kafka_4
# bin/kafka-server-start.sh config/server.properties &
#cd ../kafka_5
# bin/kafka-server-start.sh config/server.properties &
到目前为止,两台物理机上的5个Broker已经启动完毕
总结
在kafka的核心思路中,不需要在内存里缓存数据,因为操作系统的文件缓存已经足够完善和强大,只要不做随机写,顺序读写的性能是非常高效的。
kafka的数据只会顺序append,数据的删除策略是累积到一定程度或者超过一定时间再删除。
Kafka另一个独特的地方是将消费者信息保存在客户端而不是MQ服务器,这样服务器就不用记录消息的投递过程,每个客户端都自己知道自己下一次应该从什么地方什么位置读取消息,消息的投递过程也是采用客户端主动pull的模型,这样大大减轻了服务器的负担。
Kafka还强调减少数据的序列化和拷贝开销,它会将一些消息组织成Message Set做批量存储和发送,并且客户端在pull数据的时候,尽量以zero-copy的方式传输,利用sendfile(对应java里的FileChannel.transferTo/transferFrom)这样的高级IO函数来减少拷贝开销。
可见,kafka是一个精心设计,特定于某些应用的MQ系统,这种偏向特定领域的MQ系统我估计会越来越多,垂直化的产品策略值的考虑。
相关参考
如何构建安全的Kafka集群 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Kafka是由LinkedIn设计的
如何构建安全的Kafka集群 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Kafka是由LinkedIn设计的
1、有事出门无牵挂,安全先把火源查。2、报警器,防盗器,装到家中安全器;电子眼,红外线,扫描门窗气死贼。3、门上的“锁”不可少;心中的“锁”更重要。4、钱财外露扎人眼,偷夺骗抢随时来。5、安全防范人人
(行事)三安居之一。见安居条。
(行事)三安居之一。见安居条。
四种有情众中安立杂染瑜伽八十五卷十九页云:复次有四种有情众,当知于中,安立杂染。何等为四?一者、外道有情众。二者、此法异生有情众。三者、有学有情众。四者、无学有情众。外道有情众中,具有一切。此法异生有
四种有情众中安立杂染瑜伽八十五卷十九页云:复次有四种有情众,当知于中,安立杂染。何等为四?一者、外道有情众。二者、此法异生有情众。三者、有学有情众。四者、无学有情众。外道有情众中,具有一切。此法异生有
解密电视剧中安科长的扮演者是印小天安能演员印小天36岁,701行动处副处长。心胸阔达,温情善良。看到容金珍的成长环境与他相似,心生怜悯,所以处处帮助容金珍。在与敌特交火过程中,为保护计算机而牺牲。基本
解密电视剧中安科长的扮演者是印小天安能演员印小天36岁,701行动处副处长。心胸阔达,温情善良。看到容金珍的成长环境与他相似,心生怜悯,所以处处帮助容金珍。在与敌特交火过程中,为保护计算机而牺牲。基本
解密电视剧中安科长的扮演者是印小天安能演员印小天36岁,701行动处副处长。心胸阔达,温情善良。看到容金珍的成长环境与他相似,心生怜悯,所以处处帮助容金珍。在与敌特交火过程中,为保护计算机而牺牲。基本