Hive
Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上。
通过HSQL访问在Hadoop上的文件或者HBase上的数据,实现extract/transform/load(ETL)和数据分析,etc。
Tez,Spark或 MapReduce执行引擎,支持UDF

metastore 保存了于Hive到HDFS映射。Hive使用HQL操作HDFS的数据

表


外部表

分区

桶

建表
1 | |
[ROW FORMAT DELIMITED]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。 列终止符,行终止符,并保存的文件类型
1 | |
1 | |
LOAD DATA语句
1 | |
hive-site.xmlhive.metastore.warehouse.dirHive表数据存放的路径,
每创建一个表都会在hive.metastore.warehouse.dir指向的目录下以表名创建一个文件夹,所有属于这个表的数据都存放在这个文件夹里面。
1 | |
drop
1 | |
如果你的Hadoop没有取用垃圾箱机制,那么drop table wyp命令将会把属于wyp表的所有数据全部删除!
外部表
创建表的时候加上external关键字,同时指定外部表存放数据的路径。(不指定外部表的存放路径,这样Hive将在HDFS上的/user/hive/warehouse/文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里)
load data 数据是被移动到创建表时指定的目录
1 | |
在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!
cat
1 | |
Sqoop
Sqoop MySQL导入数据到Hive和HBase