ZK安装及kafka基本运行小结

ZK安装及kafka基本运行小结

Sec.1 安装前置

系统版本:Centos 6.5

用户:Cccola

ip:192.168.69.135

Java 配置

JDK 1.8.0_65
~/.bash_profile
export JAVA_HOME=/home/Cccola/jdk1.8.0_65
export PATH=$JAVA_HOME/bin
export CLASSPATH=,:$JAVA_HOME/lib/dt.jar:%JAVA_HOME/lib/tools.jar
Sec.2 安装Zookeeper

版本:Zookeeper3.4.6

1.解压ZK

2.ZK单机版配置

conf/zoo.cfg

# set data directory where the snapshot is stored.
dataDir=/home/Cccola/zookeeper-3.3.6/data
# set logs
dataLogDir=/home/Cccola/zookeeper-3.3.6/logs
# set server
server.1=localhost:4887:5887  

server.2 3可用于多机配置

3.启动Zookeeper
修改bin下执行权限

su root
chmod +x bin/*

启动命令

bin/zkServer.sh start
查看运行状态参数 status
关闭参数 stop
重启参数 restart

本机启动Linux下客户端

bin/zkCli.sh -sever 192.168.69.135
Sec.3 kafka初探

3.1安装与配置

kafka版本:2.9.2-0.8.1.1

配置文件 conf/server.properties

broker.id=0

host.name=192.168.69.135

zookeeper.connect=192.168.69.135:2181

kafka运行

sbin/startkafka.sh

检查是否运行成功

Sec.4 kafka运行机制及初次尝试运行

kafak的运行方式包括如下模块

Producer:向kafka发送消息的客户端。

Consumer:从kafka获取消息的客户端。

Topic:消息队列。

Broker:一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。

Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。

4.1建立Topic及P&C通信

建立topic

bin/kafka-topic.sh --create --zookeeper 192.168.69.135:2181 --replication-factor 1 --partition 1 --topic topic-name
/*参数解释:
--replication 副本
--partition 创建分区数目
--topic 话题名
*/

建立producer在Topic中的客户端

bin/kafka-console-producer --broker-list 192.168.69.135:9092 --topic topic-name

建立consumer在Topic中的客户端

bin/kafka-console-producer --zookeeper 192.168.69.135:2181 --topic topic-name

建立成功后可以在producer的命令行中输入消息,在consumer中可以显示producer发出的消息

4.2 Producer中运行shell脚本

实现思想:通过linux管道将脚本运行的结果导入Topic中,在consumer中便可以进行处理

示例:
shelllogger.sh

#!/bin/sh

# start cmd:
# nohup sh shellcrawler.sh  >> shellcrawler.log 2>&1 &
# set timer
g_getTime=""
function getTime
{
    g_getTime=`date  '+%Y%m%d %H:%M:%S'`
}
#getTime && echo "[$g_getTime] [$0:$LINENO:$FUNCNAME] - "

# set function
function crawler    
{
    int=1
    while(( $int<=1000000000 ))
    do
    log="INSERT INTO test(user,content) VALUES('Cccola.w','hello world');"
    let "int++"
    echo $log >> access.log 
    sleep 1s
    #usleep 1000
    done
}


    # main

    crawler

启动脚本生成文件 access.log

nohup sh shelllogger.sh  &

在producer端将access.log导入Topic

nohup tail -f /home/Cccola/storm/access.log | bin/kafka-console-producer.sh --broker-list 192.168.69.135:9092 --topic topic-name >logs/producer.log 2>&1 &

在consumer端便可接收到producer提供的信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值