Hive是一个基于HDFS的数据仓库软件,可理解为数据库管理工具;Hive的功能主要有:
1. 支持使用SQL对分布式存储的大型数据集进行读、写、管理,将SQL转化成MapReduce任务执行;
2. 将数据结构映射到已存储的数据中,即将存储在HDFS上结构化的文件内容定义成Hive的外部表。
3. Hive提供了命令行的操作工具和JDBC的开发接口。
我们知道HBase也是基于HDFS的数据库,两者之间有何异同点呢?简言之,Hive和HBase都是Hadoop集群下的工具(bi),Hive是对MapReduce的优化(使用SQL操作MR),而HBase则是HDFS数据存储的大管家。
对大数据以及人工智能概念都是模糊不清的,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:522189307,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系 。从java和linux入手,其后逐步的深入到HADOOP-hive-oozie-web-flume-python-hbase-kafka-scala-SPARK等相关知识一一分享!
HiveHBase
出发点使用SQL简化对MapReduce的操作将HDFS上无序的数据映射成有序的表格,便于管理和使用数据
数据存储1. Hive是纯逻辑表,无物理存储结构;只定义表格元数据,元数据保存在其他数据库上如MySQL,表格数据存储在HDFS上;
2. Hive是逻辑表,属于稠密型,定义列数,每一行有固定的列数。
1. HBase表则是物理表,适合存放非结构化的数据;
2. HBase的存储表存储密度小,用户可以对行定义成不同的列。
数据访问Hive是在MapReduce的基础上对数据进行处理,而MapReduce的数据处理依照行模式;HBase为列模式,这样使得对海量数据的随机访问变得可行。
使用场景1. Hive使用Hadoop来分析处理数据,而Hadoop系统是批处理系统,所以数据处理存在延时的问题;
2. Hive没有row-level的更新,它适用于大量append-only数据集(如日志