kafka分布式虚拟机群部署配置方法
1 配置jdk8
假设安装(解压)路径:jdk1.8.0
修改/etc/profile,增加以下设置并保存
Export JAVA_HOME=jdk1.8.0
Export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
Export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
命令行中执行source /etc/profile
2 Zookeeper centos7 虚拟机群部署
假设目录结构为
/opt/zookeeper/ #zookeeper存放目录
/opt/zkdata#快照日志的存储路径
/opt/zklog#事物日志的存储路径
1.1 在每台机器上修改配置文件
(1)进入/opt/zookeeper/conf,建立配置文件并修改。
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改内容如下:
tickTime=2000
#这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
initLimit=10
#这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
syncLimit=5
#这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
dataDir=/opt/zkdata
#快照日志的存储路径
dataLogDir=/opt/zklog
#事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
clientPort=12181
#这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。修改他的端口改大点
server.1=192.168.7.100:12888:13888
server.2=192.168.7.101:12888:13888
server.3=192.168.7.107:12888:13888
#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
#192.168.7.107为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
(2)在每台机器创建myid文件
#server1
echo "1" > /opt/zookeeper/zkdata/myid
#Echo “ ”中的整数要与zoo.cfg文件中server. 后面的数字相同
(3)启动zookeeper
/opt/zookeeper/bin/zkServer.sh start
(4)查看服务状态
/opt/zookeeper/bin/zkServer.sh status
正常应显示如下信息:
JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg #配置文件
Mode: follower #是否为领导
1.2 Zookeeper常见启动错误排查
排查方法:启动时打开日志./zkServer.sh start-foreground并观察
常见原因及解决方法:
(1)zookeeper配置错误
检查各项配置即可,例如路径、端口号等
(2)检查是否存在myid文件,内容是否正确
(3)出现“no route to host”
关闭防火墙即可:systemctl stop firewalld.service
systemctl disable firewalld.service
(4)”bindException”
查看端口占用
Lsof -i:12181#zoo.cfg中的clientPort
若有其他程序占用则考虑终止该进程
Kill -9 PID
常用命令:
Uname -a 查看位数
Cat /etc/os-release 查看系统版本
2 Kafka分布式部署
下载kafka二进制包并解压,假设解压路径:kafka
注意:zookeeper-server与kafka-server的启动需root用户权限
(1)修改kafka配置
vim kafka/config/server.properties
修改内容如下:
broker.id=1 # 每台服务器的broker.id都不能相同
#hostname
host.name=192.168.7.100
#在log.retention.hours=168 下面新增下面三项
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
#设置zookeeper的连接端口
zookeeper.connect=192.168.7.100:12181,192.168.7.101:12181,192.168.7.107:12181
(2)在每台机器上启动kafka
Kafka/bin/kafka-server-start.sh kafka/config/server.properties
利用Jps检查kafka服务是否启动
(3)创建、发布、订阅消息
a)创建Topic
kafka/bin/kafka-topics.sh --create --zookeeper IP:12181 --replication-factor 2 --partitions 1 --topic testtopic
b)创建一个发布者
kafka/bin/kafka-console-producer.sh --broker-list IP:9092 --topic testtopic
c)创建一个订阅者
bin/kafka-console-consumer.sh --bootstrap-server IP:9092 --from-beginning --topic testtopic
3 Centos 虚拟集群网络配置
(1)首先查看网卡设备是否为eth0,若不是转至步骤2,否则转至步骤4
ifconfig -a
(2)修改网卡配置
vim /etc/sysconfig/grub
找到“GRUB_CMDLINE_LINUX”,增加net.ifnames=0 biosdevname=0并保存
(3)执行grub2-mkconfig -o /boot/grub2/grub.cfg
(4)更改/etc/sysconfig/network-scripts/目录下的ifcfg-eno16777736为ifcfg-eth0,并修改里面
内容。如下:
- DEVICE=eth0
- BOOTPROTO=static
- IPADDR=192.168.17.100
- NETMASK=255.255.255.0
- HWADDR=00:0C:29:9C:48:B4
- IPV6INIT=no
- NM_CONTROLLED=yes
- ONBOOT=yes
- TYPE=Ethernet
- UUID=35d96ab0-4a6a-4cca-b6c9-fbe24003a44d
- DNS1=192.168.17.2
- GATEWAY=192.168.17.2
其中地址在VM的“虚拟网络编辑器”中查看或修改,并设置虚拟机的网络设置,如下图
(5)重启,ifconfig查看是否成功。
(6)在每台机器上完成以上步骤
(7)Ping 其他机器IP,若ping成功则集群网络配置成功
kafka分布式虚拟机群部署配置方法的更多相关文章
- spring + ibatis 多数据源事务(分布式事务)管理配置方法(转)
spring + ibatis 多数据源事务(分布式事务)管理配置方法(转) .我先要给大家讲一个概念:spring 的多数据源事务,这是民间的说法.官方的说法是:spring 的分布式事务.明白了这 ...
- Kafka分布式集群部署
这个是kafka的官网地址:http://kafka.apache.org/ 1.kafka是一个消息系统. 2.kafka对流数据可以高效的实时处理. 3.分布式集群的环境下能够保证数据的安全. k ...
- httpd基础配置和虚拟主机的配置方法
RedHat6.5 httpd实验的大概步骤 #解包 tar zxf httpd-2.2.17.tar.gz -C /usr/src#切换到目录 cd /usr/src/httpd-2.2.17/# ...
- 新闻实时分析系统-Kafka分布式集群部署
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spa ...
- 新闻网大数据实时分析可视化系统项目——7、Kafka分布式集群部署
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spa ...
- tomcat虚拟路径的配置方法
方式一: 将web项目配置到webapps以外的目录 在conf/server.xml中配置,找到<host>标签,<Content docBase="E:\yqs\Jsp ...
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...
- 在Centos 7上安装配置 Apche Kafka 分布式消息系统集群
Apache Kafka是一种颇受欢迎的分布式消息代理系统,旨在有效地处理大量的实时数据.Kafka集群不仅具有高度可扩展性和容错性,而且与其他消息代理(如ActiveMQ和RabbitMQ)相比,还 ...
- ubuntu apache2配置详解(含虚拟主机配置方法)
ubuntu apache2配置详解(含虚拟主机配置方法) 在Windows下,Apache的配置文件通常只有一个,就是httpd.conf.但我在Ubuntu Linux上用apt-get inst ...
随机推荐
- 使用 某款基于Socks5协议的代理软件 一段时间后 被封锁掉IP的一些技术思考
由于关键词比较敏感为了不被删除帖子所以文中某软件(上图所示软件)不用全称表示. 去年9月末在 在某国外网站 上弄了一个vpn,在上面安装了某软件,使用起来还是蛮不错的,平时查查英文论文,看看美剧还是比 ...
- Multiple Object Tracking using K-Shortest Paths Optimization简要
参考文献:Multiple Object Tracking using K-Shortest Paths Optimization 核心步骤: 两步:一.detection 二.link detect ...
- 20155223 2016-2017-2 《Java程序设计》第8周学习总结
20155223 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 第14章 Channel是Java NIO用来衔接数据节点的功能,可定义缓冲区容量.标记内容 ...
- 6-1 Deque(25 分)Data Structures and Algorithms (English)
A "deque" is a data structure consisting of a list of items, on which the following operat ...
- 转 How do GraphQL remote schemas work
文章转自 prisma 官方博客,写的很不错 In this article, we want to understand how we can use any existing GraphQL AP ...
- sourcegraph 方便的代码查看工具
sourcegraph 是一个方便的代码查看插件,有chrome 的插件,具体安装可以在chrome 应用商店,同时 官方提供了基于docker 运行的方式(适合本地使用) 下载镜像 docker p ...
- IT项目管理的十六个字心得体会
目标驱动,系统思维,风险意识,数据量化 凡事预则立,不预则废.如果你不知道要到哪里?给你一张地图也没有用.目标驱动首先要有最基本的计划管理和时间管理能力.对于一个项目,我们过程中做的所有工作都是为了要 ...
- python 书籍推荐 三
主要先学习<python语言入门>学完后,研究<征服python>Python简明教程(A Byte of Python) 此书讲解简洁易懂,适合初学者 剖析Python源代码 ...
- C语言 字符串处理函数 转自 http://blog.chinaunix.net/uid-25885064-id-3175049.html
C字符串处理函数 2012-04-13 18:14:16 分类: C/C++ void *memccpy (void *dest, const void *src, int c, size_t n) ...
- ES6系列_4之扩展运算符和rest运算符
运算符可以很好的为我们解决参数和对象数组未知情况下的编程,让我们的代码更健壮和简洁. 运算符有两种:对象扩展运算符与rest运算符. 1.对象扩展( spread)运算符(...) (1)解决参数个数 ...