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.dir
Hive表数据存放的路径,
每创建一个表都会在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