hadoop,zookeeper,hive,hbase对比总结

您所在的位置:网站首页 kafka和zookeeper的关系形象对比 hadoop,zookeeper,hive,hbase对比总结

hadoop,zookeeper,hive,hbase对比总结

2024-03-03 18:06| 来源: 网络整理| 查看: 265

1.

Hadoop是是一个由Apache基金会所开发的分布式系统基础架构。主要解决,海量数据的存储和海量数据的分析计算问题。广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈。 Hadoop的优势: 1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。 2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。 3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。 4)高容错性:能够自动将失败的任务重新分配。

2.

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群

3.

Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种storage。Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。

Flume最主要的作用就是:实时读取服务器本地磁盘的数据,将数据写入到HDFS。

4.

hive是基于Hadoop的一个数据仓库工具,由Facebook开源用于解决海量结构化日志的数据统计。可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能【hql】,可以将 sql语句转换为MapReduce任务进行运行。 本质是:将HQL转化成MapReduce程序 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

优点 1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。 2)避免了去写MapReduce,减少开发人员的学习成本。 3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。 4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。 5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。 缺点 1.Hive的HQL表达能力有限 (1)迭代式算法无法表达 (2)数据挖掘方面不擅长 2.Hive的效率比较低 (1)Hive自动生成的MapReduce作业,通常情况下不够智能化 (2)Hive调优比较困难,粒度较粗

5.

zookeeper是Hadoop的正式子项目,Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。 是Hadoop和Hbase的重要组件。 提供Java和C的接口。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式 Zookeeper=文件系统+通知机制

特点: 1)Zookeeper:一个领导者(leader),多个跟随者(follower)组成的集群。 2)Leader负责进行投票的发起和决议,更新系统状态 3)Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票 4)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。 5)全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的。 6)更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行。 7)数据更新原子性,一次数据更新要么成功,要么失败。 8)实时性,在一定时间范围内,client能读到最新数据。

自己理解: Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题。ZooKeeper提供的服务包括:分布式消息同步和协调机制、服务器节点动态上下线、统一配置管理、负载均衡、集群管理等。

ZooKeeper提供基于类似于Linux文件系统的目录节点树方式的数据存储,即分层命名空间。Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化,通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,ZooKeeper节点的数据上限是1MB。

我们可以认为Zookeeper=文件系统+通知机制,

对于ZooKeeper的数据结构,每个子目录项如 NameService 都被称作为 znode,这个 znode 是被它所在的路径唯一标识,如 Server1 这个 znode 的标识为 /NameService/Server1;

znode 可以有子节点目录,并且每个znode 可以存储数据,注意EPHEMERAL 类型的目录节点不能有子节点目录(因为它是临时节点);

znode 是有版本的,每个 znode中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据;

znode 可以是临时节点,一旦创建这个znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了;

znode 的目录名可以自动编号,如App1 已经存在,再创建的话,将会自动命名为 App2;

znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 Zookeeper 的核心特性,Zookeeper 的很多功能都是基于这个特性实现的,后面在典型的应用场景中会有实例介绍。

应用场景: 提供的服务包括:分布式消息同步和协调机制、服务器节点动态上下线、统一配置管理、负载均衡、集群管理等。 这里写图片描述 这里写图片描述 这里写图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3