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查询
|
|