Kafka集群安装(3节点)
一、安装前准备
1.1 示例机器
二、 JDK7 安装
1.1 下载地址
下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
[[email protected] ~]$ cd [[email protected] ~]$ rz -bash: rz: command not found [[email protected] ~]$ su root Password: [[email protected] hadoop]# yum -y install lrzsz
在安装jdk之前,先要卸载自带的openjdk
1.2 安装
解压缩
cd /home/hadoop tar zxvf jdk-7u79-linux-x64.gz
[[email protected] ~]$ pwd /home/hadoop [[email protected] ~]$ ll total 149920 -rw-r--r--. 1 hadoop hadoop 153512879 Oct 23 2015 jdk-7u79-linux-x64.tar.gz [[email protected] ~]$ tar -zxvf jdk-7u79-linux-x64.tar.gz
建立软连接
ln -s jdk1.7.0_79 jdk
设置环境变量
vim /etc/profile
设置环境变量
source /etc/profile
执行 java -version, 如果有版本显示则说明安装成功
三、安装 zookeeper
1、安装 zookeeper
1.1 安装
解压
cd /home/hadoop tar zxvf zookeeper-3.4.5-cdh5.5.4.gz
1.2 建立软连接
1.3设置环境变量
[[email protected] hadoop]# vim /etc/profile [[email protected] hadoop]# source /etc/profile
1.4 修改配置文件
复制配置文件
cd /home/hadoop/zookeeper/conf cp zoo_sample.cfg zoo.cfg
修改参数
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/hadoop/zookeeper/data dataLogDir=/home/hadoop/zookeeper/logs clientPort=2181 server.1=hadoop1:2888:3888 server.2=hadoop2:2888:3888 server.3=hadoop3:2888:3888
tickTime 时长单位为毫秒, 为 zk 使用的基本时间度量单位。 例如, 1 * tickTime 是客户端与 zk 服务端的心跳时间, 2 * tickTime 是客户端会话的超时时间。 tickTime 的默认值为2000 毫秒, 更低的 tickTime 值可以更快地发现超时问题, 但也会导致更高的网络流量(心跳消息)和更高的 CPU 使用率(会话的跟踪处理) 。
clientPort zk 服务进程监听的 TCP 端口, 默认情况下, 服务端会监听 2181 端口。dataDir 无默认配置, 必须配置, 用于配置存储快照文件的目录。 如果没有配置dataLogDir, 那么事务日志也会存储在此目录。
创建目录
mkdir -p /home/hadoop/zookeeper/data mkdir -p /home/hadoop/zookeeper/logs
1.3 创建 ID 文件
在 dataDir 目录下(即/home/hadoop/zookeeper/data下)添加 myid 文件, 并把 server.x 中的 x 数字写入文件中
2 启动 zookeeper
2.1 启动
cd /home/hadoop/zookeeper/bin ./zkServer.sh start
启动 ZK 服务: ./zkServer.sh start
查看 ZK 服务状态: ./zkServer.sh status
停止 ZK 服务: ./zkServer.sh stop
重启 ZK 服务: ./zkServer.sh restart
2.1 测试
在 hadoop1 机器上的 zookeeper 中创建节点
cd /home/hadoop/zookeeper/bin ./zkCli.sh create /hello hehe
在 hadoop2 机器上查看节点
cd /home/hadoop/zookeeper/bin ./zkCli.sh
get /hello //如果有值则说明 zookeeper 运行正常
四、kafka的安装
4.1 安装
在 hadoop1、hadoop2和hadoop3 机器上安装
cd /home/hadoop tar zxvf kafka_2.11-0.8.2.2.tgz ln -s kafka_2.11-0.8.2.2 kafka
环境变量
[[email protected] ~]$ su root Password: [[email protected] hadoop]# vim /etc/profile
#kafka export KAFKA_HOME=/home/hadoop/kafka export PATH=$PATH:$KAFKA_HOME/bin
[[email protected] ~]$ su root Password: [[email protected] hadoop]# vim /etc/profile [[email protected] hadoop]# source /etc/profile [[email protected] hadoop]#
4.1 修改配置文件
1. hadoop1 上修改 config/server.properties
export HBASE_MANAGES_ZK=false broker.id=1 port=9092 host.name=hadoop1 log.dirs=/home/kafka-logs num.partitions=5 log.cleaner.enable=false offsets.storage=kafka dual.commit.enabled=true
delete.topic.enable=true
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181
2. hadoop2 上修改 config/server.properties
export HBASE_MANAGES_ZK=false broker.id=2 port=9092 host.name=hadoop2 log.dirs=/home/kafka-logs num.partitions=5 log.cleaner.enable=false offsets.storage=kafka dual.commit.enabled=true delete.topic.enable=true zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181
3. hadoop3 上修改 config/server.properties
export HBASE_MANAGES_ZK=false broker.id=3 port=9092 host.name=hadoop3 log.dirs=/home/kafka-logs num.partitions=5 log.cleaner.enable=false offsets.storage=kafka dual.commit.enabled=true delete.topic.enable=true zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181
创建目录
mkdir -p /home/kafka-logs
hadoop1、hadoop2和hadoop3都执行。
在三台机器上的kafka目录下,分别执行以下命令
nohup bin/kafka-server-start.sh config/server.properties &
[[email protected] kafka]$ pwd /home/hadoop/kafka [[email protected] kafka]$ nohup bin/kafka-server-start.sh config/server.properties & [1] 15091 [[email protected] kafka]$ nohup: ignoring input and appending output to `nohup.out' [1]+ Exit 1 nohup bin/kafka-server-start.sh config/server.properties [[email protected] kafka]$
出现以下提示后回车即可。
查看状态
cat nohup.out
其他两台也一样
至此,kafka_2.11-0.8.2.2.tgz的3节点集群的搭建完成!