大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 2020年企業常見Java基礎筆試題

2020年企業常見Java基礎筆試題

更新時間:2020-06-28 15:28:16 來源:動力節點 瀏覽2220次

1.hive表關聯查詢,如何解決數據傾斜的問題?

傾斜原因:

map輸出數據按key Hash的分配到reduce中,由于key分布不均勻、業務數據本身的特、建表時考慮不周、等原因造成的reduce上的數據量差異過大。

1)、key分布不均勻;

2)、業務數據本身的特性;

3)、建表時考慮不周;

4)、某些SQL語句本身就有數據傾斜;

如何避免:對于key為空產生的數據傾斜,可以對其賦予一個隨機值。

解決方案

1>.參數調節:

hive.map.aggr=true

hive.groupby.skewindata=true

有數據傾斜的時候進行負載均衡,當選項設定位true,生成的查詢計劃會有兩個MR Job。第一個MR Job中,Map的輸出結果集合會隨機分布到Reduce中,每個Reduce做部分聚合操作,并輸出結果,這樣處理的結果是相同的Group By Key有可能被分發到不同的Reduce中,從而達到負載均衡的目的;第二個MR Job再根據預處理的數據結果按照Group By Key分布到Reduce中(這個過程可以保證相同的Group By Key被分布到同一個Reduce中),最后完成最終的聚合操作。

2>.SQL語句調節:

1)、選用join key分布最均勻的表作為驅動表。做好列裁剪和filter操作,以達到兩表做join的時候,數據量相對變小的效果。

2)、大小表Join:

使用map join讓小的維度表(1000條以下的記錄條數)先進內存。在map端完成reduce.

4)、大表Join大表:

把空值的key變成一個字符串加上隨機數,把傾斜的數據分到不同的reduce上,由于null值關聯不上,處理后并不影響最終結果。

5)、count distinct大量相同特殊值:

count distinct時,將值為空的情況單獨處理,如果是計算count distinct,可以不用處理,直接過濾,在最后結果中加1。如果還有其他計算,需要進行group by,可以先將值為空的記錄單獨處理,再和其他計算結果進行union。

2.請談一下hive的特點是什么?hive和RDBMS有什么異同?

hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。

hive存儲的數據量比較大,適合海量數據,適合存儲軌跡類歷史數據,適合用來做離線分析、數據挖掘運算,事務性較差,實時性較差

rdbms一般數據量相對來說不會太大,適合事務性計算,實時性較好,更加接近上層業務

hive的計算引擎是hadoop的mapreduce,存儲是hadoop的hdfs文件系統

rdbms的引擎由數據庫自己設計實現例如mysql的innoDB,存儲用的是數據庫服務器本地的文件系統

hive由于基于hadoop所以存儲和計算的擴展能力都很好,

rdbms在這方面比較弱,比如orcale的分表和擴容就很頭疼

hive表格沒有主鍵、沒有索引、不支持對具體某一行的操作,適合對批量數據的操作,不支持對數據的update操作,更新的話一般是先刪除表然后重新落數據

rdbms事務性強,有主鍵、索引,支持對具體某一行的增刪改查等操作

hive的SQL為HQL,與標準的RDBMS的SQL存在有不少的區別,相對來說功能有限

rdbms的SQL為標準SQL,功能較為強大。

3.Multi-group by是hive的一個非常好的特性,請舉例說明?

from A

insert overwrite table B

select A.a,count(distinct A.b)group by A.a

insert overwrite table C

select A.c,count(distinct A.b)group by A.c

4.請說明hive中Sort By,Order By,Cluster By,Distrbute By各代表什么意思

order by:會對輸入做全局排序,因此只有一個reducer(多個reducer無法保證全局有序)。只有一個reducer,會導致當輸入規模較大時,需要較長的計算時間。

sort by:不是全局排序,其在數據進入reducer前完成排序。

distribute by:按照指定的字段對數據進行劃分輸出到不同的reduce中。

cluster by:除了具有distribute by的功能外還兼具sort by的功能。

5.簡要描述數據庫中的null,說出null在hive底層如何存儲,并解釋selecta.*from t1 a left outer join t2 b on a.id=b.id where b.id is null;語句的含義

null與任何值運算的結果都是null,可以使用is null、is not null函數指定在其值為null情況下的取值。

null在hive底層默認是用'\N'來存儲的,可以通過alter table test SET SERDEPROPERTIES('serialization.null.format'='a');來修改。

這段語句目的是查詢出t1表中與t2表中id相等的所有信息。

2020年企業常見Java基礎筆試題

以上就是動力節點java培訓機構的小編針對“2020年企業常見Java基礎筆試題”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 俄罗斯一级毛片免费播放 | 精品国产三级v | 青青青视频自偷自拍视频1 青青青手机版视频在线观看 | 99久久久久久久 | 国产成人精品日本亚洲麻豆 | 天天操天天操天天 | 国内久久久久久久久久 | 伊人久久国产精品 | 中国女人内谢59xxxxx | 午夜欧美性视频在线播放 | 亚洲欧美日韩高清一区二区三区 | 日韩欧美中文在线 | 爱爱小视频成人免费 | 欧美亚洲综合在线 | 久久伊人久久 | 一区二区三区欧美日韩国产 | 国产91久久最新观看地址 | 特黄未满14周岁毛片 | 国产网站免费视频 | 欧美精品成人免费视频 | 国人精品视频在线观看 | 亚洲人xx视频 | 91精品国产自产91精品 | 午夜成人在线视频 | 干美女网站 | 中文字幕欧美日韩va免费视频 | 欧美jlzz18性欧美 | 欧美日韩中文字幕在线手机版本 | 午夜毛片福利 | 成人亚洲欧美 | 免费观看一级特黄三大片视频 | 久久国产精品网 | 激情一区二区三区成人 | 亚洲一区二区三区视频 | 精品精品国产理论在线观看 | 中文字幕在线观看一区二区 | 天天拍天天射 | 国产1区精品 | 国产99在线观看 | 色婷婷六月 | 九月婷婷天天澡天天添天天爽 |