编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

kafka集群搭建

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

安装scala

  • 下载scala

  • 将下载的scala包解压缩到/usr/local文件夹下

  • 修改scala文件夹名字为scala

  • 配置环境变量

  • 按照上述步骤在spark2spark3机器上都安装好scala。使用scpscala.bashrc拷贝到spark2spark3上即可。

安装kafka

  • 下载kafka

  • 将下载的kafka包解压缩到/usr/local文件夹下

  • 修改kafka文件夹名字为kafka

  • 配置kafka

`sh vi /usr/local/kafka/config/server.properties

broker.id:# 依次增长的整数,0、1、2、3、4,集群中Broker的唯一id zookeeper.connect=192.168.75.111:2181,192.168.75.112:2181,192.168.75.113:2181`

  • 安装slf4j,将slf4j解压到/usr/local/目录下

  • slf4j中的slf4j-nop-*.jar复制到kafkalib目录下面

搭建kafka集群

  • 按照上述步骤在spark2和spark3分别安装kafka。用scp把kafka拷贝到spark2和spark3行即可。

  • 唯一区别的,就是server.properties中的broker.id,要设置为1和2

启动kafka集群

  • 在三台机器上分别执行以下命令:

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

  • 解决kafka Unrecognized VM option 'UseCompressedOops'问题

`sh vi bin/kafka-run-class.sh if [ -z "$KAFKAJVMPERFORMANCEOPTS" ]; then  KAFKAJVMPERFORMANCEOPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true" fi

去掉-XX:+UseCompressedOops即可

`

  • 使用jps检查启动是否成功

测试kafka集群

  • 使用基本命令检查kafka是否搭建成功

`sh

在spark1上创建一个TestTopic

bin/kafka-topics.sh --zookeeper 192.168.75.111:2181,192.168.75.112:2181,192.168.75.113:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create

在spark1上创建一个TestTopic的生产者

bin/kafka-console-producer.sh --broker-list 192.168.75.111:9092,192.168.75.112:9092,192.168.75.113:9092 --topic TestTopic

打开spark1的另一个session,创建一个TestTopic的消费者

bin/kafka-console-consumer.sh --zookeeper 192.168.75.111:2181,192.168.75.112:2181,192.168.75.113:2181 --topic TestTopic --from-beginning

然后在生产者出输入

hello world

相应的在消费者处也会产生

hello world`

未经允许不得转载: 技术文章 » 大数据 » kafka集群搭建