Hive简单介绍
Hive是一种以SQL风格进行任何大小数据分析的工具,其特点是通过 SQL处理Hadoop的大数据,数据规模可以伸缩扩展到100PB+,数据形式可以是结构或非结构数据。
Hive与传统关系数据库比较
- 侧重于分析,而非实时在线交易
- 无事务机制
- 不像关系数据库那样可以随机进行 insert或update.
- 通过Hadoop的map/reduce进行分布式处理,传统数据库则没有
- 传统关系数据库只能拓展最多20个服务器,而Hive可以拓展到上百个服务器。
安装Hive
- 首先我们需要安装Java环境和Hadoop环境
- 从这里http://mirrors.shuosc.org/apache/hive/获取Hive安装包
- 解压安装包到安装目录下 1$ tar -xzvf apache-hive-2.2.0-bin.tar.gz
- 添加环境变量 12export HIVE_HOME={{/user/local/hive-2.2.0}}export PATH=$HIVE_HOME/bin:$PATH
- 配置hive-env.sh文件 12HADOOP_HOME=/user/local/hadoop-2.8.1export HIVE_CONF_DIR=/user/local/hive-2.2.0/conf
- 在HDFS文件系统上创建数据仓库目录并赋予权限 1234$ hdfs dfs -mkdir /tmp$ hdfs dfs -mkdir /user/hive/warehouse$ hdfs dfs -chmod g+w /tmp$ hdfs dfs -chmod g+w /user/hive/warehouse
- 使用配置启动Hive,需要初始化Hive的metastore数据库 1$ bin/schematool -initSchema -dbType derby #我在这里折腾了很久....
- 如果报这个错误的话(message:Version information not found in metastore. ),需要修改下面这个配置项 1234<property><name>hive.metastore.schema.verification</name><value>true</value> #这里把true修改成false</property>
- 到这一步就可以使用命令启动Hive了 1$ bin/hive
Hive数据类型
|数据类型|所占字节|开始支持版本|
|TINYINT|1byte,-128 ~ 127||
|SMALLINT|2byte,-32,768 ~ 32,767||
|INT|4byte,-2,147,483,648 ~ 2,147,483,647||
|BIGINT|8byte,-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807||
|BOOLEAN|||
|FLOAT|4byte单精度||
|DOUBLE|8byte双精度||
|STRING|||
|BINARY||从Hive0.8.0开始支持|
|TIMESTAMP||从Hive0.8.0开始支持|
|DECIMAL||从Hive0.11.0开始支持|
|CHAR||从Hive0.13.0开始支持|
|VARCHAR||从Hive0.12.0开始支持|
|DATE||从Hive0.12.0开始支持|
数据库操作
创建数据库
| 
 | 
 | 
删除数据库
| 
 | 
 | 
修改数据库
| 
 | 
 | 
数据库表操作
创建表
| 
 | 
 | 
添加分区表
| 
 | 
 | 
把数据一定规则划分(例如:把收集的日志按天存放),把数据按天存储在一个单独的文件,可以减少了查询处理时间。
加载数据到表中
| 
 | 
 | 
SQL语句
基本查询语句
| 
 | 
 | 
JOIN查询
| 
 | 
 |