您的位置:首页 > 其它

kafka本地单机安装部署

2018-01-10 15:16 483 查看
  

kafka本地单机安装部署

原理

Kafka是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。

1、 消息的发布称为 producer,即生产者。消息的订阅称作 consumer,即消费者。一台 kafka服务器就是一个broker。一个集群由多个broker组成。

2、Producer和broker之间没有负载均衡机制。broker和consumer之间利用zookeeper进行负载均衡。所有broker和consumer都会在zookeeper中进行注册,且 zookeeper会保存他们的一些元数据信息。如果某个broker和consumer发生了变化,所有其他的broker和consumer都会得到通知。

3、producer产生和推送(push)数据到broker,consumer从broker拉取(pull)数据并进行处理。 

4、使用磁盘进行存储,线性读写,速度快:避免了数据在JVM内存和系统内存之间的复制,减少性能的创建对象和垃圾回收。

Kafka的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。

准备工作: 



上述的文件除了jdk以外均放在/opt/kafka目录下

1、安装jdk1.7包

tar -zxvf jdk-7u55-linux-x64.gz

 

vim /etc/profile

export JAVA_HOME=/opt/jdk1.7.0_55

export PATH=$JAVA_HOME/bin:$PATH

 
使其立即生效 source /etc/profile 

检查是否安装成功:java –version



至此jdk安装配置成功。

2、安装zookeeper包 

cd /opt/kafka 

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz 

tar -zxvf zookeeper-3.3.6.tar.gz 

vim /etc/profile



使之立即生效 

source /etc/profile
 
vim /opt/kafka/zookeeper-3.3.6/conf/zoo.cfg
 
tickTime=2000
dataDir=/opt/kafka/zookeeper-3.3.6/data
clientPort=2181
initLimit=10
syncLimit=5
server.1=192.168.200.243:2888:3888
 
mkdir -p /opt/kafka/zookeeper-3.3.6/data/
echo "1" >> /opt/kafka/zookeeper-3.3.6/data/myid
测试zookeeper是否安装成功 

cd /opt/kafka/zookeeper-3.3.6/bin 

./zkServer.sh start





如上图所示,即为zookeeper安装配置成功。

3、安装kafka包

cd /opt/kafka 
wget https://archive.apache.org/dist/kafka/0.8.0/kafka_2.8.0-0.8.0.tar.gz 

tar -zxvf kafka_2.8.0-0.8.0.tar.gz 
配置kafka,修改文件server.properties 
cd /opt/kafka/kafka_2.8.0-0.8.0/config



vim server.properties



将上图中的host.name处写上本地服务器的IP地址



mkdir -p /opt/kafka/kafka_2.8.0-0.8.0/logs
上图中的log.dirs结合自己所建的文件夹路径填写,没有严格要求



上图中的红框处默认为2181端口
#配置kafka下zookeeper 
mkdir -p /opt/kafka/kafka_2.8.0-0.8.0/zookeeper #创建zookeeper目录 

mkdir -p /opt/kafka/kafka_2.8.0-0.8.0/log/zookeeper #创建zookeeper日志目录 

cd /opt/kafka/kafka_2.8.0-0.8.0/config 

vim zookeeper.properties



dataDir=/opt/kafka/kafka_2.8.0-0.8.0/zookeeper
dataLogDir=/opt/kafka/kafka_2.8.0-0.8.0/log/zookeeper
上图中的dataDir和dataLogDir可以依据自己建立的文件夹路径填写。

4、后台启动kafka

(1
b9b3
)后台启动kafka服务 

cd /opt/kafka/kafka_2.8.0-0.8.0/bin
nohup ./kafka-server-start.sh ../config/server.properties &



5、测试kafka

(1)、创建 topic

#创建一个叫做"test"的topic,它只有一个分区,一个副本。

cd /opt/kafka/kafka_2.8.0-0.8.0/bin 

./kafka-create-topic.sh -partition 1 -replica 1 -zookeeper localhost:2181 -topic test



(2)、通过list命令查看创建的topic:

./kafka-list-topic.sh -zookeeper localhost:2181



(3)、启动producer 发送消息

#运行producer并在控制台中输一些消息,这些消息将被发送到服务端:

./kafka-console-producer.sh -broker-list 192.168.200.243:9092 -topic test 
(192.168.200.243是本地服务器IP地址,读者根据情况填写)



如上图所示,输入this is a message后,回车 

(4)、启动consumer消费消息

cd /opt/kafka/kafka_2.8.0-0.8.0/bin 
./kafka-console-consumer.sh -zookeeper localhost:2181 -topic test



你在一个终端中运行consumer命令行,在另一个终端中运行producer命令行,就可以在一个终端输入消息,另一个终端读取消息。
kafka的单机安装部署完成。

(5)、关闭kafka

cd /opt/kafka/kafka_2.8.0-0.8.0/bin 
./kafkastop.sh
 

6、KafkaOffsetMonitor进行监控

KafkaOffsetMonitor 是有由Kafka开源社区提供的一款Web管理界面。
#新建一个单独用于Kafka的监控目录,我这里新建一个kafka_monitor文件目录,然后写启动脚本,脚本内容如下所示:
cd /opt/kafka/kafka_2.8.0-0.8.0
mkdir kafka_monitor
 cd kafka_monitor/
上传KafkaOffsetMonitor-assembly-0.2.0.jar包到kafka_monitor目录
 touch run.sh
 vim run.sh
 
#! /bin/bash
java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--zk 192.168.200.243:2181 \
--port 8080 \
--refresh 10.seconds \
--retain 1.days
#首先指明运行Web监控的类,然后需要用到ZooKeeper,所有要填写ZK集群信息,接着是Web运行端口,页面数据刷新的时间以及保留数据的时间值。
# nohup ./run.sh &





 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: