一、准备工作

centos6.8和jvm需要准备64位的,如果为32位,服务启动的时候报java.lang.OutOfMemoryError: Map failed

的错误。

链接:http://pan.baidu.com/s/1pLbj8T1 密码:f4h0

centos6.8  64位

jdk-8u121-linux-x64.tar.gz

kafka_2.12-0.10.2.1.tgz

zookeeper-3.4.5.tar.gz

虚拟机资源有限,所以3台zookeeper服务器和3台kafka服务器都装在了192.168.137.176上面。

二、安装JAVA

在CentOS6.8安装完以后,系统默认安装了open jdk1.7.0,我们在这里选择安装自己的jdk1.8.0 64位。

(1)tar -zxvf /home/test/jdk-8u121-linux-x64.tar.gz

mv jdk1.8.0_121 /usr/local/jdk1.8.0

在/usr/local 路径下面多了一个 jdk1.8.0文件夹。

(2)配置环境变量

在Linux系统中,一般安装软件的配置信息都是存放在 /etc/profile 文件里面。

vim /etc/profile加入下面设置

export JAVA_HOME=/usr/local/jdk1.8.0

export JRE_HOME=${JAVA_HOME}/jre

export PATH=.:${JAVA_HOME}/bin:$PATH

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
(3)source /etc/profile // 这条命令是让配置马上生效

(4)输入  java -version ,结果很遗憾,还是之前CentOS为我们安装好的jdk,说明我们的配置没有生效,

所以此时我们若要使用自己的jdk来替换系统自带的,还需要进行如下设置:

update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0/bin/java 50

update-alternatives --config java 选择需要的版本

(5)查看链接情况

输入  ll /usr/bin/java

输出  lrwxrwxrwx. 1 root root 22 Jun  2 09:25 /usr/bin/java -> /etc/alternatives/java

输入  ll /etc/alternatives/java

输出  lrwxrwxrwx. 1 root root 26 Jun  2 09:25 /etc/alternatives/java -> /usr/local/jdk1.8.0/bin/java

三、安装zookeeper服务器集群

zookeeper服务器集群规模不小于3个节点。

1.zookeeper服务安装

进行解压: tar -zxvf zookeeper-3.4.5.tar.gz

重命名: mv zookeeper-3.4.5 /usr/local/zookeeper

2.修改环境变量

vi /etc/profile

export ZOOKEEPER_HOME=/usr/local/zookeeper

export PATH=.:${ZOOKEEPER_HOME}/bin:${JAVA_HOME}/bin:$PATH

刷新: source /etc/profile

3.zookeeper配置文件准备

cd /usr/local/zookeeper/conf

cp zoo_sample.cfg zoo1.cfg

cp zoo_sample.cfg zoo2.cfg

cp zoo_sample.cfg zoo3.cfg

zoo1.cfg配置如下

clientPort=2181
dataDir=/usr/local/zookeeper/data/zoo1
tickTime=2000
initLimit=10
syncLimit=5
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889
server.2=127.0.0.1:2890:3890

zoo2.cfg配置如下

clientPort=2182
dataDir=/usr/local/zookeeper/data/zoo2
tickTime=2000
initLimit=10
syncLimit=5
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889
server.2=127.0.0.1:2890:3890

zoo3.cfg配置如下

clientPort=2183
dataDir=/usr/local/zookeeper/data/zoo3
tickTime=2000
initLimit=10
syncLimit=5
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889
server.2=127.0.0.1:2890:3890

4.创建datadir和服务器标识文件

cd /usr/local/zookeeper/

创建文件夹:mkdir -p data/zoo1 data/zoo2 data/zoo3

cd data/zoo1

创建文件myid并填写内容为0:vi myid (内容为服务器标识 : 0)

其他两个服务器的值修改为1和2

5.启动zookeeper

zkServer.sh start /usr/local/zookeeper/conf/zoo1.cfg
zkServer.sh start /usr/local/zookeeper/conf/zoo2.cfg
zkServer.sh start /usr/local/zookeeper/conf/zoo3.cfg

查询状态:(一个leader和俩个follower)

zkServer.sh status /usr/local/zookeeper/conf/zoo1.cfg
zkServer.sh status /usr/local/zookeeper/conf/zoo2.cfg
zkServer.sh status /usr/local/zookeeper/conf/zoo3.cfg

停止服务:zkServer.sh stop

启动验证:输入jps,存在 3个QuorumPeerMain 进程的话,就说明 Zookeeper 启动成功了。

四、安装kafka集群

1.kafka服务安装

tar -zxvf kafka_2.12-0.10.2.1.tgz

mv kafka_2.12-0.10.2.1 /usr/local/kafka

2.配置文件准备

config/server.properties参数说明

cd /usr/local/kafka/config/

broker.id=  #当前机器在集群中的唯一标识,和zookeeper的myid性质一样
listeners = PLAINTEXT://your.host.name:#当前kafka对外提供服务的端口默认是9092
num.network.threads= #borker进行网络处理的线程数
num.io.threads= #borker进行I/O处理的线程数
log.dirs=/usr/local/kafka/kafkalogs1/ #消息存放的目录,可以配置为逗号分割的表达式,上面的num.io.threads要大于这个目录的个数。如果配置多个目录,新创建topic的消息持久化的地方是分区数最少的那一个。
socket.send.buffer.bytes= #发送缓冲区buffer大小,数据不是一下子就发送的,先会存储到缓冲区,到达一定的大小后再发送以提高性能。
socket.receive.buffer.bytes= #kafka接收缓冲区大小,当数据到达一定大小后再序列化到磁盘。
socket.request.max.bytes= #向kafka请求消息或者向kafka发送消息的请求的最大数,这个值不能超过java的堆栈大小。
num.partitions= #默认的分区数,一个topic默认1个分区数
log.retention.hours= #默认消息的最大持久化时间,168小时,7天
message.max.byte= #消息保存的最大值5M
default.replication.factor= #kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务
replica.fetch.max.bytes= #取消息的最大值
log.segment.bytes= #kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.retention.check.interval.ms= #每隔300000毫秒去检查上面配置的log失效时间,到目录查看是否有过期的消息如果有,删除
log.cleaner.enable=false #是否启用log压缩,一般不用启用,启用的话可以提高性能
zookeeper.connect=localhost: #设置zookeeper的连接端口

配置文件修改

broker.id=  #每台服务器的broker.id都不能相同
listeners=PLAINTEXT://192.168.137.176:9092
log.dirs=/usr/local/kafka/kafkalogs1/

#增加下面设置
message.max.byte=
default.replication.factor=
replica.fetch.max.bytes= #设置zookeeper的连接端口
zookeeper.connect=127.0.0.1:,127.0.0.1:,127.0.0.1:

其他2个服务器配置文件

cp server.properties server-1.properties

cp server.properties server-2.properties

broker.id=  #每台服务器的broker.id都不能相同
listeners=PLAINTEXT://192.168.137.176: log.dirs=/usr/local/kafka/kafkalogs2/ #增加下面设置
message.max.byte=
default.replication.factor=
replica.fetch.max.bytes= #设置zookeeper的连接端口
zookeeper.connect=127.0.0.1:,127.0.0.1:,127.0.0.1:
broker.id=  #每台服务器的broker.id都不能相同
listeners=PLAINTEXT://192.168.137.176: log.dirs=/usr/local/kafka/kafkalogs3/ #增加下面设置
message.max.byte=
default.replication.factor=
replica.fetch.max.bytes= #设置zookeeper的连接端口
zookeeper.connect=127.0.0.1:,127.0.0.1:,127.0.0.1:

3.服务器启动

cd /usr/local/kafka/

setsid bin/kafka-server-start.sh config/server.properties &

setsid bin/kafka-server-start.sh config/server-1.properties &

setsid bin/kafka-server-start.sh config/server-2.properties &

setsid作用是让服务在linux客户端退出时依然启动。

4.服务器验证

输入jps,输出如下:3个zookeeper服务,3个kafka服务。

 Kafka
Kafka
QuorumPeerMain
QuorumPeerMain
Jps
QuorumPeerMain
Kafka

五、测试kafka集群

1.创建topic

bin/kafka-topics.sh --create --zookeeper localhost: --replication-factor  --partitions  --topic my-replicated-topic

2.查询topic状态

bin/kafka-topics.sh --describe --zookeeper localhost: --topic my-replicated-topic
Topic:my-replicated-topic       PartitionCount:        ReplicationFactor:     Configs:
Topic: my-replicated-topic Partition: Leader: Replicas: ,, Isr: ,,

3.发布消息

bin/kafka-console-producer.sh --broker-list 192.168.137.176: --topic my-replicated-topic

4.接收消息

bin/kafka-console-consumer.sh --bootstrap-server 192.168.137.176: --from-beginning --topic my-replicated-topic

5.查看topic

bin/kafka-topics.sh --list --zookeeper localhost:

kafka集群的创建已经完成。

kafka集群环境搭建(Linux)的更多相关文章

  1. kafka 集群环境搭建 java

    简单记录下kafka集群环境搭建过程, 用来做备忘录 安装 第一步: 点击官网下载地址 http://kafka.apache.org/downloads.html 下载最新安装包 第二步: 解压 t ...

  2. 数据源管理 | Kafka集群环境搭建,消息存储机制详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.Kafka集群环境 1.环境版本 版本:kafka2.11,zookeeper3.4 注意:这里zookeeper3.4也是基于集群模式部 ...

  3. 大数据 -- zookeeper和kafka集群环境搭建

    一 运行环境 从阿里云申请三台云服务器,这里我使用了两个不同的阿里云账号去申请云服务器.我们配置三台主机名分别为zy1,zy2,zy3. 我们通过阿里云可以获取主机的公网ip地址,如下: 通过secu ...

  4. 【Kafka】Kafka集群环境搭建

    目录 一.初始环境准备 二.下载安装包并上传解压 三.修改配置文件 四.启动ZooKeeper 五.启动Kafka集群 一.初始环境准备 必须安装了JDK和ZooKeeper,并保证Zookeeper ...

  5. Kafka集群环境搭建

    Kafka是一个分布式.可分区.可复制的消息系统.Kafka将消息以topic为单位进行归纳:Kafka发布消息的程序称为producer,也叫生产者:Kafka预订topics并消费消息的程序称为c ...

  6. Kafka集群环境搭建(2.9.2-0.8.2.2)

    Kafka是一个分布式.可分区.可复制的消息系统.Kafka将消息以topic为单位进行归纳:Kafka发布消息的程序称为producer,也叫生产者:Kafka预订topics并消费消息的程序称为c ...

  7. Ubuntu下kafka集群环境搭建及测试

    kafka介绍: Kafka[1是一种高吞吐量[2]  的分布式发布订阅消息系统,有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能 ...

  8. 大数据 -- Hadoop集群环境搭建

    首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...

  9. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十)安装hadoop2.9.0搭建HA

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

随机推荐

  1. utf-8的中文,一个字符占几个字节

    https://blog.csdn.net/kindsuper_liu/article/details/80202150 英文字母和中文汉字在不同字符集编码下的字节数英文字母:·字节数 : 1;编码: ...

  2. phpstorm配置Xdebug进行调试

    运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdeb ...

  3. springboot+cloud 学习(六)Docker

    注:由于本人用的是window10系统,docker的版本是Docker Community Edition(Docker CE ). 什么是Docker 按官网的话说,Docker是一个世界领先的容 ...

  4. C#语句 分支语句 if --- else ---

    语句是指程序命令,都是按照顺序执行的.语句在程序中的执行顺序称为“控制流”或“执行流”. 根据程序对运行时所收到的输入的响应,在程序每次运行时控制流可能有所不同. 注意,语句间的标点符号必须是英文标点 ...

  5. mongodb 权限设置--用户名、密码、端口

    转自:http://www.cnblogs.com/valor-xh/p/6369432.html 一.关于权限的默认配置 在默认情况下,mongod是监听在0.0.0.0之上的,任何客户端都可以直接 ...

  6. Java集合框架——jdk 1.8 ArrayList 源码解析

    前言:作为菜鸟,需要经常回头巩固一下基础知识,今天看看 jdk 1.8 的源码,这里记录 ArrayList 的实现. 一.简介 ArrayList 是有序的集合: 底层采用数组实现对数据的增删查改: ...

  7. IDEA maven 项目如何上传到私服仓库

    前言:idea maven 发布版本到私服(快照和正式版).我有个项目( jar 包源码),其他 maven 项目能直接引入依赖就最好了,所以必须将这个 jar 包源码发布到 maven 私服仓库里去 ...

  8. spring项目获取ServletContext

    (1)生命周期 ServletContext中的属性的生命周期从创建开始,到服务器关闭而 (2).获取ServletContext 1.request获取servletContext ServletC ...

  9. Ubuntu 16.04 LTS 下安装 ibus-rime 输入法

    搜 Linux 下粤拼输入法的时候发现了 Rime,由于 fcitx 下的拼音输入体验实在不太好(搜狗是在我的电脑上完全坏掉了,调不出来,配置文件的问题一直没解决:谷歌是好过没有),于是安装 ibus ...

  10. 2017-12-06 JavaScript实现ZLOGO子集: 单层循环功能

    前文JavaScript实现ZLOGO子集: 前进+转向的示例代码很累赘, 因此尝试实现基本的循环功能, 使得前面的11行代码缩减为7行: 开始 循环4次 前进200 左转144度 到此为止 前进20 ...