Linux下kafka单机版搭建

打印 上一主题 下一主题

主题 907|帖子 907|积分 2731

1.zookeeper的安装

   这里使用3.6.4版本
  条件:服务器已经安装了jdk,zookeeper运行必要jdk环境
  1.1创建放zookeeper的目录

  1. #创建目录
  2. mkdir -p /usr/local/zookeeper
  3. #赋予权限
  4. chmod 777 /usr/local/zookeeper
复制代码
1.2安装包的下载

  1. #这里推荐去官网下载
  2. https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz
复制代码
1.3放置安装包并解压

  1. #切换到创建的目录
  2. cd /usr/local/zookeeper
  3. #将下载的包放在该目录
  4. #解压该目录
  5. tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz
  6. #重命名
  7. mv apache-zookeeper-3.6.4-bin zookeeper-3.6.4
复制代码
1.4修改配置文件

  1. #进入配置文件目录
  2. cd /usr/local/zookeeper/zookeeper-3.6.4/conf
  3. #复制原有的配置文件并改名
  4. cp zoo_sample.cfg zoo.cfg
  5. #修改配置文件
  6. vim zoo.cfg
  7. #内容如下:
  8. # 数据文件夹
  9. dataDir=/usr/local/zookeeper/zookeeper-3.6.4/data
  10.    
  11. # 日志文件夹
  12. dataLogDir=/usr/local/zookeeper/zookeeper-3.6.4/logs
  13. # 客户端访问 zookeeper 的端口号
  14. clientPort=2181
  15. #退出保存zoo.cfg
  16. :wq
复制代码
1.5添加环境变量

  1. #编辑环境变量文件
  2. vim /etc/profile
  3. #尾部添加如下内容
  4. export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.6.4/
  5. export PATH=$ZOOKEEPER_HOME/bin:$PATH
  6. export PATH
  7. #退出保存
  8. :wq
  9. #重新执行一下
  10. source /etc/profile
复制代码
1.6测试zookeeper启动

  1. #进入bin目录
  2. cd /usr/local/zookeeper/zookeeper-3.6.4/bin
  3. #启动服务
  4. zkServer.sh start
  5. ZooKeeper JMX enabled by default
  6. Using config: /usr/local/zookeeper/zookeeper-3.6.4/bin/../conf/zoo.cfg
  7. Starting zookeeper ... STARTED
  8. 出现这个就是成功了
  9. #查看状态
  10. zkServer.sh status
  11. #关闭服务
  12. zkServer.sh stop
  13. #重启服务
  14. zkServer.sh restart
复制代码
2.kafka的安装

2.1下载kafka

   下载地点:Apache Kafka
  

这里两个,第一个带源码我们可以下载下来检察对应的zookeeper版本
解压后的gradle/dependencies.gradle文件里面有zookeeper版本号
2.2创建目录

  1. mkdir -p /opt/kafka  #y用于存放kafka的解压包
  2. mkdir -p /opt/kafka/kafka_data #用于存放kafka的数据
  3. mkdir -p /opt/kafka/kafka_log #用于存放kafka的日志
复制代码
2.3将kafka解压

将下载的kafka放在/opt/kafka下
  1. #解压
  2. tar -zxvf kafka_2.12-3.4.1.tgz
复制代码
2.4配置kafka服务

  1. cd /opt/kafka/kafka_2.12-3.4.1/config
  2. vim server.properties
  3. #修改一下参数
  4. broker.id=0
  5. #端口号
  6. port=9092   
  7. #服务器IP地址,修改为自己的服务器IP
  8. host.name=localhost
  9. #日志存放路径,上面创建的目录
  10. log.dirs=/opt/kafka/kafka_log
  11. #zookeeper地址和端口,单机配置部署,localhost:2181
  12. zookeeper.connect=localhost:2181         
复制代码
2.5启动kafka

  1. /opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties
复制代码
2.6测试

   条件开启两个终端,一个生产者,一个消耗者
  2.6.1生产者

  1. cd /opt/kafka/kafka_2.12-3.4.1/bin
  2. ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
复制代码
2.6.2消耗者

  1. cd /opt/kafka/kafka_2.12-3.4.1/bin
  2. ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
复制代码
3.脚本设计

   上面都是手动启动,这里可以考虑写一个脚本,自动去启动
  3.1启动脚本

  1. cd /opt/kafka/kafka_2.12-3.4.1/binvim kafka_start.sh#内容如下:#!/bin/bash#echo "启动zookeeper服务..."sh /usr/local/zookeeper/zookeeper-3.6.4/bin/zkServer.sh startsleep 5echo "启动kafka服务..."/opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties
  2. &i
复制代码
3.2关闭脚本

  1. cd /opt/kafka/kafka_2.12-3.4.1/bin
  2. vim kafka_stop.sh
  3. #内容如下:
  4. #!/bin/bash
  5. echo "启动zookeeper服务..."
  6. sh /usr/local/zookeeper/zookeeper-3.6.4/bin/zkServer.sh stop
  7. sleep 5
  8. echo "启动kafka服务..."
  9. /opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-stop.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties
复制代码
3.3给脚本赋予权限

  1. chmod +x kafka_start.sh
  2. chmod +x kafka_stop.sh
复制代码
3.4设置开机自启

  1. vi /etc/rc.d/rc.local #编辑,在最后添加一行
  2. sh /opt/kafka/kafka_2.12-3.4.1/kafka_start.sh & #设置开机自动在后台运行脚本
复制代码
4.内网穿透

   在kafka的配置文件server.properties里面设置如下
  1. ############################# Socket Server Settings #############################
  2. # The address the socket server listens on. It will get the value returned from
  3. # java.net.InetAddress.getCanonicalHostName() if not configured.
  4. #   FORMAT:
  5. #     listeners = listener_name://host_name:port
  6. #   EXAMPLE:
  7. #     listeners = PLAINTEXT://your.host.name:9092
  8. #listeners=PLAINTEXT://:9092
  9. listeners=PRIVATE://0.0.0.0:9093,PUBLIC://0.0.0.0:9092
  10. auto.create.topics.enable=true
  11. # Hostname and port the broker will advertise to producers and consumers. If not set,
  12. # it uses the value for "listeners" if configured.  Otherwise, it will use the value
  13. # returned from java.net.InetAddress.getCanonicalHostName().
  14. #advertised.listeners=PLAINTEXT://your.host.name:9092
  15. #修改为外网ip
  16. advertised.listeners=PRIVATE://192.168.150.203:9093,PUBLIC://10.140.211.88:9092
  17. inter.broker.listener.name=PRIVATE
  18. listener.security.protocol.map=PRIVATE:PLAINTEXT,PUBLIC:PLAINTEXT
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

篮之新喜

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表