1、hive是什么?
The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.
Hive是一个构建在Hadoop之上的数据仓库,提供类似sql的查询语句HiveQL对数据进行分析处理。Hive将HiveQL语句转换一系列成MapReduce作业并执行。目前,Hive除了支持MapReduce计算引擎,还支持Spark和Tez这两中分布式计算引擎。常用于离线批处理。
2、hive产生背景
1)mapreduce编程繁琐性:一个标准的mapreduce程序包括Mapper、Reducer、Driver。写完mr程序后还要打包成jar包丢到集群上运行。更改需求之后可能需要更改大量代码,重新打包上传,十分不便。
2)使用SQL对hdfs上的数据进行统计分析显然要好过写代码,而我们同时有用来大量的DBA从业人员。
3、hive和RDBMS的关系?
hive与RDBMS仅仅是语法类似,一毛钱关系都没有。
4、hive底层支持的引擎有哪些?
有三个:MapReduce、Tez、spark。
5、RDBMS和hive的比较。
hive处理的数据较大,PB级数据都行。RDBMS处理数据较少。
hive实时性较差,一个hive的作业跑八个小时都可能跑不完。hive也支持事务(0.14版本开始支持)。
RDBMS也支持分布式、但节点数较少,构建在专用的机器上,成本昂贵。
6、为什么要使用hive?
1)方便易用
2)弹性,算力不足简单加机器就行。
3)统一的元数据管理:
对于Hive/Impala/Spark SQL/Presto,在其中之一上创建一张表,在其他任意一个上都可以使用。
好处:移植方便。
7、hive中的数据保存在hdfs上,元数据保默认保存在自带的Derby数据库中,我们可以更改其默认的元数据库为MySQL,生产上也是这样做的。
8、hive的四种连接方式: