系统 | 版本 | 下载地址 |
---|---|---|
CentOS | 6.5 64x | 下载地址 |
hadoop | 2.6.0 | 下载地址 |
Hive | 1.1.0 | 下载地址 |
Hive 是基于 Hadoop 构建的一套数据仓库分析系统,它提供了丰富的
SQL 查询方式来分析存储在 Hadoop 分布式文件系统中的数据
可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,
可以将 SQL 语句转换为 MapReduce 任务进行运行,通过自己的 SQL 去 查询分析需要的内容,这套 SQL 简称 Hive SQL。
MapReduce 开发人员可以把自己写的 Mapper 和 Reducer 作为插件支持 Hive 做更复杂的数据分析。 它与关系型数据库的 SQL 略有不同,但支持了绝大多数的语句(如 DDL、DML)以及常见的聚合函数、连接查询、条件查询等操作。
Hive 不适合用于联机(online) 事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。Hive 的特点是可 伸缩(在Hadoop 的集群上动态的添加设备),可扩展、容错、输入格式的松散耦合。Hive 的入口是DRIVER ,执行的 SQL 语句首先提交到 DRIVER 驱动,然后调用 COMPILER 解释驱动, 最终解释成 MapReduce 任务执行,最后将结果返回。
(1)用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是
CLI,Cli启动的时候,会同时启动一个Hive副本。 Client是Hive的客户
端,用户连接至Hive Server。在启动 Client模式的时候,需要指出
Hive Server所在节点,并且在该节点启动Hive Server。 WUI是通过
浏览器访问Hive。
(2)Hive将元数据存储在数据库中,如mysql、 derby(默认)。 Hive中的
元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外
部表等),表的数据所在目录等。
(3)解释器、编译器、优化器完成HQL查询语句从词法分析、语法
分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS
中,并在随后有MapReduce调用执行。
(4)Hive的数据存储在HDFS中,大部分的查询、计算由
MapReduce完成(包含的查询,比如select from tbl不会生成
MapRedcue任务)。
1)单用户模式
该模式是将元数据存储在derby(Hive)默认的数据库中,而且你再linux那个目录启动将会在该目录生成metastore_db
文件,那么你要你以后需要在指定的目录访问才能找到原先存储的元数据,该模式用于测试
2)多用户模式
远程服务器模式。用于非Java客户端访问元数据库,在服务器端启动
MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问
元数据库
3)远程服务器模式
用于非Java客户端访问元数据库,在服务器端启动
MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问
元数据库
vi /etc/profile
#HIVE
HIVE_HOME=/opt/hadoop/hive-1.1.0-cdh5.6.0
PATH=$PATH:$HIVE_HOME/bin
export HIVE_HOME PATH
刷新环境变量配置
source /etc/profile
刚刚配置完环境变量,可以直接启动hive
[root@ch01 hive-1.1.0-cdh5.6.0]# hive
which: no hbase in (/usr/java/jdk1.7.0_79/bin:/usr/java/jdk1.7.0_79/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/bin:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/sbin:/opt/hadoop/zookeeper-3.4.5-cdh5.6.1/bin:/root/bin:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/bin:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/sbin:/opt/hadoop/zookeeper-3.4.5-cdh5.6.1/bin:/opt/hadoop/hive-1.1.0-cdh5.6.0/bin)
Logging initialized using configuration in jar:file:/opt/hadoop/hive-1.1.0-cdh5.6.0/lib/hive-common-1.1.0-cdh5.6.0.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive>
在Hive-1.1.0版本后没有hive-default.xml和hive-site.xml
所以我们需要自己去配置
hive-site.xml常用命令
#mysql 数据配置
javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.2.251:3306/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore
#加载mysql jdbc驱动包
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore
javax.jdo.option.ConnectionUserName
root
username to use against metastore database
javax.jdo.option.ConnectionPassword
root
password to use against metastore database
#配置hive ui
hive.hwi.war.file
lib/hive-hwi-1.1.0-cdh5.6.0.jar
This sets the path to the HWI war file, relative to ${HIVE_HOME}.
hive.hwi.listen.host
0.0.0.0
This is the host address the Hive Web Interface will listen on
hive.hwi.listen.port
9999
This is the port the Hive Web Interface will listen on
#配置 Hive 临时文件存储地址
如果是将hive的元数据(Namenode)信息存储在mysql上,需要在hive/lib
目录下添加mysql的驱动包。
驱动包地址
待更新···