Hive 是什么?
Hive 是基于 Hadoop 的一个数据仓库工具,能够将结构化的数据文件映射成为一张数据库表,并提供类 SQL 的查问性能。能够将 sql 语大数据培训句转化为 MapReduce 工作进行运行。Hive 提供了一系列的工具,能够用来进行数据提取转化加载,这是一种能够存储、查问和剖析存储在 Hadoop 中的大规模数据的机制。
Hive 的架构
用户接口:Shell/CLI,CLI,Shell 终端命令行,采纳交互模式应用 Hive 命令行与 Hive 进行交互。Cli 启动的时候,会同时启动一个 Hive 正本。JDBC/ODBC 客户端是 Hive 的 JAVA 实现,与传统数据库 JDBC 相似。Web UI 通过浏览器拜访 hive。次要用来将咱们的 sql 语句提交给 hive。
Thrift 服务器:Thrift 是 Facebook 开发的一个软件框架,能够用来进行可扩大且跨语言的服务的开发,Hiv 集成了该服务,能让不同的编程语言调用 Hive 的接口。
元数据库: 存储在 Hive 中的数据的形容信息。Hive 将元数据存储在数据库中,如 mysql、derby。Hive 中的元数据包含表的名字,表的列和分区及其属性,表的属性,表的数据所在目录等。
解释器蕴含编译器、优化器、执行器: 实现 HQL 查问语句从词法剖析、语法分析、编译、优化以及查问打算的生成。
编译器:次要将 sql 语句编译成一个 MR 的工作。
优化器:次要是对咱们的 sql 语句进行优化。
执行器:提交 mr 工作,进行执行。
Hive 的数据基于 HDFS 进行存储,查问打算被转化为 MapReduce 工作,在 Hadoop 中执行。
操作数据库
1. 创立数据库:create database if not exists 数据库名;
2. 创立数据库并指定 hdfs 存储地位:create database 数据库名 location‘地位’;
3. 查看有哪些数据库:show databases;
4. 批改数据库的信息:alter database 数据库名 set dbproperties()
5. 查看数据库的信息:desc database 数据库名;
6. 查问具体数据库信息:desc database extended 数据库名;
7. 删除数据库(删除一个空数据库):drop database 数据库名;
8. 强制删除数据库(删除有数据的数据库):drop database myhive cascade;