xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 IT之家 2019-10-17 00:53 的文章
当前位置: 新濠国际登录平台 > IT之家 > 正文

同时也可以让其他需要zookeeper的服务使用,使用

Zookeeper+Kafka的单节点配置

环境描述:Ubuntu16.04 server系统,在系统上搭建Java环境,jdk的版本为1.8或更高,我的服务器IP地址为192.168.0.106。

 

1. 使用命令在根目录下的opt目录下创建data目录。

mkdir /opt/data

 

  1. 在Apache官网http://www.apache.org/dyn/closer.cgi/zookeeper/和https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz

上下载zookeeper和kafka的压缩包,我下载的是zookeeper-3.4.10.tar.gz和kafka_2.11-0.10.1.0.gz。

 

3. 使用命令对zookeeper和kafka压缩文件进行解压,对解压后的文件进行改名和移动位置,移动到/opt/data目录下。

tar -zxvf zookeeper-3.4.10.tar.gz
tar -zxvf kafka_2.11-0.10.1.0.gz

新濠国际登录平台 1

 

4. 使用命令增加zookeeper节点的IP如下附图所示。

vim /etc/hosts

新濠国际登录平台 2

 

  1. 使用命令

    cd /opt/data/zookeeper/conf

进入zookeeper目录下的conf目录,使用命令

cp zoo_sample.cfg zoo.cfg

复制文件zoo.cfg,使用命令

vim zoo.cfg

修改该文件。同时,在/opt/data/zookeeper下创建data目录和logs目录,在/opt/data/zookeeper/data下创建文件myid,使用命令

echo 1 > myid

在文件myid中写入1。

 新濠国际登录平台 3

 

============================================================================================================================================

在此zookeeper的配置已经完成。

============================================================================================================================================

 

  1. 使用命令

    vim /opt/data/kafka/config/server.properties

修改kafka的配置文件,同时使用命令

mkdir /opt/data/kafka/kafka-logs

创建目录,修改内容如下附图所示。

新濠国际登录平台 4

新濠国际登录平台 5

 

============================================================================================================================================

在此kafka的配置已经完成。

============================================================================================================================================

 

测试zookeeper和kafka的配置是否成功:

1. 启动zookeeper:在/opt/data/zookeeper目录下使用命令

bin/zkServer.sh start

启动zookeeper。使用命令

bin/zkServer.sh status

查看zookeeper的状态,如果现实如下图所示的状态表示zookeeper配置成功。

新濠国际登录平台 6

 

 

2.启动kafka:在/opt/data/kafka目录下使用命令

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

启动kafka,显示以下信息为成功启动kafka。

新濠国际登录平台 7

 

3. 创建会话topic:打开新的终端(我们暂记为终端1),在/opt/data/kafka目录下使用命令

bin/kafka-topics.sh --create --zookeeper 192.168.0.106:2181 --replication-factor 1 --partitions 1 --topic test1

创建会话test1,使用命令

bin/kafka-topics.sh --list --zookeeper 192.168.0.106:2181

查看会话列表,显示以下信息为成功创建会话。

新濠国际登录平台 8

 

4.启动生产者Producer发消息:在/opt/data/kafka目录下使用命令

bin/kafka-console-producer.sh --broker-list 192.168.0.106:9092 --topic test1

启动消息生产者。

 

5.启动消费者Consumer接收消息:再打开一个新的终端(我们暂记为终端2),在/opt/data/kafka目录下使用命令

bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.106:9092 --from-beginning --topic test1

来接收消息。

 

6.在生产者Producer所在的终端1里随便输入一些内容,消费者Consumer所在的终端2将会实时的捕获终端1里发出的消息。如下表示成功建立会话,kafka和zookeeper的单节点配置圆满成功。

新濠国际登录平台 9

新濠国际登录平台 10

 

7.删除会话topic:在/opt/data/kafka目录下使用命令

bin/kafka-topics.sh --delete --zookeeper 192.168.0.106:2181 --topic test1

再使用命令

bin/kafka-topics.sh --list --zookeeper 192.168.0.106:2181

查看会话是否存在,如下图所示,表示会话test1删除成功。

新濠国际登录平台 11

 

组件以及版本:

1 ZooKeeper框架安装

步骤1.1 - 下载ZooKeeper
要在您的机器上安装ZooKeeper框架,请访问以下链接并下载最新版本的ZooKeeper。

http://zookeeper.apache.org/releases.html
截至目前,ZooKeeper的最新版本为3.4.6(ZooKeeper-3.4.6.tar.gz)。

步骤1.2 - 提取tar文件
使用以下命令提取tar文件

$ cd opt/
$ tar -zxf zookeeper-3.4.6.tar.gz
$ cd zookeeper-3.4.6
$ mkdir data

步骤1.3 - 创建配置文件
使用命令vi“conf / zoo.cfg” 打开名为conf / zoo.cfg的配置文件,并将所有以下参数设置为起始点。

$ vi conf/zoo.cfg
tickTime=2000
dataDir=/path/to/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2

一旦配置文件成功保存并再次返回终端,就可以启动zookeeper服务器。

步骤1.4 - 启动ZooKeeper服务器

$ bin/zkServer.sh start

执行此命令后,您会得到如下所示的响应:

$ JMX enabled by default
$ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg
$ Starting zookeeper ... STARTED

步骤1.5 - 停止Zookeeper服务器
连接服务器并执行所有操作后,可以使用以下命令停止zookeeper服务器 -

$ bin/zkServer.sh stop

现在,您已经在您的机器上成功安装了Java和ZooKeeper。让我们看看安装Apache Kafka的步骤。

kafka集群依赖于zookeeper,所以需要先搭建zookeeper集群,kafka默认自带了内建的zookeeper,建议使用自己外搭建的zookeeper,这样比较灵活并且解耦服务,同时也可以让其他需要zookeeper的服务使用。注意kafka-2.11-0.11版本与zookeeper-3.4.10.tar.gz对应,

Zookeeper:zookeeper-3.4.11.tar.gz

2 - Apache Kafka安装

让我们继续以下步骤在您的机器上安装Kafka。

步骤2.1 - 下载kafka
要在您的机器上安装Kafka,请点击下面的链接 -

https://www.apache.org/dyn/closer.cgi?path=/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz
现在最新的版本,即 - kafka_2.11_0.9.0.0.tgz将被下载到你的机器上。

步骤2.2 - 提取tar文件
使用以下命令提取tar文件 -

$ cd opt/
$ tar -zxf kafka_2.11.0.9.0.0 tar.gz
$ cd kafka_2.11.0.9.0.0

现在您已经在您的机器上下载了最新版本的Kafka。

步骤2.3 - 启动服务器
您可以通过以下命令启动服务器 -

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

服务器启动后,您将在屏幕上看到以下响应:

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

[2016-01-02 15:37:30,410] INFO KafkaConfig values:
request.timeout.ms = 30000
log.roll.hours = 168
inter.broker.protocol.version = 0.9.0.X
log.preallocate = false
security.inter.broker.protocol = PLAINTEXT
 

Flume:apache-flume-1.7.0-bin.tar.gz

步骤2.4 - 停止服务器

执行所有操作后,可以使用以下命令停止服务器 -

$ bin/kafka-server-stop.sh config/server.properties

一、安装

Kafka:kafka_2.11-0.11.0.0.tgz

3 kafka操作

1、下载zookeeper:

1、安装Zookeeper

下载路径:http://zookeeper.apache.org/releases.html

https://www.apache.org/dyn/closer.cgi/zookeeper/

拷贝文件到对应主机

(1)cp or SSH Secure File Transfer Client

(2)解压缩 tar -zvxf zookeeper-3.4.11.tar.gz

(3)mv **** /opt/zookeeper

目录:

/bin    执行目录

/conf    配置目录

/lib    依赖包

(4)修改配置文件顺带添加一下data和log目录

/conf 目录下 有示例 zoo_sample.cfg,cp 到 zoo.cfg

tickTime=2000: Zk的基本单位时间,单位ms

initLimit =10集群模式下,Follower与Leader之间建立连接时的最大心跳间隔数

syncLimit =5集群模式下,Follower与Leader之间通信时的最大心跳间隔数

dataDir  存储数据目录

logDir    存储日志目录

ClientPort 端口号 默认2181

单机模式下只需要配置如上:(不确定initLimit和syncLimit是否可以不配置,但理解上应该可以)

集群模式下还需要配置服务器组:

server.x = ip:2888:3888

在对应服务器的data目录下要建立myid文件,内容为“x”

2888指这个服务器与Leader之间交换信息的端口

3888指选举Leader时所用的端口

集群模式剩下的以后再补充

(5)启动zookeeper

bin目录下的 zkServer.sh start 用于启动zookeeper服务

bin/zkServer.sh start

start可以换成stop status等其他命令

bin/zkCli.sh -server用于启动一个zookeeper客户端


3.1 创建topic

[root@192-168-123-169 bin]# ./kafka-topics.sh   --create --topic test --replication-factor 1 --partitions 1 --zookeeper localhost:2181
Created topic "test".

# wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

2、安装Flume

下载路径:http://flume.apache.org/download.html

(1)基本步骤同上,解压缩,拷贝文件

(2)目录结构

/bin 执行文件目录

/conf  配置文件目录

/lib    依赖目录

/tools    辅助工具目录

(3)拷贝配置文件示例 flume-conf.properties.template 和 flume-env.sh.template

命名为 flume.conf 以及 flume-env.sh

flume.conf 配置 source、channel、sink等信息

flume-env.sh 配置启动信息

配置JAVA_HOME,如果用Linux自带Jdk,也可以不配置,可以直接使用

(4)启动 Flume

bin/flume-ng agent --conf conf --conf-flie flume.conf --name agent1 -Dflume.root.logger=INFO,console

--conf 配置文件目录

--conf-file 配置文件

--name agent名

-Dflume应该是定义一个变量,日志级别?(不确定)


3.2 在topic中发送消息

[root@192-168-123-169 bin]# ./kafka-console-producer.sh --topic test --broker-list 192.168.123.169:9092
abc
ddd
aaa
ddd
whoami

生产环境使用集群至少需要三台服务器,官方建议至少3或5台,并且集群节点个数必须是奇数。需要java环境,jdk1.8+(自己先配置好,本文不涉及)。

3、安装Kafka

下载路径:http://kafka.apache.org/downloads

(1)基本步骤同上,解压缩,拷贝文件

(2)目录结构

/bin 执行文件目录

/config 配置文件目录

/lib    依赖目录

/logs 日志数据目录

(3)修改配置文件

server.properties

broker.id =  0

port = 9092

listeners = PLAINTERXT:// "ip:port"

配置个人搭建的 zookeeper 

zookeeper.connect = ip:port

zookeeper.connect.timeout.ms = 6000

修改 producer.properties 以及 consumer.properties 可以启动 produce和consumer对kafka的topic进行生产和消费

也可以直接在启动时直接带参数

搭建集群时,拷贝配置文件 修改broker.id、

(4)启动

//kafka start

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

//kafka 消费者

bin/kafka-console-consumer.sh --zookeeper “ip”:2181 --topic topic --from-beginning

//kafka 生产者

bin/kafka-console-producer.sh --broker-list “ip”:9092 --topic topic


3.3 消费者接受消息

[root@192-168-123-169 kafka_2.11-0.9.0.0]# bin/kafka-console-consumer.sh --zookeeper  127.0.0.1:2181  --from-beginning --topic test
abc
ddd
aaa
ddd
whoami

创建目录:

遇到的坑

在配置kafka的listener的时候没有用ip地址,而使用了localhost。而在Flume中用的是ip地址,因此出现Flume认不到Kafka的情况,无法生产到Kafka的Topic中

另外,修改配置文件的时候,我这里可以在window系统下改了再拷贝进去,方便一点,但不专业

#mkdir  /data

#mkdir  /data/zookeeper/{data,logs}  -p

#tar xf zookeeper-3.4.10.tar.gz

#rm -rf zookeeper-3.4.10.tar.gz

修改配置文件:

创建配置文件zoo.cfg

#新濠国际登录平台,cat  zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
clientPort=2181
maxClientCnxns=100
autopurge.snapRetainCount=3
autopurge.purgeInterval=24
quorumListenOnAllIPs=true
dataLogDir=/data/zookeeper/logs
server.3=10.10.11.92:2888:3888
server.6=10.10.9.29:2888:3888
server.9=10.10.8.16:2888:3888 

创建myid,用于唯一标示一个zk节点,在创建的/data/zookeeper/data目录下面创建:

本文由新濠国际登录平台发布于IT之家,转载请注明出处:同时也可以让其他需要zookeeper的服务使用,使用

关键词: