一、Zookeeper
1. 下载解压
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
2. 配置(非必须)
cd conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
可以根据自己的需要进行配置,一般默认即可
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
3. 启动zookeeper
启动命令:./bin/zkServer.sh
root@ACE:/usr/local/zookeeper/apache-zookeeper-3.6.3-bin# ./bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
4. 检查zk进程
用jps
查看zk的进程,发现什么都没有,于是查看日志,发现报如下错误:
2021-05-05 13:36:14,466 [myid:] - ERROR [main:ZooKeeperServerMain@85] - Unable to start AdminServer, exiting abnormally
org.apache.zookeeper.server.admin.AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands
at org.apache.zookeeper.server.admin.JettyAdminServer.start(JettyAdminServer.java:189)
at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:153)
at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:112)
at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:67)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:140)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:90)
Caused by: java.io.IOException: Failed to bind to /0.0.0.0:8080
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at org.eclipse.jetty.server.Server.doStart(Server.java:401)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at org.apache.zookeeper.server.admin.JettyAdminServer.start(JettyAdminServer.java:180)
... 5 more
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
... 12 more
Unable to start AdminServer, exiting abnormally
查资料得知zookeeper 比较新的版本会占用8080端口(zk有个内嵌的管理控制台是通过jetty启动,会占用8080 端口),而我的8080端口被Spark占用了,所以我需要改一下zookeeper的配置文件,在zoo.cfg
配置文件中添加:
admin.serverPort=8888
再次启动zookeeper,并查看zk的进程:
root@ACE:/usr/local/zookeeper/apache-zookeeper-3.6.3-bin# jps
3264 QuorumPeerMain
此时zookeeper已正常启动。
附:zk集群搭建
二、Kafka
1. 下载解压
tar -zxvf kafka_2.12-2.8.0.tgz
2. 配置(非必须)
如果需要修改配置,可以修改config/server.properties
文件
3. 启动
注意:-daemon
是为了让kafka在后台启动
./bin/kafka-server-start.sh -daemon config/server.properties
查看启动进程:
root@ACE:/usr/local/kafka/kafka_2.12-2.8.0# jps
5540 Kafka