1. 简介:
- hive是基于hadoop的数据仓库工具:利用hdfs存储数据,利用mapreduce查询分析数据
将结构化的数据文件,映射为一张表,提供类SQL查询(HQL)
- hive用来处理海量离线数据,延迟高
- 因为hive数据存储在hdfs中,所以没有专门的存储格式。只要在建表的时候写清楚行分隔符和列分隔符,hive就可以进行解析
存储格式可以支持:Text,SequenceFile,ParquetFile,RCFILE等。
其中SequenceFile是hadoop中的一种文件格式,内容以序列化的kv对象来组织。
- hive可以建立内部表、外部表
外部表:创建时,只记录路径,数据位置不会改变。删除时,数据不会被删除。
内部表:创建时,会把数据移动到指定位置。删除时,数据也会被删除。
- hive要在设置时,设置成使用mysql数据库
默认用derby数据库存储元数据(建表语句等),不同用户在不同目录下,会拥有不同的数据库
- hive的数据模型:
db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹(/user/hive/warehouse/)
table:在hdfs中表现所属db目录下一个文件夹
external table:与table类似,不过其数据存放位置可以在任意指定路径
partition:在hdfs中表现为table目录下的子目录
bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件
2. 启动
- 在安装机器(itcast01)上启动执行
启动:hive
然后就可以直接执行,例如:>show databases;
- 在安装机器(itcast01)上启动为服务端(端口:10000),在另一台机器上连接运行
· 服务端启动:
启动为前台:hiveserver2
启动为后台:nohup hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &
· 另一台机器连接:
第一种连接方式---首先进入beeline的命令界面:beeline
然后在beeline界面执行:beeline> !connect jdbc:hive2://itcast01:10000
第二种连接方式---直接执行:beeline -u jdbc:hive2://itcast01:10000 -n root
- 退出:quit;