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