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
參考連接: