文档章节

KAFKA官方教程笔记-Quickstart

skanda
 skanda
发布于 2017/09/05 16:50
字数 776
阅读 26
收藏 2

 

1,kafka依赖于zookeeper,下载:

kafka2.10-0.10.00包下载zookeeper3.4.10下载

2,配置启动ZOOKEEPER

    配置项:ZOOKEEPER_HOME,和PATH;参考:

export ZOOKEEPER_HOME=/home/t/source/zookeeper-3.4.10
export JAVA_HOME=/home/t/source/jdk1.8.0_121
export PATH=/home/t/source/jdk1.8.0_121/bin:/home/t/source/scala/scala-2.10.6/bin:/home/t/source/spark/spark-1.6.2-bin-hadoop2.6/bin:$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:/home/t/source/sbt/sbt/bin:/home/t/source/hadoop-2.6.4/bin
export HADOOP_HOME=/home/t/source/hadoop-2.6.4
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export YARN_HOME=/home/t/source/hadoop-2.6.4
export YARN_CONF_DIR=${YARN_HOME}/etc/hadoop

修改zookeeper-3.4.10/conf下,zoo.conf文件:

设置项:

dataDir=/home/t/source/zookeeper-3.4.10/dataDir
dataLogDir=/home/t/source/zookeeper-3.4.10/dataLogDir

zookeeper启动:

./zkServer.sh start

3,配置启动kafka

修改kafka配置项:

kafka外网访问 advertised.listeners=PLAINTEXT://x.x.x.x:9092

启动kafka

./kafka-server-start.sh  ../config/server.properties

创建topic(消息类型)

./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

生产消息:

./kafka-console-producer.sh  --broker-list localhost:9092 --topic test

消费消息:topic数据总量

./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning  

描述主题:

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic myTest4

最终效果:

生产端输入什么,消费端输出什么。

4,创建多broker集群

复制多个server.properties,修改broker.id,因为笔者在单机部署,需要再修改listerners.port,log.dir 

复制server.properties,启动多个broker

bin/kafka-server-start.sh config/server-1.properties
bin/kafka-server-start.sh config/server-2.properties

创建一个bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic myTest2

不写入数据,发现仅在broker=0的log。dir下生成目录

随机写入一些数据,

因为已经有三个broker了, 可以创建replication-factor <=3的topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic myTest3 

如果超过3,会抛如下错误

t@ubuntu:~/source/kafka_2.10-0.10.0.0$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 5 --partitions 1 --topic myTest2
Error while executing topic command : replication factor: 5 larger than available brokers: 3
[2017-09-05 17:24:55,153] ERROR kafka.admin.AdminOperationException: replication factor: 5 larger than available brokers: 3
        at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:117)
        at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:403)
        at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:110)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:61)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)
 (kafka.admin.TopicCommand$)
t@ubuntu:~/source/kafka_2.10-0.10.0.0$ 

查看三个broker的log.dir目录,均多出myTest3-0/目录

使用describe topics命令

t@ubuntu:~/source/kafka_2.10-0.10.0.0$ 
t@ubuntu:~/source/kafka_2.10-0.10.0.0$  bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic myTest3
Topic:myTest3   PartitionCount:1        ReplicationFactor:3     Configs:
        Topic: myTest3  Partition: 0    Leader: 2       Replicas: 2,0,1 Isr: 2,0,1
t@ubuntu:~/source/kafka_2.10-0.10.0.0$ 

因为 replication-factor和partion关系有点乱,所以再试试这个

t@ubuntu:~/source/kafka_2.10-0.10.0.0$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 5 --topic myTest4

结果是三个broker的log.dir目录都出现了

  • "leader":该节点负责所有指定分区的读和写,每个节点的领导都是随机选择的。因为最先启动的是leader2节点,所以leader都变成2。
  • "replicas":备份的节点,无论该节点是否是leader或者目前是否还活着,只是显示。如果不启动broker0,broker1,依旧显示。
  • "isr":备份节点的集合,也就是活着的节点集合。如上图,不启动broker0,broker1,isr只有2.

5,kafka 在bin目录下提供了connect-standalone.sh来自动导入导出数据

bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

connect-file-source.properties配置导入数据连接类以及对应的topic

name=local-file-source
connector.class=FileStreamSource
tasks.max=1
file=test.txt
topic=connect-test

  connect-file-sink.properties配置对应的导出数据连接类以及对应的topic

name=local-file-sink
connector.class=FileStreamSink
tasks.max=1
file=test.sink.txt
topics=connect-test

 

© 著作权归作者所有

共有 人打赏支持
skanda
粉丝 11
博文 93
码字总数 52962
作品 0
厦门
私信 提问
Kafka(二):Kafka安装与使用

一、安装Kafka 官方快速安装文档:http://kafka.apache.org/quickstart 安装kafka 启动zookeeper服务 启动kafka服务 二、Kafka操作 1. 创建Topic 创建一个名叫kafka_test, 一个复制因子一个...

saytime
04/15
0
0
简单搭建 Apache Kafka 分布式消息系统

早先都是用的基于 JMS 规范的消息系统, 像 ActiveMQ, IBM MQSeries 等. 随着互联网的发展, 大约是要适应当今大数据, 高可用性, 高效的需求, 于是诞生了 Apache Kafka 这一新时代的分布式消息...

YanbinQ
2016/10/18
20
0
kafka集群搭建

版本和集群环境 kafka版本:2.11 集群环境:两台虚拟机(我这里是一台当producer,一台当consumer) 官网:http://kafka.apache.org/ 官方文档:http://kafka.apache.org/documentation.htm...

张欢19933
2016/01/22
586
5
kafka报错replication factor: 1 larger than available brokers: 0 问题解决方案

用kfafka命令:./kafka-server-start.sh ../config/server.properties &启动时报以下错误: [2016-04-27 21:54:44,745] ERROR [KafkaApi-100] error when handling request Name: TopicMeta......

海军战士
2016/12/16
454
0
使用E-MapReduce服务将Kafka数据导入OSS

概述 kafka是一个开源社区常用的消息队列,虽然kafka官方(Confluent公司)提供插件从Kafka直接导入数据到HDFS的connector,但对阿里云对文件存储系统OSS却没有官方的支持。本文会举一个简单...

hadoop
2016/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

让天下没有难用的搜索:阿里搜索如何成长为贴心“暖男”?

摘要: 阿里搜索技术体系演进至今天,基本形成了由offline、nearline、online三层体系,分工协作,保证电商平台上,既能适应日常平稳流量下稳定有效的个性化搜索及推荐,也能够去满足电商平台...

阿里云官方博客
14分钟前
3
0
(一)spring cloud互联网分布式微服务云平台规划分析--spring cloud平台整体规划

1. 导语 近期公司孵化了一个互联网产品,随着业务发展,产品运营后用户数据量(过亿)、业务数据量(过100亿)较大,技术团队配合产品、运营快速定制化开发, 还要考虑产品涉及的资金安全、消...

明理萝
15分钟前
0
1
linux 下对于jvm的监测

在看阿里巴巴开源项目的时候,发现了alibaba/arthas ,之前出现会员卡的时候,需要只能去看日志。但是日志又不能有效的知道当时的问题情况。一种方法就是去监测出现问题的情况下,去查看jvm...

miaojiangmin
23分钟前
0
0
大数据就业前景分析的太到位了,想学习大数据的可以看看

大数据广泛应用于电网运行、经营管理及优质服务等各大领域,并正在改变着各行各业,也引领了大数据人才的变革。大数据专业就业前景怎么样?这对于在就业迷途中的我们是一个很重要的信息。 随...

董黎明
56分钟前
3
0
如何利用Photoshop进行快速切图

在UI设计中我们常常使用Ai来进行矢量图的绘制,然后导入Ps中进行设计、排版和导出。 在以前的版本中,切图一直是个很麻烦的事情,要么依托于脚本,要么手动一张张导出,很不方便,这种窘况在...

mo311
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部