`
Josh_Persistence
  • 浏览: 1653676 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Kafka 集群构建

阅读更多

最近要做实时计算相关的东西,目前每天约100G日志,还在不断增长,高峰时一天400G日志。

考虑过flume+activemq+storm+redis+hadoop, 考虑用kafka做mq的备用方案。

我这里用了公司的三台机器
192.168.197.170
192.168.197.171
192.168.197.172
一. Zookeeper集群构建

ZooKeeper集群中具有两个关键的角色:Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结点之间都互相连接。

ZooKeeper采用一种称为Leader election的选举算法。在整个集群运行过程中,只有一个Leader,其他的都是Follower,如果ZooKeeper集群在运行过程中Leader出了问题,系统会采用该算法重新选出一个Leader。

ZooKeeper集群启动的时候,会首先选出一个Leader,在Leader election过程中,某一个满足选举算的结点就能成为Leader。

可以使用自带的zookeeper.
命令:$nohup bin/zookeeper-server-start.sh config/zookeeper.properties &   
不过我选择了自己搭建zookeeper集群。
 
下载并解压zookeeper.
修改$zookeeper_home/conf 下面的配置文件
 
cp zoo_simple.cfg zoo.cfg
内容修改为
dataDir=/usr/local/tmp/zookeeper
clientPort=2181
server.170=192.168.197.170:2888:3888
server.171=192.168.197.171:2888:3888
server.172=192.168.197.172:2888:3888
 
在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字,例如:
  1. $ echo "170" >  /usr/local/tmp/zookeeper/myid
bin/zkServer.sh start 启动zookeeper
 
 
 
二. Kafka集群构建
 
1. 下载并解压Kafka
看官方文档里介绍,先得构建scala环境, 但是我自己没有执行下面的操作,居然也能运行,有点莫名其妙,
> tar xzf kafka-<VERSION>.tgz
> cd kafka-<VERSION>
> ./sbt update
> ./sbt package
> ./sbt assembly-package-dependency
 
2. 修改配置文件
修改 conf/server.properties
 
zookeeper.connect=192.168.197.170:2181,192.168.197.171:2181,192.168.197.172:2181
 
broker.id分别改成
broker.id=170
broker.id=171
broker.id=172
host.name分别改成(如果不改,client访问集群时,如果没在hosts配置对应机器的 hostname,访问将会报错)
host.name=192.168.197.170
host.name=192.168.197.171
host.name=192.168.197.172
可根据需求修改
port: broker节点使用端口号 默认 9092
log.dir: 消息目录位置
 
3. 启动Kafka
cd /usr/local/kafka_2.8.0-0.8.0
JMX_PORT=9999 bin/kafka-server-start.sh config/server.properties &
 
4. 创建Topic并查看
bin/kafka-create-topic.sh --zookeeper 192.168.197.170:2181 --partition 1 --topic leo-test
bin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181
topic: leo-test partition: 0 leader: 171 replicas: 171 isr: 171
说明:
partiton: partion id,由于此处只有一个partition,因此partition id 为0
leader:当前负责读写的lead broker id
relicas:当前partition的所有replication broker list
isr:relicas的子集,只包含出于活动状态的broker
 
bin/kafka-create-topic.sh --zookeeper 192.168.197.170:2181 --replica 2 --partition 2 --topic leo-test2
topic: leo-test partition: 0 leader: 171 replicas: 171 isr: 171
topic: leo-test2 partition: 0 leader: 171 replicas: 171,170 isr: 171,170
topic: leo-test2 partition: 1 leader: 170 replicas: 170,171 isr: 170,171
5.试着干掉一个非leader 的broker,然后在干掉leader broker,看看会有什么情况发生。
命令:
pkill -9 -f server.properties
 
 
 
安装过程遇到的问题:
1. kafka启动后提示
Unrecognized VM option '+UseCompressedOops'
Could not create the Java virtual machine.
开始以为是内存大小的问题, 后来发现不是,是JDK的问题, 我用的32位centos,jdk1.6_24,  换成JDK1.7依然报错。
查看 bin/kafka-run-class.sh 
找到
if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then
  KAFKA_JVM_PERFORMANCE_OPTS="-server  -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true"
fi
去掉-XX:+UseCompressedOops
JMX_PORT=9999 bin/kafka-server-start.sh config/server.properties &
启动成功
 
分享到:
评论

相关推荐

    kafka集群搭建文档

    本篇文档将详细介绍如何在Linux环境中搭建Kafka集群,同时结合Hadoop和Spark的分布式安装,构建一个完整的数据处理平台。 首先,搭建Kafka集群的基础条件包括: 1. 至少一台Linux服务器,但为了高可用性,推荐多台...

    Kafka集群搭建(3台机)

    搭建Kafka集群涉及到对虚拟机的安装配置、JDK环境的搭建、Zookeeper的安装配置等关键步骤。下面详细介绍各个知识点。 首先,虚拟机的安装是搭建Kafka集群的基础。文中提到了使用VMWare来安装三台虚拟机,并分配了...

    kafka集群配置文件

    Kafka作为一个高吞吐量、低延迟的发布/订阅消息系统,而Zookeeper则是一个分布式协调服务,用于管理Kafka集群的各种元数据。在这里,我们将深入探讨`kafka集群配置文件`以及它们与`zookeeper集群`的关系。 **1. ...

    搭建kafka集群详细教程

    本教程将详细介绍如何搭建一个Kafka集群。 首先,我们需要理解Kafka集群的基础构成。一个Kafka集群通常包括多个服务器,称为Brokers,它们负责存储和传输消息。每个Broker都有自己的分区(Partitions),这些分区是...

    kafka集群Java开发jar包

    标题中的"Kafka集群Java开发jar包"指的是使用Java进行Kafka集群的开发工作,这通常涉及到创建生产者、消费者以及管理Kafka主题等操作。在Java中,这些操作通常通过引入特定的jar包来实现,比如`kafka-clients.jar`...

    Kafka2.3.0集群安装

    Kafka集群安装 Kafka是一种流行的分布式流媒体平台,用于构建实时数据管道和流媒体应用程序。下面是Kafka集群安装的详细步骤和相关知识点: 一、Kafka集群安装前提 在安装Kafka集群之前,需要安装Scala,因为...

    kafka集群zookeeper集群整合配置

    在本文中,我们将深入探讨如何将Kafka集群与Zookeeper集群整合配置,以实现稳定可靠的运行环境。 首先,理解Zookeeper的角色。Zookeeper在Kafka中的主要职责包括: 1. **元数据存储**:Kafka的 Topic、Partition、...

    kafka集群.pdf

    Apache Kafka 是一个分布式流处理平台,常用于构建实时数据管道和流应用。Kafka 集群部署是实现高可用性和容错性的关键步骤,确保数据的可靠传输和存储。以下是对 Kafka 集群部署的详细解释: 1. **环境准备**: -...

    Kafka集群部署手册1

    总结,部署Kafka集群涉及多个步骤,包括Zookeeper和Kafka的配置文件创建、目录结构的构建以及集群的启动。正确配置这些参数对于Kafka集群的稳定性和性能至关重要。此外,考虑到扩展性和容错性,集群的管理和维护也是...

    Kafka集群管理工具kafka-manager的安装使用1

    3. **编译项目**:由于 Kafka Manager 使用 Scala 构建,因此需要先安装 SBT (Scala Build Tool)。通过 yum 安装 SBT,并修改其仓库地址,使用阿里云的镜像源加速下载。安装完成后,进入 Kafka Manager 的源码目录,...

    KAFKA集群搭建参考方案

    搭建Kafka集群是构建可靠、高效的数据传输平台的关键步骤。根据提供的信息,Kafka集群搭建有两种方式:在多台机器上搭建集群或在单机上运行多个broker实例。 **一、多台机器上搭建Kafka集群** 1. **Zookeeper集群...

    基于Storm与Kafka集群的火电厂分布式流式数据建模与分析系统.pdf

    标题“基于Storm与Kafka集群的火电厂分布式流式数据建模与分析系统”指向了两个主要的技术组件:Apache Storm和Apache Kafka,以及它们在火电厂数据处理方面的应用。Apache Storm是一个分布式的、实时的计算系统,...

    kafka集群.doc

    Apache Kafka 是一个分布式流处理平台,常用于实时数据管道和流式应用的构建。Kafka 集群的搭建是其应用的基础,本教程将详细解释如何在 CentOS 6.5 环境下配置一个三节点的 Kafka 集群。 首先,确保在所有参与的...

    云计算基础架构-Kafka集群部署.pptx

    《云计算基础架构:Kafka集群部署详解》 在当今的云计算环境中,高效的数据处理和传输是关键。Apache Kafka作为一个分布式流处理平台,被广泛应用于实时数据管道和消息系统,尤其在大数据处理领域,它的性能和可...

    《Kafka集群部署》配置文件

    1. **Kafka集群**: Kafka集群由一个或多个服务器(称为Brokers)组成,它们负责存储和转发消息。为了实现高可用性和容错性,通常会设置多个副本。在配置文件中,需要设置broker的ID,每个节点必须有唯一的ID。 2. *...

    Python测试Kafka集群(pykafka)实例

    在本文中,我们将深入探讨如何使用Python库`pykafka`来测试Apache Kafka集群。`pykafka`是一个强大的Python客户端,它提供了简洁的API,用于与Kafka进行交互,包括生产消息和消费消息。Apache Kafka是一种分布式流...

    cluster-kafka集群配置9091-9093

    本篇将深入探讨如何配置一个使用端口9091到9093的Kafka集群,并结合Zookeeper的集群配置,确保服务的稳定运行。 **Kafka集群配置** 1. **节点设置**:首先,你需要至少三个Kafka节点来构建一个基础的集群。每个...

    kafka+zookeeper高可用集群搭建shell使用脚本

    首先,我们需要了解Zookeeper在Kafka集群中的角色。Zookeeper作为Kafka的元数据存储中心,负责管理Kafka的分区(Partition)和副本(Replica)的分布,以及集群节点的状态信息。在高可用集群中,Zookeeper自身也需要...

    Kafka、Zookeeper集群配置

    Zookeeper是Kafka集群的重要组成部分,用于管理元数据和提供分布式一致性服务。首先,我们需要配置Zookeeper集群。每个Zookeeper节点都需要一个配置文件`zoo.cfg`,主要包括以下关键设置: - `dataDir`: 指定存储...

    第10单元 Kafka集群部署1

    了解并掌握这些知识点,你将能够成功部署和管理Kafka集群,为实时数据处理和流应用的构建打下坚实基础。记住,Kafka的高效性和可扩展性使其成为大数据领域的重要工具,而理解其背后的配置和操作机制是实现这一点的...

Global site tag (gtag.js) - Google Analytics