Hive创建内部表、外部表
使用hive需要hive环境
启动Hive
进入HIVE_HOME/bin,启动hive
./hive
内部表
- 建表
hive> create table fz
> (id int,name string,age int,tel string)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY ','
> STORED AS TEXTFILE;
创建完成后使用 show tables; 查看是否创建成功.
hive> show tables;
OK
fz
Time taken: 0.043 seconds, Fetched: 9 row(s)
- 导入数据
提前准备好一个txt文件,文件内容如下
,fz,,
,test,,
,dx,,
接下来导入数据
hive> load data local inpath '/Users/FengZhen/Desktop/Hadoop/hive/testfile/fz.txt' into table fz;
Loading data to table default.fz
Table default.fz stats: [numFiles=, totalSize=]
OK
Time taken: 0.784 seconds
查看表中的数据。
hive> select * from fz;
OK
fz
test
dx
Time taken: 0.445 seconds, Fetched: row(s)
数据已经导入成功。
在导入数据的过程中,如果在建表的过程中没有指定location,那么就会在hive.metastore.warehouse.dir指定的路径下,以表名创建一个文件夹,之后所有有关该表的数据都会存储到此文件夹中。
hive.metastore.warehouse.dir是在HIVE_HOME/conf/hive-site.xml中配置的,如下,我配置的路径为/user/hive/warehouse
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
现在去HDFS中就可以看到该路径下有个文件夹名为fz,fz下有个文件就是我们在导入数据时,从本地文件系统拷贝到HDFS中的fz.txt.
EFdeMacBook-Pro:conf FengZhen$ hadoop fs -ls /user/hive/warehouse/fz
Found items
-rwxr-xr-x FengZhen supergroup -- : /user/hive/warehouse/fz/fz.txt
- 删除该表
hive> drop table fz;
OK
Time taken: 0.141 seconds
该表删除后,再去HDFS中看一下还有没有之前创建的文件夹。
hadoop fs -ls /user/hive/warehouse
结果显示该文件夹已经没有了,也就是说当我们在删除内部表的时候,不仅删除了表中的数据,还删除了数据文件。
外部表
- 建表
hive> create external table fz_external_table(id int,name string,age int,tel string)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY ','
> STORED AS TEXTFILE
> location '/user/hive/external/fz_external_table';
建外部表时要加external关键字,我在建表时指定了location,当然也可以不指定,不指定就默认使用hive.metastore.warehouse.dir指定的路径。
- 导入数据
提前准备好数据文件fz_external.txt,数据同上,只是换了个名。
,fz,,
,test,,
,dx,,183938384983
4,test1,22,1111111111
接下来进行导入数据的操作
hive> load data local inpath '/Users/FengZhen/Desktop/Hadoop/hive/testfile/fz_external_table.txt' into table fz_external_table;
Loading data to table default.fz_external_table
Table default.fz_external_table stats: [numFiles=0, totalSize=0]
OK
Time taken: 0.224 seconds
查看表内数据。
hive> select * from fz_external_table;
OK
fz
test
dx
test1
Time taken: 0.06 seconds, Fetched: row(s)
现在数据已经导入成功,接下来去HDFS中查看以下,在location指定的路径下
EFdeMacBook-Pro:testfile FengZhen$ hadoop fs -ls /user/hive/external/fz_external_table;
Found items
-rwxr-xr-x FengZhen supergroup -- : /user/hive/external/fz_external_table/fz_external_table.txt
可以看到,往外部表中导入数据的时候,本地文件系统中的数据文件也被拷贝到了HDFS中。
现在来删除外部表,看一下HDFS中文件有没有被删除。
hive> drop table fz_external_table;
OK
Time taken: 0.103 seconds
外部表已经删除成功,看下HDFS中
EFdeMacBook-Pro:testfile FengZhen$ hadoop fs -ls /user/hive/external/fz_external_table;
Found items
-rwxr-xr-x FengZhen supergroup -- : /user/hive/external/fz_external_table/fz_external_table.txt
可以看到,HDFS中数据文件在表被删除的情况下,还是存在的,也就是说删除外部表,只能删除表数据,并不能删除数据文件。
内部表与外部表的不同
- 创建外部表需要添加 external 字段。而内部表不需要。
- 删除外部表时,HDFS中的数据文件不会一起被删除。而删除内部表时,表数据及HDFS中的数据文件都会被删除。
Hive创建内部表、外部表的更多相关文章
- 一起学Hive——创建内部表、外部表、分区表和分桶表及导入数据
Hive本身并不存储数据,而是将数据存储在Hadoop的HDFS中,表名对应HDFS中的目录/文件.根据数据的不同存储方式,将Hive表分为外部表.内部表.分区表和分桶表四种数据模型.每种数据模型各有 ...
- hive内部表&外部表介绍
未被external修饰的是内部表(managed table),被external修饰的为外部表(external table):区别:内部表数据由Hive自身管理,外部表数据由HDFS管理:内部表 ...
- hadoop笔记之Hive的数据存储(外部表)
Hive的数据存储(外部表) Hive的数据存储(外部表) 外部表 指向已经在HDFS中存在的数据,可以创建Partition 它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异 外部 ...
- Hive基础(5)---内部表 外部表 临时表
1.外部表 关键字:EXTERNAL 外部表创建时需要指定LOCATION 删除外部表时,数据不被删除 CREATE EXTERNAL TABLE page_view(viewTime INT, us ...
- hive 四种表,分区表,内部,外部表,桶表
Hive四大表类型内部表.外部表.分区表和桶表 一.概述 总体上Hive有四种表:外部表,内部表(管理表),分区表,桶表.分别对应不同的需求.下面主要讲解各种表的适用情形.创建和加载数据方法. 二.具 ...
- Hive内部表外部表转化分析(装)
link:http://anyoneking.com/archives/127hive表分为内部表和外部表.外部表在删除的时候并不会删除到hdfs中的文件,比较安全,所以对于重要的需要进行分析的日志建 ...
- 分区表,桶表,外部表,以及hive一些命令行小工具
hive中的表与hdfs中的文件通过metastore关联起来的.Hive的数据模型:内部表,分区表,外部表,桶表受控表(managed table):包括内部表,分区表,桶表 内部表: 我们删除表的 ...
- hive中与hbase外部表join时内存溢出(hive处理mapjoin的优化器机制)
与hbase外部表(wizad_mdm_main)进行join出现问题: CREATE TABLE wizad_mdm_dev_lmj_edition_result as select * from ...
- oracle-对象表-外部表
http://www.blogjava.net/decode360/archive/2008/10/16/286802.html create or replace type person as ob ...
随机推荐
- T-SQL中的十大注意事项
转载自:http://www.cnblogs.com/CareySon/archive/2012/10/11/2719598.html 1.在生产环境中不要出现Select * 这一点我想大家已经是比 ...
- CSS 3列等高
方法1: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"&g ...
- (转)Elasticsearch查询规则------match和term
es种有两种查询模式,一种是像传递URL参数一样去传递查询语句,被称为简单搜索或查询字符串(query string)搜索,比如 GET /megacorp/employee/_search //查询 ...
- (转载)【cocos2dx 3.x Lua] 注册事件函数详解
出处: http://www.2cto.com/kf/201409/338235.html coocs2dx 版本 3.1.1 registerScriptTouchHandler 注册触屏事件 re ...
- hover()与toggle()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 关闭WPS启动时显示的在线模板
关闭WPS启动时显示的在线模板 以WPS2016为例,如下图: 操作步骤如下: ①点击在线模板页面右下方的"设置"选项 ②"设置"界面打开后,选择启动WPS默认 ...
- linux phpize
phpize是什么 1.phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块. 当php编译完后,在bin下面会有phpize这个脚本文件, 在编译你要添加的扩展模块之前, ...
- cmd重启服务器,有时不想去机房,并且远程桌面连接登录不上了
有时不想去机房,并且远程桌面连接登录不上了,需要远程重启服务器的,这时可以使用命令行方式远程重启.在cmd命令行状态下输入:shutdown -r -m \\192.168.1.10 -t 0 -f ...
- win10安装后耳机有声音而外放无声音
安装win10后耳机声音正常,而外放没声音.检查了小喇叭.播放器和设备管理器一切正常,驱动也重装了好些次.喇叭音量设置.视频音量设置均正常.花费很多时间,结果发现是键盘上有个小喇叭+的键的问题.按fn ...
- 服务器修改用户密码注意iis部署的网站问题
当服务器修改用户密码时,需要修改iis上部署的跟此用户权限有关的所有网站,选择网站——右击——应用程序管理——高级设置——物理路径凭证——特定用户——修改用户名和密码.