ubuntu14.0.4安装kafka
1. 下载 zookeeper-3.4.12
2 配置Zookeeper
进入 zookeeper 的 conf 目录下,找到 zoo_sample.cfg 文件。首先将 zoo_sample.cfg 文件备份,并重命名为 zoo.cfg
blockchain@Dao:~/zookeeper-3.4.13/conf$ cp zoo_sample.cfg zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/blockchain/tmp/zookeeper
#dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
其中,
tickTime:zookeeper 服务器之间或客户端与服务器之间心跳的时间间隔。
dataDir:zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort:zookeeper 服务器监听端口,用来接受客户端的访问请求。
maxClientCnxns:zookeeper能够接收的最大客户端连接数。
dataDir 默认是 /tmp/zookeeper,由于 /tmp 是 Ubuntu 的 临时目录,这个路径下的数据不能长久保存,因此需要指定到别的目录。
3. 启动 Zookeeper
blockchain@Dao:~/zookeeper-$ blockchain@Dao:~/zookeeper-$ ./bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /home/blockchain/zookeeper-/bin/../conf/zoo.cfg Starting zookeeper ... STARTED blockchain@Dao:~/zookeeper-$ blockchain@Dao:~/zookeeper-$ jps Jps QuorumPeerMain blockchain@Dao:~/zookeeper-$
使用 status 参数来查看 zookeeper 的状态
blockchain@Dao:~/zookeeper-$ ./bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /home/blockchain/zookeeper-/bin/../conf/zoo.cfg Mode: standalone blockchain@Dao:~/zookeeper-$
Zookeeper 客户端
./zkCli.sh -server ip:port,默认端口为2181
bin/zkCli.sh -server localhost:2181
测试是否安装成功
telnet localhost 2181
然后输入srvr
下载kafka kafka_2.11-2.1.1.tgz
启动kafka
bin/kafka-server-start.sh ~/kafka/config/server.properties > ~/kafka/kafka.log >& &
停止kafka
bin/kafka-server-stop.sh config/server.properties
3.创建一个主题
首先创建一个名为test
的topic,只使用单个分区和一个复本
1
|
bin /kafka-topics .sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test |
现在可以运行list topic命令看到我们的主题
1
|
bin /kafka-topics .sh --list --zookeeper localhost:2181 |
4.发送消息
1
2
3
|
bin /kafka-console-producer .sh --broker-list localhost:9092 --topic test This is a message This is another message |
如果要批量导入文件数据到kafka,参考:2.1 本地环境下kafka批量导入数据
1
|
bin /kafka-console-producer .sh --broker-list localhost:9092 --topic test_topic < file_pat |
5.启动一个消费者,消费者会接收到消息
旧版消费者
1
|
bin /kafka-console-consumer .sh --zookeeper localhost:2181 --topic test --from-beginning 2> /dev/null |
新版消费者
1
|
bin /kafka-console-consumer .sh --new-consumer --bootstrap-server localhost:9092 --topic input --from-beginning 2> /dev/null |
6.查看指定的topic的offset信息
对于结尾是ZK的消费者,其消费者的信息是存储在Zookeeper中的
对于结尾是KF的消费者,其消费者的信息是存在在Kafka的broker中的
都可以使用下面的命令进行查看
1
|
bin /kafka-consumer-offset-checker .sh --zookeeper localhost:2181 --group xxx --topic xxx |
结果
1
2
3
4
|
bin /kafka-consumer-offset-checker .sh --zookeeper localhost:2181 --group test -consumer-group --topic xxx [2018-09-03 20:34:57,595] WARN WARNING: ConsumerOffsetChecker is deprecated and will be dropped in releases following 0.9.0. Use ConsumerGroupCommand instead. (kafka.tools.ConsumerOffsetChecker$) Group Topic Pid Offset logSize Lag Owner test -consumer-group xxx 0 509 0 -509 none |
或者
1
|
. /bin/kafka-run-class .sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group xxxx --topic xxxx |
结果
1
2
3
4
|
bin /kafka-run-class .sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group test -consumer-group [2018-09-03 20:45:02,967] WARN WARNING: ConsumerOffsetChecker is deprecated and will be dropped in releases following 0.9.0. Use ConsumerGroupCommand instead. (kafka.tools.ConsumerOffsetChecker$) Group Topic Pid Offset logSize Lag Owner test -consumer-group xxx 0 509 509 0 none |
lag是负数的原因是 topic中的消息数量过期(超过kafka默认的7天后被删除了),变成了0,所以Lag=logSize减去Offset,所以就变成了负数
7.删除一个topic
需要在 conf/server.properties 文件中设置
1
2
|
# For delete topic delete.topic. enable = true |
否则在执行了以下删除命令后,再 list 查看所有的topic,还是会看到该topic
1
|
bin /kafka-topics .sh --zookeeper localhost:2181 --delete --topic topicB |
再到 配置文件 中的kafka数据存储地址去删除物理数据了,我的地址为
1
|
/tmp/kafka-logs |
最后需要到zk里删除kafka的元数据
1
2
3
|
. /bin/zkCli .sh #进入zk shell ls /brokers/topics rmr /brokers/topics/topicA |
8.查看某个group的信息
新版
1
|
bin /kafka-consumer-groups .sh --new-consumer --bootstrap-server localhost:9092 --describe --group xxx |
结果
1
2
3
|
bin /kafka-consumer-groups .sh --new-consumer --bootstrap-server localhost:9092 --describe --group group_id GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG OWNER group_id xxx 0 509 509 0 consumer-1_ /127 .0.0.1 |
如果这时候消费者进程关闭了之后,使用上面的命令和下面的-list命令将不会查出这个group_id,但是当消费者进程重新开启后,这个group_id又能重新查到,且消费的offset不会丢失
旧版
1
|
bin /kafka-consumer-groups .sh --zookeeper 127.0.0.1:2181 --group xxx --describe |
9.查看consumer group的列表
ZK的消费者可以使用下面命令查看,比如上面的例子中的 test-consumer-group
1
|
bin /kafka-consumer-groups .sh --zookeeper 127.0.0.1:2181 --list |
KF的消费者可以使用下面命令查看,比如上面的例子中的 console-consumer-xxx ,但是只会查看到类似于 KMOffsetCache-lintong-B250M-DS3H 的结果,这是由于这种消费者的信息是存放在 __consumer_offsets 中
对于如何查看存储于 __consumer_offsets 中的新版消费者的信息,可以参考huxihx的博文: Kafka 如何读取offset topic内容 (__consumer_offsets)
1
|
bin /kafka-consumer-groups .sh --new-consumer --bootstrap-server localhost:9092 --list |
10.在zk中删除一个consumer group
1
|
rmr /consumers/test-consumer-group |
11.查看topic的offset的最小值
1
2
|
bin /kafka-run-class .sh kafka.tools.GetOffsetShell --broker-list localhost:9092 -topic xxxx -- time -2 xxxx:0:0 |
12.查看topic的offset的最大值
1
|
bin /kafka-run-class .sh kafka.tools.GetOffsetShell --broker-list localhost:9092 -topic xxxx -- time -1 |
13.重置topic的某个消费者的offset为0,需要高版本的kafka才有该命令,在高版本的kafka client对低版本的kafka集群执行该命令是会生效的
1
|
kafka-consumer- groups --bootstrap-server localhost:9092 --group xxx --topic xxx --reset-offsets --to-earliest --execute
|
安装Kafka客户端
librdkafka
安装下载https://github.com/edenhill/librdkafka
预备环境:
The GNU toolchain
GNU make
pthreads
zlib (optional, for gzip compression support)
libssl-dev (optional, for SSL and SASL SCRAM support)
libsasl2-dev (optional, for SASL GSSAPI support)
编译和安装:
./configure
make
sudo make install
ubuntu14安装kafka
ubuntu14.0.4安装kafka的更多相关文章
- Ubuntu14.0下安装Zend Framework 2
Ubuntu14.0下安装Zend Framework 2为了安装这个东西,忙活了快一天了,参考中文博客一直没有安装成功,有些博客的时间也是已经很早了,后来google看英文版的才安装成功,这里记录一 ...
- Linux—Ubuntu14.0.5安装Redis
1.前言 Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速.用Redis可以很轻松解决高并发的数据访问问题:做为时时监控信号处理也非常不错. ...
- Linux—Ubuntu14.0.5安装mongo
1.安装mongo sudo apt-get install mongo 2.如果遇到找不到安装包运行,那就更新资源列表 sudo apt-get update 3.安装成功会自动运行mongo pg ...
- Linux—Ubuntu14.0.5安装MySQL
1.更新资援列表 sudo apt-get update 2.安装mysql的操作命令(下一步选中“Y”) sudo apt-get install mysql-server 3.输入MySQLroo ...
- UBUNTU14.0.4安装eclipse
jdk工具下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 点击这个下载 ...
- Linux—Ubuntu14.0.5安装gitlab
1.下载gitlab-ce,到该连接选择版本 https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/trusty/main/g/git ...
- ubuntu14.0 (arm平台)源码安装 VLC播放器
环境 ubuntu14.0 arm开发板 源 deb http://mirrors.ustc.edu.cn/ubuntu-ports/ trusty main multiverse restrict ...
- 二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)
在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml ...
- ubuntu14.04 64bit 安装 && 破解quartus13.0 记录
安装文件:Quartus-13.0.0.156-linux.iso Quartus-13.0.0.156-devices-1.iso 1.挂载:sudo mount -o lo ...
随机推荐
- HDU - 4507 - 吉哥系列故事——恨7不成妻(数位DP,数学)
链接: https://vjudge.net/problem/HDU-4507 题意: 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都 ...
- 布局 Bootstrap Table的 文本内容 垂直居中
原文:https://blog.csdn.net/peng_hong_fu/article/details/70662979 样式(注意样式优先级): #div-component-info .tab ...
- leetcode解题报告(25):Reverse Words in a String III
描述 Given a string, you need to reverse the order of characters in each word within a sentence while ...
- lixuxmint系统定制与配置(3)-字体
小书匠Linux 有些系统自带的字体实在太难看了,看起来不清晰,不明确,有一个好的字体,可以带来好心情,并提高工作与效率. 1.常用中文字体 文泉驿微黑,微软雅黑,思源黑体 2.字体安装 2.1检查已 ...
- 如何修复GitKraken Inotify Limit Error\idea erro - 升级Ubuntu / Linux inotify限制
GitKraken是一个非常优秀的Git客户端.如果您是软件开发人员,那么您绝对应该试试GitKraken.今天我去了我的一个存储库做了一些提交,但是GitKraken告诉我它已经得到了Inotify ...
- Go程序员面试算法宝典-读后感1
这本书是讲解Go语言程序员面试笔试真题的书籍,讲的还不错,值得一看. 计算机技术博大精深,日新月异………………大神们疯狂的更新着技术,(我就更新,不服打我呀)虽然换汤不换药,又有几个人能精通基础,再延 ...
- [提权]mysql中的UDF提权
由于udf提权是需要构造UDF函数文件的,涉及到了写文件.所以本次实验已经将mysql的配置做了改动:–secure-file-priv=''. 剧情须知: secure_file_priv 为 NU ...
- rapidxml学习
参考: 官网http://rapidxml.sourceforge.net/ https://blog.csdn.net/wqvbjhc/article/details/7662931 http:// ...
- nodejs express cheerio request爬虫
const express = require('express') const cheerio = require('cheerio') const request = require(" ...
- PluginWindowlessWin
实际绘图发生在我的本机代码中的屏幕外目标上,每次刷新都会调用myplugin :: onWindowRefresh,它会将StretchBlt调用到插件的无窗口窗口,代码如下, FB::PluginW ...