连面试这件事都想给改改
Kafka支持分区(partition)和副本(replica),针对消息队列进行处理。消息传送功能包含连接服务(connection service)、消息的路由(routing)、传送(delivery)、持久性(durability)、安全性(security)和日志记录(log)。 Kafka的主要应用程序接口有如下四类:生产者(producer API)、消费者(consumer API)、流(stream API)和连接器(connector API)。 Kafka对外的接口设计理念是基于话题(topic)的,消息生成后被写入话题中,用户从话题中读取消息。单个的话题由多个分区构成,当系统性能下降时,通常的操作是增加分区的个数。 分区之间的消息互相独立,每个分区内的消息是有序的。新消息的写入操作在具体实现中为相应文件内容的追加操作,该方式具有较强的性能。由于一个话题可以包含多个分区,因此Kafka具有高吞吐量、低延迟的特性。 消息队列包含两个模型:点对点(point-to-point)和发布/订阅(publish/subscribe)。
对于点对点模型,消息生成后进入队列,由用户从队列中取出消息并使用。当消息被使用后,其生命周期已经结束,即该消息无法再次被使用。虽然消息队列支持多个用户,但一个消息仅能够被一个用户所使用。 hark支持Hive包含的查询语言、元存储、序列化格式以及自定义函数。后来,Hadoop体系结构中MapReduce本身的结构限制了Shark的发展,研究者们中止了Shark的研发,启动了Shark SQL这个新项目。Shark SQL是基于Spark的一个组件,提供了针对结构化数据的便捷操作,统一了结构化查询语言与命令式语言。 Shark在Spark的体系结构中提供了和Hive相同的HiveQL编程接口,因此与Hive兼容。通过Hive的HQL解析,将HQL转换成Spark上的RDD操作。 12 Kafka
Kafka是一个分布式流处理平台(distributed streaming platform),最初由领英公司开发,使用的编程语言是Java和Scala。 相对于Hadoop,Spark的显著特点是能够在内存中进行计算,因此又称为通用内存并行计算框架,与MapReduce兼容,其主要构件包括SparkCore、SparkSQL、SparkStreaming、MLlib、GraphX、BlinkDB和Tachyon。 Hadoop存在磁盘I/O和序列化等性能瓶颈,在Spark的设计理念中,选用内存来存储Hadoop中存储在HDFS的中间结果。Spark兼容HDFS,能够很好地融入Hadoop体系结构,被认为是MapReduce的替代品。 根据Spark官方网站的数据,Spark的批处理速度比MapReduce提升了近10倍,内存中的数据分析速度则提升了近100倍。 Spark模型所特有的弹性分布式数据集(Resilient Distributed Dataset,RDD)使得针对数据的灾难恢复在内存和磁盘上都可以实现。 总体来说,Spark的编程模型具有以下四个特点:速度(speed)、简易(ease of use)、通用(generality)和兼容(runs everywhere)。
11 Shark
作为一个面向大规模数据的数据仓库工具,Shark最初是基于Hive的代码进行开发的。Hive在执行交互查询时需要在私有数据仓库上执行非常耗时的ETL操作,为了弥补这个性能问题,Shark成了Hadoop体系结构中的首个交互式SQL软件。 (编辑:衡水站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |