赞
踩
他提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现.
无论是kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta信息,用于保证系统可用性.
以前,外部源系统的数据转换通常在晚上分批进行.
Kafka通过充当从源系统接收数据的中介,然后实时地将这些数据提供给目标系统来解决这个缓慢的多步骤过程.
更重要的是,系统不会因此而崩溃,因为Kafka是其独立的一组服务器(称为Kafka集群)
从本质上讲,Kafka减少了对多个集成的需求,因为所有的数据都需要通过Kafka.可以认为成每一个生产系统和消耗系统创建一个与Apache Kafka的集成.
通过解耦数据流,Kafka允许在我们需要时使用数据,而在不需要缓慢集成的情况下,Kafka将延迟(或每个数据电价在所需的时间)减少到仅仅10ms(与其他集成相比减少约10倍或更多),这意味着我们可以快速,实时地提供数据.
Kafka还可以横向拓展到集群中的数百个代理(或服务器)来管理大数据.
有些公司每秒通过Kafka拥有数百万个数据点的高负载.例如:优步使用Kafka实时将汽车位置数据提供给他们的激增定价计算模型.
由于所有数据都集中在Kafka中,因此任何团队的数据访问都变得更加容易.
在过去,欺诈团队可能不得不与网络团队互动以获取特定类型的用户数据,因为它们在不同的目标系统上运行。
现在,欺诈团队将能够通过Kafka直接访问用户数据,以及其他提要,例如财务数据或网站交互
Kafka可以处理实时数据通道.
由于我们需要找到一个技术部分来处理来自应用程序的实时消息,因此实时处理是选择Kafka的核心原因之一.
一个topic可以保存多种数据类型的数据,一种数据类型可以存放到一个topic中(但是不必须).
分区的数量和副本的数量是在创建topic时指定的.
在后期,某个topic的分区数可以重新指定,只能由少变多,无法由多变少.
segment的大小是可以配置的.默认是1G.segment里有两种类型的文件(.index,.log).
index存放的是Log数据对应的索引(两者一一对应).
log文件存放的是数据.
原始数据和副本数据是不可以在同一个节点中的.
flume,java后台服务,shell脚本,python脚本,logstash.
flume从kafka中拉取数据存放到hdfs中,SparkStreaming,Storm…
http://kafka.apache.org/downloads.html
tar -zxvf /data/kafka_2.11-0.9.1.tgz -C /data/
mv /data/kafka_2.11-0.9.1 /data/kafka
分别修改consumer.properties,producer.properties,server.properties.
这三个文件的修改在文件夹中查看
vi /etc/profile
//先将Kafka目录导入
export KAFKA_HOME=/data/kafka
//ATH后加入
:$KAFKA_HOME/bin
zkServer.sh start
nohup kafka-server-start.sh data/kafka/config/server.properties &
kafka-topics.sh --list --zookeeper hadoop1:2181
//创建了一个zhangyonggang的topic
kafka-topics.sh --create --zookeeper hadoop1:2181 --replication-factor 1 --partitions 1 --topic loadkafkadata
当某个topic的replication-factor为N且N大于1时,每个Partition都会有N个副本(Replica)。kafka的replica包含leader与follower
需要在server.properties中设置delete.topic.enable=true才是真的彻底删除,否则只是删除标记或者直接重启.
//删除一个zhangyonggang的topic
kafka-topics.sh --delete --zookeeper hadoop1:2181 --topic zhangyonggang
kafka-console-producer.sh --broker-list hadoop1:9092 --topic hello
kafka-console-consumer.sh --zookeeper hadoop3:2181 --from-beginning --topic hello
在同一个zk上,开启producer一方为生产者,开启consumer一方或多方为消费者,都可以接收生产者发来的消息.
kafka-topics.sh --topic test --describe --zookeeper hadoop1:2181
//结果如下:
//将liuming这个topic的分区修改为4个
kafka-topics.sh --zookeeper hadoop1 --alter --partition 4 --topic liuming
先进入到自定义的Logs目录下,具体操作如下图:
多分区不能往少个分区分,会报错.
只能少分区向多分区中分.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。