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. 【Linux】CentOS 学习笔记之一(安装配制)

    如何打开命令窗口:应用程序>系统工具>终端 如何获取root 权限:在终端下,输入su 再输入密码(密码不显示在屏幕上) 如何将英文版转换成中文: [root@localhost ~]# ...

  2. Nginx之旅系列 - Nginx的configuration

    题记:Nginx之旅系列是用来记录Nginx从使用到源码学习的点点滴滴,分享学习Nginx的快乐 Nginx 首页: http://nginx.org/ Nginx的configuration 今天对 ...

  3. Spring MVC---基于注解的控制器

                                     基于注解的控制器 SpringMVC是一个基于DispatcherServlet的MVC框架,每个请求最先访问的是Dispatcher ...

  4. Java入门第二季第一章类和对象知识点

    Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...

  5. 概述java语言

    1.java语言是什么? java是一门面向对象的高级语言,它吸收了c++语言的各种优点,还摒弃了C++里难以理解的多继承和指针等概念,因此Java语言具有功能强大和简单易用两个特征. 2.java语 ...

  6. UIView类绘图出现错误提示

    一:问题: Jan 16 15:49:53  CUBOT Band Ⅲ[2082] <Error>: CGContextSetLineWidth: invalid context 0x0. ...

  7. JQUERY 特殊字符

    //替换特殊字符 $(this).val($(this).val().replace(/[~'!<>@#$%^&*()-+_=:]/g, ""));

  8. 数据结构之Heap (Java)

    Heap简介 Heap译为“堆”,是一种特殊的树形数据结构,它满足所有堆的特性:父节点的值大于等于子节点的值(max heap),或者小于等于子节点的值(min heap).对于max heap 根节 ...

  9. php7.0 和 php7.1新特性

    PHP7.1 新特性 1.可为空(Nullable)类型 类型现在允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null .可以通过在类型前面加上一个问号来使之成为 ...

  10. Chapter 21_5 替换

    gsub函数的第三个参数不仅是一个字符串,还可以是一个函数或table. 如果是函数,gsub会在每次找到匹配时调用该函数.调用时的参数是捕获到的内容,该函数的返回值作为要替换的字符串. 如果是tab ...