Hive Join浼樺寲
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive Join浼樺寲相关的知识,希望对你有一定的参考价值。
鏍囩锛?a href='http://www.mamicode.com/so/1/%e5%85%ac%e4%bc%97%e5%8f%b7' title='鍏紬鍙?>鍏紬鍙?/a> 璋冧紭 杈撳嚭 rgba 瀹归噺 amp 鍊炬枩 杩炴帴 鍙傛暟
鍦ㄩ槓杩?a href="https://mp.weixin.qq.com/s/Rte0_EKAkBnK2tvfZMtpXw" target="_blank">Hive Join鍏蜂綋鐨勪紭鍖栨柟娉?/a>涔嬪墠锛岄鍏堢湅涓€涓婬ive Join鐨勫嚑涓噸瑕佺壒鐐癸紝鍦ㄥ疄闄呬娇鐢ㄦ椂涔熷彲浠ュ埄鐢ㄤ笅鍒楃壒鐐瑰仛鐩稿簲浼樺寲锛?/span>
1. 鍙敮鎸佺瓑鍊艰繛鎺?/span>
2. 搴曞眰浼氬皢鍐欑殑HQL璇彞杞崲涓篗apReduce锛屽苟涓攔educe浼氬皢join璇彞涓櫎鏈€鍚庝竴涓〃澶栭兘缂撳瓨璧锋潵
3. 褰撲笁涓垨澶氫釜浠ヤ笂鐨勮〃杩涜join鎿嶄綔鏃讹紝濡傛灉姣忎釜on浣跨敤鐩稿悓鐨勫瓧娈佃繛鎺ユ椂鍙細浜х敓涓€涓猰apreduce
鍏蜂綋鐨勪紭鍖栧缓璁細
1. 鍚堢悊鐨勮缃甿ap鍜宺educe鏁伴噺
jvm閲嶇敤銆傚彲鍦╤adoop鐨刴apred-site.xml涓缃甹vm琚噸鐢ㄧ殑娆℃暟锛屽弬鏁癿apred.job.reuse.jvm.num.tasks
2. 瀵逛簬浠诲姟閲嶆病鏈変緷璧栧叧绯荤殑闃舵寮€鍚苟鍙戞墽琛岋紝璁剧疆灞炴€э細set hive.exec.parallel=true
3. 鏌ヨ鍒嗗尯琛ㄦ椂锛屽湪鏌ヨ鏉′欢涓寚瀹氬垎鍖?/span>
4. 灏介噺浣跨敤left semi join 鏇夸唬in銆乶ot in銆乪xists
鍥犱负left semi join鍦ㄦ墽琛屾椂锛屽浜庡乏琛ㄤ腑鎸囧畾鐨勪竴鏉¤褰曪紝涓€鏃﹀湪鍙宠〃涓壘鍒扮珛鍗冲仠姝㈡壂鎻忥紝鏁堢巼鏇撮珮
5. 褰撳涓〃杩涜鏌ヨ鏃讹紝浠庡乏鍒板彸琛ㄧ殑澶у皬椤哄簭搴旇鏄粠灏忓埌澶с€傚師鍥狅細hive鍦ㄥ姣忚璁板綍鎿嶄綔鏃朵細鎶婂叾浠栬〃鍏堢紦瀛樿捣鏉ワ紝鐩村埌鎵弿鏈€鍚庣殑琛ㄨ繘琛岃绠?/span>
6. 瀵逛簬缁忓父join鐨勮〃锛岄拡瀵筳oin瀛楁杩涜鍒嗘《锛岃繖鏍峰湪join鏃朵笉蹇呭叏琛ㄦ壂鎻?/span>
7. 灏忚〃杩涜mapjoin
濡傛灉鍦╦oin鐨勮〃涓紝鏈変竴寮犺〃鏁版嵁閲忚緝灏忥紝鍙互瀛樹簬鍐呭瓨涓紝杩欐牱璇ヨ〃鍦ㄥ拰鍏朵粬琛╦oin鏃跺彲浠ョ洿鎺ュ湪map绔繘琛岋紝鐪佹帀reduce杩囩▼锛屾晥鐜囬珮銆傝缃柟寮忎富瑕佸垎涓ょ锛?/span>
1锛夎嚜鍔ㄦ柟寮?/span>
set hive.auto.convert.join=true;hive.mapjoin.smalltable.filesize锛岃缃彲浠apjoin鐨勮〃鐨勫ぇ灏忥紝榛樿鍊兼槸25Mb
2锛夋墜鍔ㄦ柟寮?/span>
select /*+ mapjoin(A)*/ x.a, y.b from t_x x join t_y y on x.id=y.id;
8. 鍚屼竴绉嶆暟鎹殑澶氱澶勭悊锛氫粠涓€涓暟鎹簮浜х敓鐨勫涓暟鎹仛鍚堬紝鏃犻渶姣忔鑱氬悎閮介渶瑕侀噸鏂版壂鎻忎竴娆°€?/span>
渚嬪锛氫换鍔¢噸闇€瑕佹墽琛宨nsert overwrite table t_y select * from t_x;鍜?/span>
insert overwrite table t_z select * from t_x;
鍙互浼樺寲鎴愶細from t_x insert overwrite table t_y select * insert overwrite table t_z select *
9. join涓殑鏁版嵁鍊炬枩澶勭悊
set hive.optimize.skewjoin=true;
set hive.skewjoin.key=100000;
褰撳崟涓猺educe鑺傜偣澶勭悊鏁版嵁闃堝€硷紝浼氳繘琛宻kewjoin锛屽缓璁缃负骞冲潎鏁版嵁閲忕殑2-4鍊嶃€?/span>
鍘熺悊锛氫細浜х敓涓や釜job锛岀涓€涓猨ob浼氬皢瓒呰繃hive.skewjoin.key璁剧疆鍊肩殑璁板綍鐨刱ey鍔犱笂涓€浜涢殢鏈烘暟锛屽皢杩欎簺鐩稿悓鐨刱ey鎵撲贡锛岀劧鍚庡垎閰嶅埌涓嶅悓鐨勮妭鐐逛笂闈㈣繘琛岃绠椼€傛渶鍚庡啀鍚姩涓€涓猨ob锛屽湪绗竴涓猨ob澶勭悊鐨勫熀纭€涓婏紙鍗崇涓€涓猨ob鐨剅educe杈撳嚭缁撴灉锛夊啀杩涜澶勭悊锛屽皢鐩稿悓鐨刱ey鍒嗗彂鍒扮浉鍚岀殑鑺傜偣涓婂鐞嗐€傚洜涓轰細浜х敓涓や釜job杩涜澶勭悊锛屽湪瀹為檯浣跨敤涓繕鏄娉ㄦ剰浠ュ強闃堝€肩殑璁剧疆銆?/span>
10. limit璋冧紭
limit璇彞閫氬父鏄墽琛屾暣涓鍙ュ悗杩斿洖閮ㄥ垎缁撴灉銆備絾閫氳繃璁剧疆鍙傛暟set hive.limit.optimize.enable=true锛屽皢閽堝鏌ヨ瀵瑰厓鏁版嵁杩涜鎶芥牱銆傚悓鏃跺彲鑳借繕闇€瑕佽缃互涓嬩袱涓弬鏁帮細
set hive.limit.row.max.size=10000;璁剧疆鏈€灏忕殑閲囨牱瀹归噺
set hive.limit.optimize.limit.file=20;璁剧疆鏈€澶х殑閲囨牱鏍锋湰鏁?/span>
杩欑浼樺寲鏂瑰紡瀛樺湪涓€涓己鐐癸細鏈夊彲鑳介儴鍒嗘暟鎹案杩滀笉浼氳澶勭悊鍒?/span>
鍏虫敞寰俊鍏紬鍙凤細澶ф暟鎹涔犱笌鍒嗕韩锛岃幏鍙栨洿瀵规妧鏈共璐?/span>
以上是关于Hive Join浼樺寲的主要内容,如果未能解决你的问题,请参考以下文章