HIVE和HADOOP的一些東西
阿新 • • 發佈:2018-02-22
圖片 cat plus 並不是 替換 全部 class 遇到 pan
今天剛上班就要更新一個hive表(新年好呀我想說...),由於建立的外表直接替換hdfs文件就行了,但是替換完發現少了二行數據,原來之前做了關聯,這就要用到hive的insert了!
先來說一下hive的外部表:
1、在導入數據到外部表,數據並沒有移動到自己的數據倉庫目錄下,也就是說外部表中的數據並不是由它自己來管理的!而管理表則不一樣;
2、在刪除管理表的時候,Hive將會把屬於表的元數據和數據全部刪掉;而刪除外部表的時候,Hive僅僅刪除外部表的元數據,數據是不會刪除的!
而這些表的更新可以和線上的表進行關聯更新,也可以自己get下來進行更新,誤刪也不會影響文件,多好。
再來說一下insert into和insert overwrite的區別,
1. insert into table tablename
select * from a
left jion a
on a.something=b.something;
2. insert overwrite table tablename
select * from a
left jion a
on a.something=b.something;
insert into的話是直接插入,insert overwrite的話也是插入但是會覆蓋原始數據。
還有一個遇到的問題是從windows上打開看著好好的東西上傳到hdfs上面用hadoop fs -cat /data/..
發現中文亂碼,糾結了很久用editplus這個軟件修改文件為utf-8編碼,最好也修改一下這裏:
HIVE和HADOOP的一些東西