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