萌新篇 —从零开始搭建自己的大数据环境
萌新篇 —从零开始搭建自己的大数据环境
文章目录
前言
我事先创建好了opt文件,该文件里包含data,modules,software,tools,一般我把安装包存放在sofeware解压生成在modules。可以按照我这个方式去做,后期以便文件好找。zookeeper安装参考我前面的文章,这里就不是范例,过程使用的软件Notepad++(在这里修改配置文件比较方便)MobaXterm_Personal_20.2(远程登录linux)FlashFPX(把文件发送到linux上)。
一、kafka简介
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:
1、通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
2、高吞吐量 :即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
3、支持通过Kafka服务器和消费机集群来分区消息。
4、支持Hadoop并行数据加载。
详细讲解点击
二、Kafka配置
1.下载地址
https://kafka.apachecn.org/downloads.html
2.server.properties文件参数
1、broker.id :每一个broker在集群中的唯一标示,要求是正数。在改变IP地址,不改变broker.id的话不会影响consumers。
2、port:提供给客户端响应的端口。
3:、num.network.threads:broker 处理消息的最大线程数,一般情况下不需要去修改。
4、num.io.threads:broker处理磁盘IO 的线程数 ,数值应该大于你的硬盘数。
5、socket.send.buffer.bytes:socket的发送缓冲区,socket的调优参数SO_SNDBUFF。
6、socket.receive.buffer.bytes:socket的接受缓冲区,socket的调优参数SO_RCVBUFF。
7、socket.request.max.bytes:socket请求的最大数值,防止serverOOM,message.max.bytes必然要小于socket.request.max.bytes,会被topic创建时的指定参数覆盖。
8、log.dirs:kafka数据的存放地址。
9、zookeeper.connect:zookeeper集群的地址,可以是多个,多个之间用逗号分割hostname1:port1,hostname2:port2,hostname3:port3
10、zookeeper.connection.timeout.ms:ZooKeeper的连接超时时间。
3.server.properties配置
1、host.name=panda-pro01.xiong.com 修改主机名,注意分发到其他机器要修改对应主机名
2、log.dirs=/opt/modules/kafka_2.11-0.8.2.1/kafka-logs kafka数据的存放地址,kafka-logs自行创建
3、zookeeper.connect=panda-pro01.xiong.com:2181,panda-pro02.xiong.com:2181,panda-pro03.xiong.com:2181 zookeeper集群的地址
4、broker.id=0 三台机器分别对应0,1,2
这里我说明一下kafka基于zookeeper,zookeeper一般要配制三台机器,所以再配置kafka前要提前把zookeeper配制好。
4.producer.properties配置
metadata.broker.list=panda-pro01.xiong.com:9092 改成自己主机名
5.启动服务
先把zookeeper全部启动起俩
bin/kafka-server-start.sh config/server.properties 启动服务器
bin/kafka-topics.sh --create --zookeeper panda-pro01.xiong.com:2181,panda-pro02.xiong.com:2181,panda-pro03.xiong.com:2181 --replication-factor 1 --partitions 1 --topic test 创建一个 topic
bin/kafka-console-producer.sh --broker-list panda-pro01.xiong.com:9092,panda-pro02.xiong.com:9092,panda-pro01.xiong.com:9092,panda-pro03.xiong.com:9092 --topic test 发送端
bin/kafka-console-consumer.sh --zookeeper panda-pro01.xiong.com:2181,panda-pro02.xiong.com:2181, panda-pro03.xiong.com:2181 --topic test --from-beginning 接收端
启动服务器
创建一个 topic
发送端输入内容
接收端接收的内容
注意
上图报的错误是topic文件已经存在了,可能是我创建过一次,没注意,在此运行时报了这个错误,找了好多解决办法试了好久,最后发现文件已经存在,只需要修改重新换一个名字就可以解决了。
总结
关于kafka基本配置就到这里了,萌新一位,若有不足之处,还请指正。😎😎