网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1、kafka自带的zk是单机的,修改配置也能改成集群,但是有风险,搞不好把kafka改坏了
2、讲道理,虽然kafka依赖zk,但是这毕竟是两个组件,独立出来当然更好,我们应该降低耦合度
安装zookeeper其实也不复杂,只是会有很多坑,我下面的每一步都不要漏掉,最容易出问题的地方就是路径,建议路径保持和我一致,这样你基本直接复制我的命令就能用
1、来到你的服务器,到opt目录,创建一个zookeeper文件夹,然后进去
cd /opt
mkdir zookeeper
cd zookeeper
2、下载zk安装包
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
如果提示wget命令不存在 wget: command not found
yum -y install wget
3、创建三个文件夹server1、server2、server3
因为我只有一台服务器,所以只能搭伪集群,所谓伪集群意思就是在一台机器上开三个端口来模拟三台服务器(真集群步骤也一样,一般来说区别在于伪集群ip相同端口不同,真集群ip不通端口相同)
mkdir server1
mkdir server2
mkdir server3
至此,你的zookeeper目录应该长这样
分别在三个server目录中创建data、datalog两个文件夹
并且将zk安装包分别解压到三个server目录中
mkdir server1/data
mkdir server1/datalog
tar -zxvf zookeeper-3.4.10.tar.gz -C server1
mkdir server2/data
mkdir server2/datalog
tar -zxvf zookeeper-3.4.10.tar.gz -C server1
mkdir server3/data
mkdir server3/datalog
tar -zxvf zookeeper-3.4.10.tar.gz -C server1
至此,每个server目录里都应该是这样
现在开始配置zk集群,关键步骤来了
分别 在三个server目录的data文件夹下建一个 myid 文件,文件内容就一个数字,server1对应1,server2对应2,server3对应3
新建文件
vi /opt/zookeeper/server1/data/myid
按i进入编辑模式,输入数字1,esc,冒号,wq保存退出
vi /opt/zookeeper/server2/data/myid
按i进入编辑模式,输入数字2,esc,冒号,wq保存退出
vi /opt/zookeeper/server3/data/myid
按i进入编辑模式,输入数字3,esc,冒号,wq保存退出
然后 分别 进到zookeeper的conf目录
里面有个文件叫 zoo_sample.cfg ,不要动它,它没啥用
我们复制一份到当前目录取名叫 zoo.cfg,名字其实不重要,但大家都这么取的
cp -i zoo_sample.cfg zoo.cfg
当前目录列表
接着修改zoo.cfg文件
主要修改下民红框中几个地方,其它默认或者根据你自己的情况来修改
如果你全程都是跟着我的目录来的,直接像下面这样配置即可
#/opt/zookeeper/server1/zookeeper-3.4.10/conf/zoo.cfg
dataDir=/opt/zookeeper/server1/data
dataLogDir=/opt/zookeeper/server1/datalog
clientPort=2181
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
#/opt/zookeeper/server2/zookeeper-3.4.10/conf/zoo.cfg
dataDir=/opt/zookeeper/server2/data
dataLogDir=/opt/zookeeper/server2/datalog
clientPort=2182
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
#/opt/zookeeper/server3/zookeeper-3.4.10/conf/zoo.cfg
dataDir=/opt/zookeeper/server3/data
dataLogDir=/opt/zookeeper/server3/datalog
clientPort=2183
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
配置完成,进入zookeeper的bin目录启动zk服务
cd /opt/zookeeper/server1/zookeeper-3.4.10/bin
./zkServer.sh start
cd /opt/zookeeper/server2/zookeeper-3.4.10/bin
./zkServer.sh start
cd /opt/zookeeper/server3/zookeeper-3.4.10/bin
./zkServer.sh start
启动信息
三个zk都启动完了后,jps确认下启动成功没,如果都成功,会有这三个服务
至此,zookeeper集群搭建完成
1、进入/opt目录,创建kafka文件夹
mkdir /opt/kafka
cd /opt/kafka
2、进去下载kafka安装包
wget https://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz
3、创建kafkalogs1、kafkalogs2、kafkalogs3三个文件夹
mkdir kafkalogs1
mkdir kafkalogs2
mkdir kafkalogs3
4、解压kafka安装包
tar -zxvf zookeeper-3.4.10.tar.gz
至此,你的kafka目录应该长这样
开始配置kafka
进入kafka的config目录
cd /opt/kafka/kafka_2.11-1.0.0/config/
里面有个 server.properties 文件
把这个文件重命名并且复制两份,得到这三个文件(不重命名也行,反正要有三份server配置文件,重命名了看着舒服)
mv server.properties server1.properties
cp -i server1.properties server2.properties
cp -i server1.properties server3.properties
最终得到三个server配置文件
我们需要 分别 修改三个server配置文件的四个属性:
-
broker.id:节点id,对应上面zookeeper三个myid文件的值,server1.properties写1,2写2,3写3
-
listeners:监听端口,把下面的 ip 换成你服务器的私有地址(如果填127.0.0.1或localhost可能无法从外面访问kafka服务)
-
log.dirs:日志文件存放目录
-
zookeeper.connect:zk集群ip:端口
修改的时候注意,这个文件很大,你忍一下
//server1
broker.id=1
listeners=PLAINTEXT://ip:9092
log.dirs=/opt/kafka/kafkalogs1
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
//server2
broker.id=2
listeners=PLAINTEXT://ip:9093
log.dirs=/opt/kafka/kafkalogs2
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!