Kafka入门实践

1.Apache Kafka官网介绍

http://kafka.apache.org

  • 发布 & 订阅: 类似于一个消息系统,读写流式的数据.
  • 处理: 编写可扩展的流处理应用程序,用于实时事件响应的场景。
  • 存储: 安全的将流式的数据存储在一个分布式,有副本备份,容错的集群。
    Kafka@用于构建实时的数据管道和流式的app.它可以水平扩展,高可用,速度快,并且已经运用在数千家公司的生产环境。

2.CDH Kafka官网介绍

https://docs.cloudera.com/documentation/kafka/latest/topics/kafka.html

3.生产如何选择版本

生产上绝大部分是CDH来构建企业级大数据平台,那么Kafka属于需要自定义部署《CDK部署课程》。
故企业里现在使用CDH5.15.1版本,那么默认zookeeper的版本即为zookeeper-3.4.5-cdh5.15.1, 这是固定的,无法改变。
那么Kafka版本如何选择呢?一般我们选择,当前的CDH官网的Kafka安装包最新版本即可。
当然我司经典版本是选择[0.10.2.0+kafka2.2.0+110],主要是历史时间原因+Spark Streaming对接Kafka的起始版本0.10。

CDH Kafka:
 wget http://archive.cloudera.com/kafka/kafka/4/kafka-2.2.1-kafka4.1.0.tar.gz
 wget http://archive.cloudera.com/kafka/parcels/4.1.0/KAFKA-4.1.0-1.4.1.0.p0.4-el7.parcel
版本:
 kafka_2.11-2.2.1-kafka-4.1.0.jar: scalaversion-kafkaversion-cdkversion
CDH Zookeeper:
 wget https://archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.15.1.tar.gz

4.集群部署及启动

4.1 准备好安装包&配置环境变量

安装包
[hadoop@ruozedata001 app]$ ll
total 0
lrwxrwxrwx 1 hadoop hadoop 50 Oct 16 14:29 kafka -> /home/hadoop/software/kafka_2.
11-2.2.1-kafka-4.1.0
lrwxrwxrwx 1 hadoop hadoop 47 Oct 16 14:29 zookeeper -> /home/hadoop/software/zook
eeper-3.4.5-cdh5.15.1
[hadoop@ruozedata001 app]$ 
环境变量
[hadoop@ruozedata001 ~]$ vi .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
 . /etc/bashrc
fi
# hadoop env
export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
export KAFKA_HOME=/home/hadoop/app/kafka
export PATH=$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin:$PATH
生效
[hadoop@ruozedata001 ~]$ source .bashrc
ruozedata002/003节点一致。

4.2 zookeeper

[hadoop@ruozedata001 ~]$ cd app/zookeeper/conf/
[hadoop@ruozedata001 conf]$ cp zoo_sample.cfg zoo.cfg
编辑配置文件
[hadoop@ruozedata001 conf]$ 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=/home/hadoop/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=ruozedata001:2888:3888
server.2=ruozedata002:2888:3888
server.3=ruozedata003:2888:3888
创建dataDir参数的路径
[hadoop@ruozedata001 ~]$ mkdir tmp/zookeeper
[hadoop@ruozedata001 ~]$ echo 1 > tmp/zookeeper/myid
ruozedata002: 
 zoo.cfg与ruozedata001一致;
 echo 2 > tmp/zookeeper/myid
ruozedata003: 
 zoo.cfg与ruozedata001一致;
 echo 3 > tmp/zookeeper/myid
启动zk
[hadoop@ruozedata001 ~]$ zkServer.sh start
[hadoop@ruozedata002 ~]$ zkServer.sh start
[hadoop@ruozedata003 ~]$ zkServer.sh start
查看状态
[hadoop@ruozedata001 ~]$ zkServer.sh status
[hadoop@ruozedata002 ~]$ zkServer.sh status
[hadoop@ruozedata003 ~]$ zkServer.sh status
其中一个leader,另外两个是follower状态

4.3 kafka

三个节点的配置一件
[hadoop@ruozedata001 ~]$ cd app/kafka/config
[hadoop@ruozedata001 config]$ vi server.properties 
broker.id=0
host.name=ruozedata001
port=9092

log.dirs=/home/hadoop/log/kafka-logs

zookeeper.connect=ruozedata001:2181,ruozedata002:2181,ruozedata003:2181/kafka

[hadoop
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值