kafka在linux下的安装及配置
安装
-
: 可以选择下载源码包或者打包好的二进制文件。 安装 将上面下载好的文件解压缩即可,linux 下为了方便启动可以将bin目录配置到环境变量中
配置
-
依赖服务 kafka 是依赖 zookeeper 服务的,所以需要启动 kafka 首先要安装zookeeper,这里不做介绍。你也可以使用已有的 zookeeper 服务,只需修改 kafka 启动配置的参数即可,修改方式在下面。 启动配置 kafka 启动需要指定配置文件,配置文件在config目录下,使用默认配置直接执行命令:
$kafka_home/bin/kafka-server-start.sh /$kafka_home/config/server.properties
$kafka_home:指的是你的kafka所在的目录,如果需要使用自定义配置启动,修改后面指定的配置文件即可,当然也可以直接修改上面的配置文件内容。
打开上面的配置文件:
############################# Zookeeper ############################# # 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 # Timeout in ms for connecting to zookeeper zookeeper.connection.timeout.ms=6000
可以看到,这里有 zookeeper 的相关配置,如果需要修改,直接将其改成你已有的 zk 服务地址即可,其他详细配置,这里就不做介绍了,可以去查询相关文档。
附
在 linux 系统下,我本人的习惯是将软件放置到/usr/local目录下,但是这个目录只有 root 用户拥有写权限,所以,当将 kafka 放置到这个目录下时,启动会出现提示:权限不足,无法创建日志目录的错误。因为 kafka 默认日志是输出在$kafka_home/logs目录下,这时,我们需要修改kafka日志的输出目录。
-
修改方法如下:
- 打开$kafka_home/bin/kafka-run-class.sh文件
- 找到base_dir所在位置
# Exclude jars not necessary for running commands.
regex="(-(test|test-sources|src|scaladoc|javadoc).jar|jar.asc)$"
should_include_file() {
if [ "$INCLUDE_TEST_JARS" = true ]; then
return 0
fi
file=$1
if [ -z "$(echo "$file" | egrep "$regex")" ] ; then
return 0
else
return 1
fi
}
base_dir=$(dirname $0)/..
在base_dir这一行下面新增一行:
LOG_DIR=/自定义目录/logs
将上面的自定义目录更换成你需要的位置即可, 注意:一定要是普通用户有权限读写的目录。 这里如果有兴趣的可以查看下他的脚本代码,就可以知道为什么加上这一行代码就可以修改它的日志输出目录了。
修改完成,重启 kafka 发现没有提示错误信息了,然后去你指定的日志输出目录查看,会发现创建了一些日志文件。以后需要查询日志,就可以直接来这里查询了,方便开发。
