kafka安装

1.下载安装

  wget http://mirrors.cnnic.cn/apache/kafka/0.8.1.1/kafka_2.9.2-0.8.1.1.tgz

  解压tar -xzvf kafka_2.9.2-0.8.1.1.tgz  之后,查看路径下的文件

  [root@master intalldir]# cd kafka_2.9.2-0.8.1.1/

  [root@master kafka_2.9.2-0.8.1.1]# ll

  total 28

  drwxr-xr-x. 3 root root  4096 Apr 22  2014 bin

  drwxr-xr-x. 2 root root  4096 Apr 22  2014 config

  drwxr-xr-x. 2 root root  4096 Apr 22  2014 libs

  -rw-rw-r--. 1 root root 11358 Apr 22  2014 LICENSE

  -rw-rw-r--. 1 root root   162 Apr 22  2014 NOTICE

  配置环境变量

    vim   /etc/profile

   然后 运行 source /etc/profile使之生效

2.配置kafka

  配置以及启动测试

  (1)首先可以启动kafka自带的ZooKeeper 

  bin/zookeeper-server-start.sh config/zookeeper.properties &(注意要后台启动)

    但是最好使用自己安装的ZooKeeper修改配置文件config/server.properties,修改如下内容:

   查看server.properties

 # Zookeeper connection string (see zookeeper docs for details).

  # This is a comma separated host:port pairs, each corresponding to a zk

  # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".

  # You can also append an optional chroot string to the urls to specify the

  # root directory for all kafka znodes.

   zookeeper.connect=localhost:2181   

   利用逗号zookeeper集群

  配置如下

   zookeeper.connect=master:2181,slave1:2181,slave2:2181

(2)kafka分别复制到slave1slave2

 并修改配置文件config/server.properties内容如下所示:

broker.id=1  # slave1修改broker.id=2  # slave2修改

因为Kafka集群需要保证各个Brokerid在整个集群中必须唯一,需要调整这个配置项的值(如果在单机上,可以通过建立多个Broker进程来模拟分布式的Kafka集群,也需要Brokerid唯一,还需要修改一些配置目录的信息)。 

(3)在集群中的master、slave1、slave2这三个节点上分别启动Kafka,分别执行如下命令:启动前保证zooKeeper已经启动

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

 

(4)可以通过查看日志,或者检查进程状态,保证Kafka集群启动成功。 我们创建一个名称为my-replicated-topic5Topic5个分区,并且复制因子为3,执行如下命令:

bin/kafka-topics.sh --create --zookeeper h1:2181,h2:2181,h3:2181 --replication-factor 3 --partitions 5 --topic my-replicated-topic5

查看创建的Topic,执行如下命令:

bin/kafka-topics.sh --describe --zookeeper h1:2181,h2:2181,h3:2181 --topic my-replicated-topic5

结果信息如下所示:

 

上面LeaderReplicasIsr的含义如下:

Partition: 分区Leader   : 负责读写指定分区的节点Replicas : 复制该分区log的节点列表Isr      : "in-sync" replicas,当前活跃的副本列表(是一个子集),并且可能成为Leader

(5)测试生产和消费

我们可以通过Kafka自带的bin/kafka-console-producer.shbin/kafka-console-consumer.sh脚本,来验证演示如果发布消息、消费消息。 在一个终端,启动Producer,并向我们上面创建的名称为my-replicated-topic5Topic中生产消息,执行如下脚本:

bin/kafka-console-producer.sh --broker-list h1:9092,h2:9092,h3:9092 --topic my-replicated-topic5

在另一个终端,启动Consumer,并订阅我们上面创建的名称为my-replicated-topic5Topic中生产的消息,执行如下脚本:

bin/kafka-console-consumer.sh --zookeeper h1:2181,h2:2181,h3:2181 --from-beginning --topic my-replicated-topic5

可以在Producer终端上输入字符串消息行,然后回车,就可以在Consumer终端上看到消费者消费的消息内容。 也可以参考KafkaProducerConsumerJava API通过API编码的方式来实现消息生产和消费的处理逻辑

### 安装和配置Apache Kafka 在Windows上安装和配置Apache Kafka的过程可以分为几个部分。以下是详细的说明: #### 下载Apache Kafka 可以从Apache Kafka的官方网站下载最新版本的二进制发行版[^1]。 ```bash wget https://downloads.apache.org/kafka/<version>/kafka_<scala-version>-<version>.tgz ``` 解压文件并进入目录: ```bash tar -xzf kafka_<scala-version>-<version>.tgz cd kafka_<scala-version>-<version> ``` #### 配置环境变量 为了方便运行Kafka命令,建议将Kafka的`bin`目录添加到系统的PATH环境中。可以通过编辑`.bashrc`或其他shell初始化脚本来完成此操作: ```bash export PATH=<path-to-kafka-bin>:$PATH source ~/.bashrc ``` #### 启动Zookeeper服务 Kafka依赖于Zookeeper来协调集群中的节点。启动Zookeeper服务前,请确保已正确安装Java JDK,并设置JAVA_HOME环境变量。 ```bash bin/zookeeper-server-start.sh config/zookeeper.properties ``` #### 启动Kafka Broker 接着启动Kafka broker服务: ```bash bin/kafka-server-start.sh config/server.properties ``` 此时,Kafka应该已经成功运行在一个本地单机模式下。 #### 使用UI for Apache Kafka简化管理 对于更复杂的生产环境或者需要可视化管理的情况,可以考虑使用专门设计用于管理和监控Kafka集群的工具,比如UI for Apache Kafka[^2]。这类工具有助于提升效率以及降低人为错误的风险。 ```python import subprocess def start_kafka(): try: zookeeper_process = subprocess.Popen([&#39;bin/zookeeper-server-start.sh&#39;, &#39;config/zookeeper.properties&#39;]) kafka_broker_process = subprocess.Popen([&#39;bin/kafka-server-start.sh&#39;, &#39;config/server.properties&#39;]) # Wait indefinitely or implement a timeout mechanism as needed. zookeeper_process.wait() kafka_broker_process.wait() except Exception as e: print(f"Error starting Kafka services: {e}") start_kafka() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值