我在Hadoop中有一个包含100列和几百行的数据结构。大多数时候我需要查询65%的列。在这种情况下哪个更好地使用HBASE或HIVE?请指教。
答案 0 :(得分:2)
当您有仓储需求并且擅长SQL并且不想编写MapReduce作业时使用Hive。但重要的一点是,Hive查询会转换为在您的集群上运行的相应MapReduce作业,并为您提供结果。 Hive为你做的伎俩。但是使用HiveQL无法解决每一个问题。有时,如果你需要非常细粒度和复杂的处理,你可能不得不采取MapReduce的庇护所。
您可以使用Hbase来实现此目的。如果您有一些想要实时访问的数据,可以将其存储在Hbase中。
当您知道自己的访问模式时, hbase get 'rowkey'
功能强大
系统中的每个节点都包含相同的数据(例如副本永远不会超出数据)
对系统中非故障节点的每个请求都会返回响应
系统属性(一致性和/或可用性)即使在系统被分区(通信丢失)和数据丢失(节点丢失)时也会保留
还可以查看this
答案 1 :(得分:0)
很难在一行中回答这个问题。
HBASE是NoSQL数据库:您的数据需要存储非规范化数据,因为HBASE对于joi非常糟糕
ning tables。
Hive:您可以在Hive中以类似格式存储数据(规范化),但只能在批量处理时看到好处。