Hive产生背景
- MapReduce编程的不便性
- 传统RDBMS人员的需要
Hive
由Facebook开源,用于解决海量结构化日志的数据统计问题
构建在Hadoop之上的数据仓库
Hive提供SQL查询语言:HQL
底层支持i多种不同的执行引擎 MR/Tez/Spark
Apache Hive数据仓库软件使用SQL语句促进了在分布式存储上的大数据集的读,写和管理。结构可以投射到已存储的数据上。命令行工具和JDBC驱动用于用户连接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.)
Why Hive
- 简单,容易上手
- 为超大数据集设计的计算/扩展能力
- 统一的元数据管理
HIve体系架构
Client:shell 、thrift/JDBC(server/JDBC)、WebUI(HUE/Zeppelin)
metastore:
database:name、location、owner…
table:name、localtion、owner 、colume name/type…
HIve部署架构
外部表&内部表
MANAGED_TABLE:内部表
删除表:HDFS上数据被删除&MySQL中Mate数据也被删除
EXTERNAL_TABLE:外部表
删除表:HDFS上数据不被删除,只删除MySQL中Mate数据
提倡优先使用外部表,能在一定程度上保证数据安全。