hbase与hive的比较

vfhzx4xs  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(353)

我试图对hbase有一个清晰的了解。
hive:- it 只需为hdfs中的底层文件创建一个表格结构。因此,我们可以使用户对hdfs文件具有查询能力。如果我错了,请纠正我?
hbase—同样,我们已经创建了一个类似的表结构,但是在hdfs文件系统上,它还是以结构化的方式(面向列)创建的。
考虑到他们的工作类型,他们不是都一样吗。除了那个Hive在Mapreduce上运行。
我们不能在已经存在的hdfs文件上创建hbase表,这也是真的吗?

piztneat

piztneat1#

hive和hbase是完全不同的东西
hive是一种为驻留在hdfs上的数据(可以是文件或hbase)创建map/reduce作业的方法hbase是一种驻留在hdfs上的面向oltp的键值存储,可以在map/reduce作业中使用
为了让hive工作,它保存元数据,将hdfs数据Map为表格数据(因为sql在表上工作)。
我想还需要注意的是,在最近的版本中,hive正在发展,超越了编写Map/减少作业的sql方式,通过hortonworks所称的“stinger计划”,他们添加了一个专用文件格式(orc)并导入hive的性能(例如,通过即将推出的tez执行引擎),以在hadoop上交付sql(例如,相对而言)对存储在hadoop上的数据运行分析查询的快速方法)

ugmeyewa

ugmeyewa2#

hive与传统的rdbms(但不是全部)有着非常相似的结构,hql语法几乎与sql相似,从学习的Angular 来看,sql对数据库程序员来说是很好的,因为hbase完全不同,只能根据它的行键来查询它。
如果您想在rdbms中设计一个表,您将遵循结构化的方法来定义更多集中在属性上的列,而在hbase中,整个设计集中在数据上,因此,根据要使用的查询类型,我们可以在hbase中设计一个表,列也将是动态的,并且在运行时会发生变化(nosql的核心特性)

toiithl6

toiithl63#

Hive:
它只是为hdfs中的底层文件创建一个表格结构。因此,我们可以使用户对现有的hdfs文件具有类似sql的查询能力—典型的延迟可达几分钟。但是,为了获得最佳性能,建议将数据etl转换为hive的orc格式。
hbase公司:
与hive不同,hbase不是针对hdfs中的现有数据运行sql查询。
hbase是一个严格一致、分布式、低延迟的键值存储。
来自hbase权威指南:
bigtable和hbase的规范用例是webtable,即在internet上爬行时存储的web页面。行键是页面的反向url,例如org.hbase.www。有一个列族存储实际的html代码、contents族以及其他类似anchor的列族,anchor用于存储传出链接,另一个用于存储入站链接,还有一个用于类似元数据的语言。对contents系列使用多个版本允许您存储一些较旧的html副本,例如,当您想分析页面更改的频率时,这会很有帮助。使用的时间戳是从已爬网网站获取时间戳的实际时间。
hbase使用hdfs只是一个实现细节:它允许在现有hadoop集群上运行hbase,它保证了数据的冗余存储;但这不是其他意义上的特征。
我们不能在已经存在的hdfs文件上创建hbase表,这也是真的吗?
不,这不是真的。hbase内部以hfile格式存储数据。

lb3vh1jj

lb3vh1jj4#

你说考虑到他们的工作类型,他们不是都一样吗。除了配置单元在mapreduce上运行之外,这不是一个简单的想法。因为在执行配置单元查询时,将创建并触发mapreduce作业。根据数据大小和复杂性,它可能会消耗时间,因为对于每个mapreduce作业,jobtracker都要执行一些步骤,初始化maps、combine、shufflesort等任务,减少等。
但如果我们访问hbase,它会直接查找它们根据指定的 Scan 或者 Get 参数。意味着它只是一个数据库。

相关问题