1.hive數據導入
load data inpath '/hadoop/guozy/data/user.txt' into table external_table;
此處是移動(非復制),移動數據非常快,不會對數據是否符合定義的Schema做校驗,這個工作通常在讀取的時候進行(即Schema on Read)
2.內部表與外部表的不同
1)創建外部表需要添加 external 字段。而內部表不需要。
2)刪除外部表時,HDFS中的數據文件不會一起被刪除。而刪除內部表時,表數據及HDFS中的數據文件都會被刪除。
3)內部表與外部表如果不指定location,默認使用hive.metastore.warehouse.dir指定的路徑
3. Sort By、Order By、Cluster By,Distribute By,group by
order by:會對輸入做全局排序,因此\只有一個reducer**(多個reducer無法保證全局有序)。只有一個reducer,會導致當輸入規模較大時,需要較長的計算時間。
distribute by:按照指定的字段對數據進行劃分輸出到不同的reduce中(單純的分散數據)。
sort by:局部排序,sort by只是確保每個reduce上面輸出的數據有序,當只有一個reduce時,也變成全局排序
cluster by:當distribute by 和 sort by 所指定的字段相同時,即可以使用cluster by
group By Key算子的功能固定,只能輸出相同key值的序列,reduceByKey適用于分組排序過程中有數據聚合操作(sum)的情形,在其他場景下可能不適用。
受限于reduce數量,設置reduce參數mapred.reduce.tasks 輸出文件個數與reduce數相同,文件大小與reduce處理的數據量有關,網絡負載過重 數據傾斜,優化參數hive.groupby.skewindata為true,會啟動一個優化程序,避免數據傾斜。更多關于大數據培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。