Apache Kafka开发入门指南之2
Apache Kafka开发入门指南之2
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs
Apache Kafka目标是统一离线和在线处理,与Flume和Scribe相比较,Kafka在处理活动流数据方面更具优势。但是从架构的视野来看,Kafka与传统的消息系统(例如ActiveMQ或RabbitMQ)更相似一些。
注:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS、分布式文件系统等),以便于进行集中统计分析处理。它为日志的“分布式收集、统一处理”提供了一个可扩展的、高容错的方案。当中央存储系统的网络或者机器出现故障时,Scribe会将日志转存到本地或者另一个位置,当中央存储系统恢复后,Scribe会将转存的日志重新传输给中央存储系统。Scribe通常与Hadoop结合使用。Scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理。
注:Flume最早是Cloudera提供的高可用、高可靠、分布式的海量日志采集、聚合和传输的日志收集系统,目前归属于Apache,是Apache基金会下的一个孵化项目。Flume支持在日志系统中定制各类数据的发送方,用于收集数据;同时Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume提供了从Console(控制台)、RPC(Thrift-RPC)、Text(文件)、Tail(UNIX tail)、Syslog(syslog日志系统,支持TCP和UDP等2种模式),Exec(命令执行)等数据源上收集数据的能力。Flume采用了多Master的方式。为了保证配置数据的一致性,Flume引入了ZooKeeper,用于保存配置数据,ZooKeeper本身可保证配置数据的一致性和高可用。另外,在配置数据发生变化时,ZooKeeper可以通知Flume Master节点。Flume Master间使用Gossip协议同步数据。
不少公司使用了Kafka:
1)LinkedIn
LinkedIn公司使用Apache Kafka作为活动数据的流化和运营度量。
2)DataSift
http://www.datasift.comDataSift公司使用Apache Kafka作为监控事件的收集器以及用户消费的实时数据流的跟踪器。
3)Twitter
Twitter公司使用Apache Kafka作为其Storm平台的一部分。
注:Storm是一个流处理架构。
4)Foursquare
Foursquare公司使用Apache Kafka处理在线之间和在线与离线之间的消息传输,把Kafka与Foursquare监控和产品系统以及基于Hadoop的离线基础设施进行集成。
5)Square
Square公司使用Apache Kafka作为总线,在Square的各个数据中心之间传输所有的系统事件,包括:度量、日志、自定义事件等等。在用户端,它输出到Splunk、Graphite或Esper实时警告。
二、Apache Kafka安装
Kafka是Apache的顶级项目之一,当前的最新版本为0.7.2稳定版,0.8版还是Beta版,但已经获得了很多大型公司的认可。与0.7.2版相比,Kafka 0.8版提供了很多高级特性,如下:
1)在0.8版之前,如果经纪人Broker失效,那么任何Topic内的未消费分区的数据可能会丢失。而0.8版对分区增加了复制因子,这确保了只要有一个复制集有效,那么任何未提交的消息都不会丢失。
2)早先的版本还确保了所有的生产者和消费者都是复制敏感的。默认情况下,生产者的消息发送请求会被阻塞,直到消息提交到所有活动的复制集上才会解除阻塞。但是,生产者还能被配置为提交消息到单个经纪人Broker。
3)与Kafka的生产者一样,Kafka的消费者的投票模型改为长轮询模型且会被阻塞,除非已提交的消息是有效的才会解除阻塞。
4)另外,Kafka 0.8版还配备了一套管理工具,比如集群的受控关机和领导复制选举工具等。
Apache Kafka 0.7.x版不能被0.8版所替代的主要原因是0.8版不能向后兼容。
如果要把现有的基于Kafka 0.7.x版的集群迁移到基于0.8版的Kafka集群上,Apache Kafka提供了迁移工具。迁移工具实际上担当了基于Kafka 0.7.x版的集群的消费者的角色,并在基于0.8版的Kafka集群上担当了生产者重发布消息的角色。
下面的视图说明了整个迁移:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
hbase运行模式
Hbase有两种运行模式:standalone和distributed。standalone模式参见Quick Start Guide。以distributed模式设置Hbase,需要编辑Hbase conf目录中文件。 无论哪种模式,都需要编辑conf/hbase-evn.sh来告诉使用哪个java。并且可以设置Hbase环境变量如heap size、JVM的其他选项等。设置JAVA_HOME来指定java的安装目录。 Standalone Mode 默认的运行模式。在该模式下,Hbase不会使用HDFS,而是使用本地文件系统。它在同一个虚拟机中运行所有Hbase daemon和本地ZooKeeper。ZooKeeper绑定一个众所周知的端口,所以客户端可以和Hbase通讯。 Distributed Mode distributed mode可以被进一步分成伪分布式(所有daemons运行在一个节点上)和完全分布式(所有daemons分布在集群上多个机器上)。distributed modes需要一个HDFS实例。 Pseudo-distributed Mode 一旦HD...
- 下一篇
cdh4
libhadoop.so其实是后面安装impala时要用到 此处配置环境变啦时注意 下 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$HADOOP_LIB/native/libhadoop.so 版本及准备 我部署的是hadoop-2.0.0-cdh4.2.0.tar.gz,下载地址为http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.2.0.tar.gz。在http://archive.cloudera.com/cdh4/cdh/下还可以下载到CDH hadoop生态圈内相关的包。再准备一个jdk1.6+的java环境,设置好JAVA_HOME。 需要注意的是,window下直接点击链接下载到的包可能无法解压成功,原因是包是放在linux ftp上的,直接下载会有问题。建议在linux机器上用wget命令下载就可以了,如果你的机器不能联网的话,也可以联系我把包发给你。 基础配置 给集群配好 SSH;在hosts里可以准备好自己机器的...
相关文章
文章评论
共有0条评论来说两句吧...