1. 在hadoop上建立用于存放与hive外部表关联的路径html
hadoop fs -mkdir /bigdata/output/MM_XK_USER1/train/zjs/test_externaljava
2. 建立hive外部表oop
beeline测试
create external table tb_test_external(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' location '/bigdata/output/MM_XK_USER1/train/zjs/test_external';ui
3. 建立第一个测试文件文件spa
vi 1.txt.net
1|test1 2|test2 3|test3
经过hadoop的命令行把文件上传到指定路径下命令行
hadoop fs –put 1.txt /bigdata/output/MM_XK_USER1/train/zjs/test_external/unix
4. 使用beeline查询外部表验证数据是否已经加载code
beeline
select * from tb_test_external;
报错:
not a RCFile and has magic of 1|t
由于系统默认使用的是RCFile格式,不能识别text格式的文件,因此在建表时须要指定文件的格式:STORED AS TEXTFILE
从新建立表:
drop table tb_test_external;
create external table tb_test_external(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE location '/bigdata/output/MM_XK_USER1/train/zjs/test_external';
再次查询
select * from tb_test_external;
结果以下:
tb_test_external.id|tb_test_external.name
1 |test1
2 |test2
3 |test3
5.建立另外一个文本文件并上传到上传到指定路径下
vi 2.txt
4|test4 5|test5 6|test6
hadoop fs –put 2.txt /bigdata/output/MM_XK_USER1/train/zjs/test_external/
6. 再次在beeline客户端中执行查询验证新的文件中的数据是否自动加载到了hive表中
beeline
select * from tb_test_external;
tb_test_external.id|tb_test_external.name
1 |test1
2 |test2
3 |test3
4 |test4
5 |test5
6 |test6
参考连接: