关于Hive
Hive始于2007年的Facebook.
Hive是一个构建在Hadoop上的数据仓库框架,是应Facebook每天产生的海量新兴社会网络数据进行管理和(机器)学习的需求而产生和发展的.
Hive的设计目的是让精通SQL技能但Java编程技能相对较弱的分析师能够对Facebook存放在HDFS中的大规模数据集执行查询.
Hive的优势和特点:
- 提供了一个简单的优化模型
- HQL类SQL语法,简化MR开发
- 支持在不同的计算框架上运行
- 支持在HDFS和HBase上临时查询数据
- 支持用户自定义函数,格式
- 成熟的JDBC和ODBC驱动程序,用于ETL和BI
- 稳定可靠(真实生产环境)的批处理
- 有庞大活跃的社区
Hive体系架构
Hive服务
(1) cli: Hive的命令行接口(shell环境).默认的服务
(2) hiveserver2: 让Hive以提供Thrift服务的服务器形式运行,允许用不同语言编写的客户端进行访问.hiveserver2在支持认证和多用户并发方面比原始的hiveserver有很大改进.使用Thrift,JDBC和ODBC连接器的客户端需要运行Hive服务器来和Hive进行通信.通过设置hive.server2.thrift.port 配置属性来指明服务器所监听的端口号(默认为10000).
(3) beeline: 以嵌入方式工作的Hive命令行接口(类似于常规的CLI),或者使用JDBC连接到一个Hive Server2进程.
(4)metastore: 默认情况下,metastore和Hive服务运行在同一个进程里.使用这个服务,可以让metastore作为一个单独的(远程)进程运行.通过设置METASTORE_PORT环境 变量(或者使用-p命令行选项)可以指定服务器监听的端口号(默认为9083)
(5)hwi: Hive的web接口.在没有安装任何客户端软件的情况下,这个简单的Web接口可以代替CLI.另外,Hue是一个功能更全面的HadoopWeb接口,其中包括运行HIve查询和浏览Hive metastore的应用程序.
(6)jar: 与hadoop jar等价.这是运行类路径中同时包含Hadoop和hive类Java应用程序的简便方法.
Hive Interface - 命令窗口模式
- 有两种工具:Beeline和Hive命令行(CLI)
- 有两种模式:命令行模式和交互模式
(1)命令行模式
(2)交互模式