Kafka安装配置

我们使用5台机器搭建Kafka集群:

1. cluster-1-namenode-1-001       172.16.0.147

2. cluster-1-datanode-1-001       172.16.0.144

3. cluster-1-datanode-1-003       172.16.0.145

4. cluster-1-datanode-1-002       172.16.0.146

5. cluster-1-datanode-1-004       172.16.0.148

由于之前已经安装了Zookeeper,就不再使用Kafka自带的Zookeeper。

首先,在namenode上准备Kafka安装文件,执行如下命令:

cd /opt

wget http://www-eu.apache.org/dist/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz

tar -xvzf kafka_2.11-0.10.0.0.tgz

解压好之后,修改配置文件/opt/kafka_2.11-0.10.0.0/config/server.properties,原配置为:

broker.id=0

zookeeper.connect=localhost:2181

修改为:

broker.id=0

listeners=PLAINTEXT://cluster-1-namenode-1-001:9092

advertised.listeners=PLAINTEXT://cluster-1-namenode-1-001:9092

log.dirs=/opt/kafka_2.11-0.10.0.0/logs/kafka-logs

zookeeper.connect=cluster-1-namenode-1-001:2181,cluster-1-datanode-1-001:2181,cluster-1-datanode-1-003:2181,cluster-1-datanode-1-002:2181,cluster-1-datanode-1-004:2181

这里需要说明的是,默认Kafka会使用ZooKeeper默认的/路径,这样有关Kafka的ZooKeeper配置就会散落在根路径下面,如果你有其他的应用也在使用ZooKeeper集群,查看ZooKeeper中数据可能会不直观,所以强烈建议指定一个chroot路径,直接在zookeeper.connect配置项中指定。

由于kafka-logs不存在,创建并给与权限:

cd /opt/kafka_2.11-0.10.0.0/logs

mkdir kafka-logs

chmod -R 777 kafka-logs

然后,将配置好的文件同步到datanode节点上:

scp -r /opt/kafka_2.11-0.10.0.0/ cluster-1-datanode-1-001:/opt/

scp -r /opt/kafka_2.11-0.10.0.0/ cluster-1-datanode-1-003:/opt/

scp -r /opt/kafka_2.11-0.10.0.0/ cluster-1-datanode-1-002:/opt/

scp -r /opt/kafka_2.11-0.10.0.0/ cluster-1-datanode-1-004:/opt/

并修改/opt/kafka_2.11-0.10.0.0/config/server.properties内容:

broker.id=1

listeners=PLAINTEXT:// cluster-1-datanode-1-001:9092

advertised.listeners=PLAINTEXT:// cluster-1-datanode-1-001:9092

# 在cluster-1-datanode-1-001修改

broker.id=2

listeners=PLAINTEXT:// cluster-1-datanode-1-002:9092

advertised.listeners=PLAINTEXT:// cluster-1-datanode-1-002:9092

# 在cluster-1-datanode-1-002修改

broker.id=3

listeners=PLAINTEXT:// cluster-1-datanode-1-003:9092

advertised.listeners=PLAINTEXT:// cluster-1-datanode-1-003:9092

# 在cluster-1-datanode-1-003修改

broker.id=4

listeners=PLAINTEXT:// cluster-1-datanode-1-004:9092

advertised.listeners=PLAINTEXT:// cluster-1-datanode-1-004:9092

# 在cluster-1-datanode-1-004修改

因为Kafka集群需要保证各个Broker的id在整个集群中必须唯一,需要调整这个配置项的值。

通过检查进程状态,使用守护进程模式启动kafka,保证kafka集群启动成功,并且kafka不会自动关闭:

./kafka-server-start.sh -daemon /opt/kafka_2.11-0.10.0.0/config/server.properties &

分别启动节点上的kafka。

测试kafka的状态

  1. 在namenode上创建mytest主题(kafka有几个,replication-factor就填几个)

[root@cluster-1-namenode-1-001 bin]# ./kafka-topics.sh --create --topic mytest --replication-factor 5 --partitions 2 --zookeeper cluster-1-namenode-1-001:2181

Created topic "mytest".

[root@cluster-1-namenode-1-001 bin]#

  1. 在namenode上查看刚才创建的mytest主题

[root@cluster-1-namenode-1-001 bin]# ./kafka-topics.sh --list --zookeeper cluster-1-namenode-1-001:2181

idoall

idoall_testTopic

my_test

mytest

test

[root@cluster-1-namenode-1-001 bin]#

  1. 在datanode1上发送消息至kafka,发送消息“this is for test”

[root@cluster-1-datanode-1-001 bin]# ./kafka-console-producer.sh --broker-list cluster-1-namenode-1-001:9092 --sync --topic mytest

this is for test

  1. 在datanode2上开启一个消费者,模拟consumer,可以看到刚才发送的消息

[root@cluster-1-datanode-1-002 bin]# ./kafka-console-consumer.sh --zookeeper cluster-1-namenode-1-001:2181 --topic mytest --from-beginning

this is for test

^CProcessed a total of 1 messages

[root@cluster-1-datanode-1-002 bin]#

kafka_2.11-0.10.0.0安装步骤的更多相关文章

  1. QualityCenter10+Oracle10.2.1.0.1+Win2003SP2企业版安装步骤

    HpQualityCenter10+Oracle10.2.1.0.1+Win2003SP2企业版安装步骤: 1.点击setup.exe,等待,知道出现以下界面,然后按“下一步” 2.出现如下界面,接受 ...

  2. cron 表达式0 0/10 * * * 与 0 */10 * * *的区别

    0 0/10 * * * 与 0 */10 * * * 的差别在于什么地方.在说这两者的差别之前,先说下各个字符代表的含义.0代表从0分开始,*代表任意字符,/代表递增. 0 0/10 * * *代表 ...

  3. Ubuntu11.10 带图形安装步骤详解

    不多说,直接上干货! 成功!  关于Ubuntu的网络设置.静态IP设置,见 Ubuntukylin-14.04-desktop( 不带分区)安装步骤详解 Ubuntukylin-14.04-desk ...

  4. 高版本mysql8.0解压版安装步骤

    解压版安装操作官网下载: mysql-installer-community-8.0.12.0.msi如上操作: http://www.cnblogs.com/elfin/p/9429877.html ...

  5. Kafka0.10.2.0分布式集群安装

    一.依赖文件安装 1.1 JDK 参见博文:http://www.cnblogs.com/liugh/p/6623530.html 1.2 Scala 参见博文:http://www.cnblogs. ...

  6. centos7.6下编译安装zabbix4.0.10长期支持版

    一.安装数据库,这里使用的是percona-server5..24版本 配置如下 [root@zabbix4_clone:~]# cat /etc/my.cnf # Example MySQL con ...

  7. hive 0.10 0.11新增特性综述

    我们的hive版本升迁经历了0.7.1 -> 0.8.1 -> 0.9.0,并且线上shark所依赖的hive版本也停留在0.9.0上,在这些版本上有我们自己的bug fix patch和 ...

  8. redis4.0.10安装与常用命令

    ----------- redis安装 ------------------------------------------- 安装reids:https://redis.io/download (4 ...

  9. Kakfa集群(2.11-0.10.1.0)版本滚动升级方案

    Kafka集群版本升级(2.11-0.10.1.0)升级(2.11-0.10.2.2) 官网升级说明: 一.系统环境Zookeeper集群:172.16.2.10172.16.2.11172.16.2 ...

  10. kafka 0.10.2 cetos6.5 集群部署

    安装 zookeeper http://www.cnblogs.com/xiaojf/p/6572351.html安装 scala http://www.cnblogs.com/xiaojf/p/65 ...

随机推荐

  1. DEV 打印gridcontrl

    private void PrintPreview(DevExpress.XtraPrinting.IPrintable gridControlPrint)         {             ...

  2. 利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换

    我比较喜欢听音乐,特别是周末的时候,电脑开着百度随心听fm,随机播放歌曲,躺在床上享受.但碰到了一个烦人的事情,想切掉不喜欢的曲子,还得起床去操作电脑换歌.于是思考能不能用手机控制电脑切换歌曲,经过一 ...

  3. NodeJS stream 一:Buffer

    当年是看了朴灵的九浅一深 NodeJS 入门的 Node, 朴大大的书讲实践很少更多的篇幅用在了讲原理上,道理听了那么多,后来开始在前端工程领域使用 NodeJS 却处处掣肘,总结原因发现 NodeJ ...

  4. 游戏排行榜-Python实现

    背景介绍 排行榜通常是游戏中为了激发玩家的一种策略,那么对于开发人员来说如何完成一个排行榜的设计呢?如果这个排行榜是动态的如何才能高效的对比出结果呢?如果排行榜实时性较高如何给用户展示出用户是进步了还 ...

  5. SpringAOP导致@Autowired依赖注入失败

    之前用springAOP做了个操作日志记录,这次在往其他类上使用的时候,service一直注入失败,找了网上好多内容,发现大家都有类似的情况出现,但是又和自己的情况不太符合.后来总结自己的情况发现:方 ...

  6. Codevs 4189 字典

    4189 字典 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 最经,skyzhong得到了一本好厉害的字典,这个字典里整整有n ...

  7. [HMLY]14.对iOS开发中使用MVVM的理解和使用(初级)

    前言 MVVMDemo 之前几个月一直在学习react-native,它的组件化开发真的是很棒,控件和页面的组件化在开发中可以很好的复用,节省开发时间.在那个时候还不知道react-native开发用 ...

  8. Python datetime模块的datetime类

    datetime模块定义了下面这几个类: datetime.date:表示日期的类.常用的属性有year, month, day. datetime.time:表示时间的类.常用的属性有hour, m ...

  9. js分页模板

    /** *参数说明: *currentPage:当前页数 *countPage:总页数 *changeMethod:执行java后台代码的js函数,即是改变分页数据的js函数 */ function  ...

  10. 使用signalR创建聊天室。

    浏览器支持Html5的情况下,SignalR使用WebSockets,当不支持时SignalR将使用其它技术来实现通讯. 界面如下:左侧包含三种聊天对象,不同的聊天对象会创建不同的对话框. 设计思路参 ...