kafaka安装测试

一、java环境的配置

1.登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载并安装jdk1.8,在usr目录下建立java安装目录,解压  

tar -zxvf jdk-8u152-linux-x64.tar.gz
mkdir  /usr/local/java
mv jdk1.8.0_152/ /usr/local/java/

2.编辑配置文件,配置系统环境变量

vi /etc/environment

 在文本的末尾添加如下内容(pwd 可以显示当前目录)

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export JAVA_HOME=/usr/local/java/jdk1.8.0_152
export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

配置用户环境变量

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

export JAVA_HOME=/usr/local/java/jdk1.8.0_152
export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

source /etc/profile 使用户环境变量生效

kafaka安装测试_第1张图片

3.查看安装情况

java -version 

二、下载kafka

kafaka安装测试_第2张图片

2.1解压安装包

kafaka安装测试_第3张图片

2.2配置kafka(/usr/local/kafka/kafka_2.11-2.3.1/config    pwd可查看路径)server.properties

创建kafka日志目录  mkdir /usr/local/kafka/log/kafka

进入配置目录    cd  /usr/local/kafka/kafka_2.11-2.3.1/config   

vi server.properties #编辑修改相应的参数 如下:(详见 http://blog.csdn.net/lizhitao/article/details/25667831)

broker.id=0
#删除 topic 功能使能
delete.topic.enable=true

port=9092 #kafka端口号
host.name=192.168.1.114 #服务器IP地址
log.dirs=/usr/local/kafka/log/kafka #日志存放路径,上面创建的目录
zookeeper.connect=192.168.1.114:2181 #zookeeper地址和端口,单机配置部署,localhost:2181

2.3配置Zookeeper

创建Zookeeper目录    mkdir /usr/local/kafka/zookeeper

创建Zookeeper日志目录 mkdir /usr/local/kafka/log/zookeeper

进入配置目录 cd  /usr/local/kafka/kafka_2.11-2.3.1/config 

vi zookeeper.properties 编辑配置参数如下:

dataDir=/usr/local/kafka/zookeeper

dataLogDir=/usr/local/kafka/log/zookeeper
# the port at which the clients will connect
#clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
#maxClientCnxns=0

clientPort=2181

maxClientCnxns=100

tickTime=2000

initLimit=10

syncLimit=5

 

2.4创建启动关闭kafka的脚本

cd /usr/local/kafka

创建启动脚本

vi kafkastart.sh #编辑,添加以下代码


#启动zookeeper

/usr/local/kafka/kafka_2.11-2.3.1/bin/zookeeper-server-start.sh /usr/local/kafka/kafka_2.11-2.3.1/config/zookeeper.properties &

sleep 3 

#等3秒后执行

#启动kafka

/usr/local/kafka/kafka_2.11-2.3.1/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.11-2.3.1/config/server.properties &

 

创建关闭脚本

#关闭
/usr/local/kafka/kafka_2.11-2.3.1/bin/zookeeper-server-stop.sh /usr/local/kafka/kafka_2.11-2.3.1/config/zookeeper.properties &

sleep 3 

#等3秒后执行

#关闭kafka

/usr/local/kafka/kafka_2.11-2.3.1/bin/kafka-server-stop.sh /usr/local/kafka/kafka_2.11-2.3.1/config/server.properties &

 

添加脚本执行权限(777)

chmod +x kafkastart.sh

chmod +x kafkastop.sh

 

三、kafka样例测试(单节点-单代理配置)

1.创建kafka的topic1.创建Topic(2181 是zookeeper 端口)
运行命令: ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test1(主题)

选项说明:
--topic 定义 topic 名  test1
--replication-factor 定义副本数  1
--partitions 定义分区数   1


2.查看当前服务器中的所有 topic
bin/kafka-topics.sh --zookeeper localhost:2181 --list

3.删除 topic(需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除。)
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test1cd ..

4.启动生产者发送消息(新建消息)
 bin/kafka-conbinsole-producer.sh --broker-list localhost:9092  --topic test1
>hello world(输入内容)

5.启动消费者以接收消息

bin/kafka-console-consumer.sh --bootstrap-server  localhost:9092 --from-beginning --topic first

--from-beginning:会把主题中以往所有的数据都读取出来。9092是kafka单机启动的端口

如果想实时显示的话则去掉后面的   --from-beginning

四、kafka样例测试(单节点-多代理配置)

kafka单机模型指的是只在一台服务器上部署一个kafka实例(broker)。首先进入配置文件目录下编写broker配置文件。kafka解压包中的config目录下已经有了一份现成的broker配置文件server.properties,我们将其中的部分内容进行修改已达到自己想要的状态,在实际的生产过程中,对kafka的应用一般不会只使用一台服务器,都是通过多台服务器搭建kafka集群环境,这样才能体现出kafka的易扩展性、高吞吐量和安全性。由于只有一个PC机,没有集群环境,所以我么可以搭建一个kafka伪集群模型来模拟kafka集群模型。

kafka启动命令中需要携带broker配置文件作为参数,而broker也就代表着kafka集群中的每台服务器,所以我们要模拟一个有N台服务器的kafka集群,就需要编写N个broker配置文件。由于是在一个机器上模拟多台broker,所以每个broker的host.name 均相同,但port一定不能一样,否则就会后面启动的broker就会因为端口占用而不会正确启动。

config中vim编辑server-one.properties(三个地方不能相同 broker.id     port        log.dirs)

kafaka安装测试_第4张图片

broker.id=1


#删除 topic 功能使能
delete.topic.enable=true

port=9093
host.name=192.168.1.114
#delete.topic.enable=true
#listeners=PLAINTEXT:0.0.0.0:9092 #可以不用配置,默认本机
#advertised.listeners=PLAINTEXT:192.168.1.248:9092  

log.dirs=/usr/local/kafka/log/kafka-1
zookeeper.connect=192.168.1.114:2181

在Zookeeper启动的前提下启动两个broker

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

在伪集群中创建新的topic:wule,并设置partitions为2,replication-factor为2,命令如下:

bin/kafka-topics.sh --create --zookeeper 192.168.1.114:2181 --replication-factor 2 -partitions 1 --topic test2

输出 Created topic test2.

 Describe 命令用于检查哪个代理正在侦听当前创建的主题,如下所示 

启动生产者发送消息:

bin/kafka-console-producer.sh --broker-list 192.168.1.114:9092  --topic test2

启动消费者消费消息

bin/kafka-console-consumer.sh --bootstrap-server  192.168.1.114:9092 --from-beginning --topic test2

 

 

 

 

补充:

1.创建Topic(2181 是zookeeper 端口)
运行命令: ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test1

选项说明:
--topic 定义 topic 名  test1
--replication-factor 定义副本数  1
--partitions 定义分区数   1


2.查看当前服务器中的所有 topic
bin/kafka-topics.sh --zookeeper localhost:2181 --list


3.删除 topic(需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除。)
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test1cd ..


4.发送消息(新建消息)
 bin/kafka-console-producer.sh --broker-list localhost:9092  --topic test1
>hello world(输入内容)

5.消费消息

 bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test1

 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic first

bin/kafka-console-consumer.sh --bootstrap-server  192.168.1.114:9092 --from-beginning --topic first

--from-beginning:会把主题中以往所有的数据都读取出来。9092是kafka单机启动的端口

6.查看某个 Topic 的详情

bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic first

7.修改分区数
bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic first --partitions 6
==========================================================
1.Producer :消息生产者,就是向 kafka broker 发消息的客户端;
2.Consumer :消息消费者,向 kafka broker 取消息的客户端;
3.Consumer Group (CG ):消费者组,由多个 consumer 组成。 消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个 组内 消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即 消费者组是逻辑上的一个订阅者。
4.Broker :一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker可以容纳多个 topic。
5.Topic :可以理解为一个队列, 生产者和消费者面向的都是一个 topic
6.Partition :为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个partition,每个 partition 是一个有序的队列;
7.Replica:副本,为保证集群中的某个节点发生故障时,该节点上的 partition 数据不丢失,且 kafka 仍然能够继续工作,kafka 提供了副本机制,一个 topic 的每个分区都有若干个副本,一个 leader 和若干个 follower。
8 leader :每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 leader。
9 follower :每个分区多个副本中的“从”,实时从 leader 中同步数据,保持和 leader 数据的同步。leader 发生故障时,某个 follower 会成为新的 follower。

 

 

 

 

 

你可能感兴趣的:(分布式)