2023大數(shù)據(jù)技術(shù)之高頻面試題_第1頁
2023大數(shù)據(jù)技術(shù)之高頻面試題_第2頁
2023大數(shù)據(jù)技術(shù)之高頻面試題_第3頁
2023大數(shù)據(jù)技術(shù)之高頻面試題_第4頁
2023大數(shù)據(jù)技術(shù)之高頻面試題_第5頁
已閱讀5頁,還剩279頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

大數(shù)據(jù)技術(shù)之高頻面試題

目錄

第I章項目涉及技術(shù)13

1.1Linux&Shell13

1.1.1Linux常用高級命令13

1.1.2Shell常用工具及寫過的腳本13

1.1.3Shell中提交了一個腳本,進(jìn)程號已經(jīng)不知道了,但是需要kill掉這個進(jìn)程,

怎么操作?14

1.1.4Shell中單引號和雙引號區(qū)別14

1.2Hadoop15

1.2.1Hadoop常用端口號15

1.2.2Hadoop配置文件15

1.2.3HDFS讀流程和寫流程16

1.2.4HDFS小文件處理16

1.2.5HDFS的NameNode內(nèi)存17

1.2.6NameNode心跳并發(fā)配置17

1.2.7糾刪碼原理17

1.2.8異構(gòu)存儲(冷熱數(shù)據(jù)分離)18

1.2.9Shuffle及優(yōu)化18

1.2.10Yarn工作機(jī)制20

1.2.11Yam調(diào)度器20

1.2.12項目經(jīng)驗之基準(zhǔn)測試21

1.2.13Hadoop宕機(jī)21

1.2.14Hadoop解決數(shù)據(jù)傾斜方法22

1.3Zookeeper22

1.3.1常用命令22

1.3.2Paxos算法和ZAB協(xié)議(擴(kuò)展)22

1.3.3講一講什么是CAP法則?Zookeeper符合了這個法則的哪兩個?(擴(kuò)展)23

1.3.4選舉機(jī)制23

1.3.5Follower和Leader狀態(tài)同步24

大數(shù)據(jù)技術(shù)之高頻面試題

1.4Flume24

1.4.1Flume組成,Put事務(wù),Take事務(wù)24

1.4.2Flume攔截器26

1.4.3FlumeChannel選擇器27

1.4.4Flume監(jiān)控器27

1.4.5Flume采集數(shù)據(jù)會丟失嗎?(防止數(shù)據(jù)丟失的機(jī)制)27

1.5Kafka27

1.5.1Kafka架構(gòu)27

1.5.2Kafka的機(jī)器數(shù)量29

1.5.3副本數(shù)設(shè)定29

1.5.4Kafka日志保存時間29

1.5.5Kafka中數(shù)據(jù)量計算30

1.5.6磁盤選擇30

1.5.7內(nèi)存選擇30

1.5.8CPU選擇31

1.5.9網(wǎng)絡(luò)選擇31

1.5.10Kafka監(jiān)控31

1.5.9Kakfa分區(qū)數(shù)31

1.5.10多少個Topic32

1.5.11Kafka的ISR副本同步隊列32

1.5.12Kalka分區(qū)分配策略32

1.5.13Kalka掛掉33

1.5.14Kafka丟不丟數(shù)據(jù)34

1.5.15Kafka數(shù)據(jù)重復(fù)34

1.5.16數(shù)據(jù)有序36

1.5.17數(shù)據(jù)亂序36

1.5.18服役新節(jié)點退役舊節(jié)點36

1.5.19LeaderPartition選舉規(guī)則36

1.5.20手動調(diào)整分區(qū)副本存儲37

1.5.21增加分區(qū)37

1.5.22增加副本因子37

1.5.23Kafka過期數(shù)據(jù)清理37

1.5.24Kafka高效讀寫數(shù)據(jù)38

1.5.25自動創(chuàng)建主題38

1.5.26消費者再平衡的條件39

大數(shù)據(jù)技術(shù)之高頻面試題

1.5.27指定Offset消費39

1.5.28指定時間消費40

1.5.29Kafka數(shù)據(jù)積壓40

1.5.30如何提升吞吐量40

1.5.31Kafka單條日志傳輸大小41

1.5.32Ka&a消費者角度考慮是拉取數(shù)據(jù)還是推送數(shù)據(jù)41

1.5.33Kafka參數(shù)優(yōu)化41

1.6Hive45

1.6.1Hive的架構(gòu)及HQL轉(zhuǎn)換為MR流程45

1.6.2Hive和數(shù)據(jù)庫比較47

1.6.3內(nèi)部表和外部表47

1.6.44個By區(qū)另U47

1.6.5系統(tǒng)函數(shù)48

1.6.6自定義UDF、UDTF函數(shù)48

1.6.7窗口函數(shù)48

1.6.8Hive優(yōu)化49

1.6.9Hive解決數(shù)據(jù)傾斜方法51

1610Hive里邊字段的分隔符用的什么?為什么用\t?有遇到過字段里邊有\(zhòng)t的情

況嗎,怎么處理的?53

1.6.1ITez引擎優(yōu)點?53

1.6.12MySQL元數(shù)據(jù)備份54

1.6.13Union與Unionall區(qū)另lj55

1.7Datax55

1.7.1速度控制55

1.7.2內(nèi)存調(diào)整55

1.7.3空值處理55

1.7.4配置文件生成腳本56

1.7.5HDFS導(dǎo)出時要求,源路徑下不能有空文件56

1.7.5datax一天導(dǎo)入多少數(shù)據(jù)57

1.8Maxwell57

1.8.1好處57

1.8.2底層原理57

1.8.3全量同步速度如何57

1.9DolphinScheduler調(diào)度器57

2

大數(shù)據(jù)技術(shù)之高頻面試題

1.9.1每天集群運行多少指標(biāo)?57

1.9.2任務(wù)掛了怎么辦?57

1.10Scala58

1.10.1開發(fā)環(huán)境58

1.10.2變量和數(shù)據(jù)類型58

1.10.3流程控制58

1.10.4函數(shù)式編程58

1.10.5面向?qū)ο?8

1.10.6集合58

1.10.7模式匹配58

1.10.8異常58

1.10.9隱式轉(zhuǎn)換58

1.10.10泛型58

1.11SparkCore&SQL59

1.11.1Spark解決什么問題59

1.11.2Spark為什么會有自己的資源調(diào)度器59

1.11.3Spark運行模式59

1.11.4Spark常用端口號59

1.11.5簡述Spark的架構(gòu)與作業(yè)提交流程(畫圖講解,注明各個部分的作用)(重

點)60

1.11.6Spark任務(wù)使用什么進(jìn)行提交,JavaEE界面還是腳本60

1.11.7Spark提交作業(yè)參數(shù)(重點)60

1.11.8RDD五大屬性61

1.11.9Spark的transformation算子(不少于8個)(重點)61

1.1LIOSpark的action算子(不少于6個)(重點)62

1.11.11map和mapPartitions區(qū)另lj63

1.11.12Repartition和Coalesce區(qū)另U63

1.11.13reduceByKey與groupByKey的區(qū)別63

1.11.14reduceByKey、foldByKey、aggregateByKey、combineByKey區(qū)另lj63

1.11.15Kryo序列化63

1.11.16Spark中的血緣(筆試重點)64

1.11.17Spark任務(wù)的劃分64

1.11.18cache緩存級別64

1.11.19釋放緩存和緩存64

1.11.20緩存和檢查點區(qū)別64

3

大數(shù)據(jù)技術(shù)之高頻面試題

1.11.21Spark分區(qū)65

1.11.22Spark累力口器65

1.11.23Spark廣播變量66

1.11.24SparkSQL中RDD、DataFrame、DataSet三者的轉(zhuǎn)換(筆試重點)66

1.11.25請列舉會引起Shuffle過程的Spark算子,并簡述功能。66

1.11.26當(dāng)Spark涉及到數(shù)據(jù)庫的操作時,如何減少Spark運行中的數(shù)據(jù)庫連接數(shù)?

67

1.11.27如何使用Spark實現(xiàn)TopN的獲?。枋鏊悸坊蚴褂脗未a)(重點)67

1.11.28京東:調(diào)優(yōu)之前與調(diào)優(yōu)之后性能的詳細(xì)對比(例如調(diào)整map個數(shù),map個

數(shù)之前多少、之后多少,有什么提升)67

1.11.29SparkShuffle默認(rèn)并行度67

1.11.30控制Sparkreduce緩存調(diào)優(yōu)shuffle67

1.11.31Spark內(nèi)核源碼(重點)68

1.12SparkStreaming71

1.12.1SparkStreaming第一次運行不丟失數(shù)據(jù)71

1.12.2SparkStreaming精準(zhǔn)一次消費71

1.12.3SparkStreaming控制每秒消費數(shù)據(jù)的速度72

1.12.4SparkStreaming背壓機(jī)制72

1.12.5SparkStreaming—stage耗時72

1.12.6SparkStreaming優(yōu)雅關(guān)閉72

1.12.7SparkStreaming默認(rèn)分區(qū)個數(shù)72

1.12.8SparkStreaming有哪幾種方式消費Kafka中的數(shù)據(jù),它們之間的區(qū)別是什么?

72

1.12.9簡述SparkStreaming窗口函數(shù)的原理(重點)73

1.13數(shù)據(jù)傾斜74

1.13.1數(shù)據(jù)傾斜表現(xiàn)74

1.13.2數(shù)據(jù)傾斜產(chǎn)生原因74

1.13.3解決數(shù)據(jù)傾斜思路76

1.13.4定位導(dǎo)致數(shù)據(jù)傾斜代碼77

1.13.5查看導(dǎo)致數(shù)據(jù)傾斜的key分布情況79

1.13.6Spark數(shù)據(jù)傾斜的解決方案79

1.13.7Spark數(shù)據(jù)傾斜處理小結(jié)97

1.14Flink97

1.14.1簡單介紹一下Flink97

1.14.2Hink星艮SparkStreaming的區(qū)另198

4

大數(shù)據(jù)技術(shù)之高頻面試題

1.14.3Flink集群有哪些角色?各自有什么作用?99

1.14.4Flink的編程模型是什么?99

1.14.5公司怎么提交的實時任務(wù),有多少JobManager?有多少TaskManager?

100

1.14.6Flink的并行度了解嗎?Flink的并行度設(shè)置是怎樣的?100

1.14.7Flink的keyby怎么實現(xiàn)的分區(qū)?分區(qū)、分組的區(qū)別是什么?100

1.14.8Flink的intervaljoin的實現(xiàn)原理?join不上的怎么辦?101

1.14.9介紹一下Flink的狀態(tài)編程、狀態(tài)機(jī)制?101

1.14.10Flink的三種時間語義101

1.14.11Flink中的Walermark機(jī)制101

1.14.12Watermark是數(shù)據(jù)嗎?怎么生成的?怎么傳遞的?102

1.14.13Watermark的生成方式?102

1.14.14說說Flink中的窗口(分類、生命周期、觸發(fā)、劃分)102

1.14.15Exactly-Once的保證103

1.14.16Flink分布式快照的原理是什么103

1.14.17Checkpoint的參數(shù)怎么設(shè)置的?104

1.14.18介紹一下Flink的CEP機(jī)制104

1.14.19FlinkCEP編程中當(dāng)狀態(tài)沒有到達(dá)的時候會將數(shù)據(jù)保存在哪里?104

1.14.20FlinkSQL的工作機(jī)制?105

1.14.21FlinkSQL怎么對SQL語句進(jìn)行優(yōu)化的?105

1.14.22Flink提交流程、組件通訊、調(diào)度機(jī)制、任務(wù)執(zhí)行、內(nèi)存模型(重點).106

1.14.23Flink優(yōu)化、背壓、數(shù)據(jù)傾斜(重點)109

1.14.24Flink常見的維表Join方案109

1.15HBase110

1.15.1HBase存儲結(jié)構(gòu)110

1.15.2RowKey設(shè)計原則110

1.15.3RowKey如何設(shè)計110

1.15.4Phoenix二級索引(講原理)112

1.16Sqoop112

1.16.1Sqoop參數(shù)112

1.16.2Sqoop導(dǎo)入導(dǎo)出Null存儲一致性問題112

1.16.3Sqoop數(shù)據(jù)導(dǎo)出一致性問題112

1.16.4Sqoop底層運行的任務(wù)是什么113

1.16.5Sqoop一天導(dǎo)入多少數(shù)據(jù)113

1.16.6Sqoop數(shù)據(jù)導(dǎo)出的時候一次執(zhí)行多長時間113

5

大數(shù)據(jù)技術(shù)之高頻面試題

1.16.7Sqoop在導(dǎo)入數(shù)據(jù)的時候數(shù)據(jù)傾斜113

1.16.8Sqoop數(shù)據(jù)導(dǎo)出Parquet(項目中遇到的問題)113

1.17Azkaban114

1.17.1每天集群運行多少指標(biāo)?114

1.17.2任務(wù)掛了怎么辦?114

第2章項目架構(gòu)114

2.1提高自信114

2.2數(shù)倉概念115

2.3系統(tǒng)數(shù)據(jù)流程設(shè)計116

2.4框架版本選型116

2.5服務(wù)器選型117

2.6集群規(guī)模118

2.7人員配置參考119

2.7.1整體架構(gòu)119

2.7.2你們部門的職級等級,晉升規(guī)則119

2.7.3人員配置參考120

第3章數(shù)倉建模121

3.1數(shù)據(jù)倉庫建模的意義121

3.2數(shù)據(jù)倉庫建模方法論121

3.2.1ER模型121

3.2.2維度模型121

3.3維度建模理論之事實表121

3.3.1事務(wù)型事實表121

3.3.2周期型快照事實表122

3.3.3累積型快照事實表123

3.4維度建模理論之事實表124

3.4.1概述124

3.4.2維度表設(shè)計步驟124

3.4.3維度設(shè)計要點125

3.5數(shù)據(jù)倉庫分層規(guī)劃126

3.6數(shù)據(jù)倉庫構(gòu)建流程126

3.6.1數(shù)據(jù)調(diào)研126

3.6.2明確數(shù)據(jù)域128

3.6.3構(gòu)建業(yè)務(wù)總線矩陣128

3.6.4ODS層129

6

大數(shù)據(jù)技術(shù)之高頻面試題

3.6.5DIM層129

3.6.6DWD層130

3.6.7明確統(tǒng)計指標(biāo)131

3.6.8DWS層133

3.6.9ADS層134

3.6.10建模工具是什么?136

3.7ODS層做了哪些事?137

3.8DIM/DWD層做了哪些事?137

3.8.1數(shù)據(jù)清洗137

3.8.2清洗的手段137

3.8.3清洗掉多少數(shù)據(jù)算合理137

3.8.4脫敏137

3.8.5維度退化137

3.8.6壓縮snappy138

3.8.7orc列式存儲138

3.9DWS層做了哪些事?138

3.9.1DWS層有幾張寬表138

3.9.2哪個寬表最寬?大概有多少個字段?139

3.9.3具體用戶行為寬表字段名稱139

3.9.4哪張表數(shù)據(jù)量最多140

3.10ADS層分析過哪些指標(biāo)140

3.10.1分析過的指標(biāo)(一分鐘至少說出30個指標(biāo))140

3.10.2留轉(zhuǎn)G復(fù)活指標(biāo)141

3.10.3哪個商品賣的好?142

3.11分析過最難的指標(biāo)142

第4章生產(chǎn)經(jīng)驗一業(yè)務(wù)142

4.1電商常識142

4.1.1SKU和SPU142

4.1.2訂單表跟訂單詳情表區(qū)別?142

4.2埋點行為數(shù)據(jù)基本格式(基本字段)143

4.2.1頁面143

4.2.2事件144

4.2.3曝光145

4.2.4啟動145

4.2.5錯誤146

7

大數(shù)據(jù)技術(shù)之高頻面試題

4.2.6埋點數(shù)據(jù)日志格式146

4.3電商業(yè)務(wù)流程148

4.4同步策略(重點)149

4.5即席查詢數(shù)據(jù)倉庫150

4.6數(shù)據(jù)倉庫每天跑多少張表,大概什么時候運行,運行多久?150

4.7活動的話,數(shù)據(jù)量會增加多少?怎么解決?150

4.8并發(fā)峰值多少?大概哪個時間點?151

4.9數(shù)倉中使用的哪種文件存儲格式151

4.10哪張表最費時間,有沒有優(yōu)化151

4.11哪張表數(shù)據(jù)量最大,是多少151

4.12用什么工具做權(quán)限管理151

4.13數(shù)倉當(dāng)中數(shù)據(jù)多久刪除一次151

第5章生產(chǎn)經(jīng)驗—測試上線相關(guān)151

5.1測試相關(guān)151

5.1.1公司有多少臺測試服務(wù)器?151

5.1.2測試環(huán)境什么樣?152

5.1.3測試數(shù)據(jù)哪來的?152

5.1.4如何保證寫的sql正確性(重點)152

5.1.5測試之后如何上線?152

5.2項目實際工作流程152

5.3項目中實現(xiàn)一個需求大概多長時間154

5.4項目在3年內(nèi)迭代次數(shù),每一個項目具體是如何迭代的。公司版本迭代多久一次,

迭代到哪個版本154

5.5項目開發(fā)中每天做什么事154

5.6實時項目數(shù)據(jù)計算155

5.6.1跑實時任務(wù),怎么分配內(nèi)存和CPU資源155

5.6.2跑實時任務(wù),每天數(shù)據(jù)量多少?155

第6章生產(chǎn)經(jīng)驗一技術(shù)155

6.1可視化報表工具155

6.2集群監(jiān)控工具155

6.3項目中遇到的問題怎么解決的(重點*****)155

6.4Linux+Shell+Hadoop+ZK+Flume+kafka+Hive+Sqoop+DS那些事157

第7章生產(chǎn)經(jīng)驗一熱點問題157

7.1元數(shù)據(jù)管理(Atlas血緣系統(tǒng))157

7.2數(shù)據(jù)質(zhì)量監(jiān)控(Griffin)157

8

大數(shù)據(jù)技術(shù)之高頻面試題

7.2.1監(jiān)控原則157

7.2.2數(shù)據(jù)質(zhì)量實現(xiàn)159

7.3權(quán)限管理(Ranger)159

7.4數(shù)據(jù)治理159

7.5數(shù)據(jù)中臺161

7.5.1什么是中臺?162

7.5.2傳統(tǒng)項目痛點162

7.5.3各家中臺163

7.5.4中臺具體劃分164

7.5.5中臺使用場景165

7.6數(shù)據(jù)湖165

7.7埋點166

7.8電商運營經(jīng)驗167

7.8.1電商8類基本指標(biāo)167

7.8.2直播指標(biāo)170

第8章實時數(shù)倉項目174

8.1數(shù)據(jù)采集到ods層做了哪些事174

8.1.1前端埋點的行為數(shù)據(jù)為什么又采集一份?174

8.1.2為什么選擇kafka?175

8.1.3為什么用maxwell?歷史數(shù)據(jù)同步怎么保證一致性?175

8.1.4kafka保存多久?如果需要以前的數(shù)據(jù)怎么辦?175

8.2ods層175

8.3dwd+dim層175

8.3.1存儲位置,為什么維度表存Hbase?175

8.3.2埋點行為數(shù)據(jù)分流175

8.3.3業(yè)務(wù)數(shù)據(jù)動態(tài)分流176

8.4dwm層176

8.4.1為什么要加一個dwm層?176

8.4.2事實表與事實表join176

8.4.3事實表與維度表join177

8.4.4怎么保證緩存一致性178

8.5dws層178

8.5.1為什么選擇ClickHouse178

8.5.2輕度聚合178

8.6ads層178

9

大數(shù)據(jù)技術(shù)之高頻面試題

8.6.1實現(xiàn)方案178

8.6.2怎么保證ClickHouse的一致性?179

8.7監(jiān)控179

第9章手寫代碼179

9.1基本算法179

9.1.1冒泡排序179

9.1.2二分查找180

9.1.3快排182

9.1.4歸并183

9.1.5二叉樹之Scala實現(xiàn)184

9.2開發(fā)代碼189

9.2.1手寫Spark-WordCount189

9.3手寫HQL189

9.3.1手寫HQL第1題189

9.3.2手寫HQL第2題190

9.3.3手寫HQL第3題192

9.3.4手寫HQL第4題193

9.3.5手寫HQL第5題194

9.3.6手寫HQL第6題198

9.3.7手寫HQL第7題199

9.3.8手寫SQL第8題201

9.3.9手寫HQL第9題201

9.3.10手寫HQL第10題203

9.3.11手寫HQL第11題206

9.3.12連續(xù)問題211

9.3.13分組問題214

9.3.14間隔連續(xù)問題216

9.3.15打折日期交叉問題221

9.3.16同時在線問題223

第10章JavaSE225

10.1HashMap底層源碼,數(shù)據(jù)結(jié)構(gòu)225

10.2Java自帶哪幾種線程池?228

10.3HashMap和HashTable區(qū)別229

10.4TreeSet和HashSet區(qū)別230

10.5Stringbuffer和Stringbuild區(qū)另U230

大數(shù)據(jù)技術(shù)之高頻面試題

10.6FinakFinally>Finalize230

10.7==和Equals區(qū)另U231

第11章Redis231

11.1緩存穿透、緩存雪崩、緩存擊穿231

11.2哨兵模式232

10.3數(shù)據(jù)類型232

11.4持久化232

11.5悲觀鎖233

11.6樂觀鎖233

第12章MySql233

12.1MylSAM與InnoDB的區(qū)別233

12.2索引優(yōu)化233

12.3b-tree和b+tree的區(qū)別234

12.4redis是單線程的,為什么那么快234

12.5MySQL的事務(wù)234

第13章JVM236

13.1JVM內(nèi)存分哪幾個區(qū),每個區(qū)的作用是什么?236

13.2Java類加載過程?237

13.3java中垃圾收集的方法有哪些?238

13.4如何判斷一個對象是否存活?(或者GC對象的判定方法)238

13.5什么是類加載器,類加載器有哪些?239

13.6簡述Java內(nèi)存分配與回收策略以及MinorGC和MajorGC(fullGC)239

第14章JUC240

14.1Synchronized與Lock的區(qū)別240

14.2Runnable和Callable的區(qū)別240

14.3什么是分布式鎖240

14.4什么是分布式事務(wù)240

第15章面試說明240

15.1面試過程最關(guān)鍵的是什么?240

15.2面試時該怎么說?240

15.3面試技巧241

15.3.1六個常見問題241

15.3.2兩個注意事項242

15.3.3自我介紹(控制在4分半以內(nèi),不超過5分鐘)242

第16章LeetCode題目精選242

大數(shù)據(jù)技術(shù)之高頻面試題

16.1兩數(shù)之和242

16.1.1問題描述242

16.1.2參考答案242

16.2爬樓梯243

16.2.1問題描述243

16.2.2參考答案244

16.3翻轉(zhuǎn)二叉樹244

16.3.1問題描述244

16.3.2參考答案245

16.4反轉(zhuǎn)鏈表246

16.4.1問題描述246

16.4.2參考答案246

16.5LRU緩存機(jī)制246

16.5.1問題描述247

16.5.2參考答案247

16.6最長回文子串248

16.6.1問題描述249

16.6.2參考答案249

16.7有效的括號250

16.7.1問題描述250

16.7.2參考答案251

16.8數(shù)組中的第K個最大元素253

16.8.1問題描述253

16.8.2參考答案253

16.9實現(xiàn)Trie(前綴樹)256

16.9.1問題描述256

16.9.2參考答案256

16.10編輯距離258

16.10.1問題描述258

16.10.2參考答案259

大數(shù)據(jù)技術(shù)之高頻面試題

第1章項目涉及技術(shù)

1.1Linux&Shell

1.1.1Linux常用高級命令

序號命令命令解釋

1top查看內(nèi)存

2df-h查看磁盤存儲情況

3iotop查看磁盤10讀寫(yuminstalliotop安裝)

4iotop-o直接查看比較高的磁盤讀寫程序

5netstat-tunlp|grep端口號查看端口占用情況

6uptime查看報告系統(tǒng)運行時長及平均負(fù)載

7ps-ef查看進(jìn)程

1.1.2Shell常用工具及寫過的腳本

1)awk、sed>cut、sort2)

用Shell寫過哪些腳本

(1)集群啟動,分發(fā)腳本

#!/bin/bash

case$1in

“start”)

foriinhadoopl02hadoopl03hadoopl04

do

ssh$i“絕對路徑”

done

"stop")

,,

esac

13

大數(shù)據(jù)技術(shù)之高頻面試題

(2)數(shù)倉與MySQL的導(dǎo)入導(dǎo)出

MySQLHDFShive

sqoop(4個map)

除了sqoop之外還可以用:DataX、hadoop、java

驅(qū)動

主機(jī)名端口號

用戶名

密碼

路徑

刪除

同步策略:全量特殊新增新增和變化

query"selectid,namefromuserwhere創(chuàng)建時間=今天or操作時間=今天"

壓縮

列式存儲

(3)數(shù)倉層級內(nèi)部的導(dǎo)入:ods->dwd->dws->dwt->ads

①#!/bin/bash

②定義變量APP=gmall

③獲取時間

傳入按照傳入時間

不傳T+1

@sql="

先按照當(dāng)前天寫sql=>遇到時間$do_date遇到表{$APP}.

自定義函數(shù)UDFUDTF{$APP}.

⑤執(zhí)行sql

1.1.3Shell中提交了一個腳本,進(jìn)程號已經(jīng)不知道了,但是需要kill

掉這個進(jìn)程,怎么操作?

ssh$i"ps-ef|grepfile-flume-kafka|grep-vgrep|awk'{print\$2}'|xargskill"

1.1.4Shell中單引號和雙引號區(qū)別

I)在/home/atguigu/bin創(chuàng)建一個test.sh文件

[atguigu@hadoopl02bin]$vimtest.sh

在文件中添加如下內(nèi)容

#!/bin/bash

do_date=$l

echo'$do_date*

echon$do_daten

echo***$do_date'"

echo1n$do_daten'

echo'date'

2)查看執(zhí)行結(jié)果

[atguigu@hadoopl02bin]$test.sh2019-02-10

$dodate

14

大數(shù)據(jù)技術(shù)之高頻面試題

2019-02-10

,2019-02-10,

"$do_date"

2019庫05月02S星期四21:02:08CST

3)總結(jié):

(1)單引號不取變量值

(2)雙引號取變量值

(3)反引號執(zhí)行引號中命令

(4)雙引號內(nèi)部嵌套單引號,取出變量值

(5)單引號內(nèi)部嵌套雙引號,不取出變量值

1.2Hadoop

1.2.1Hadoop常用端口號

hadoop2.xHadoop3.x

訪問HDFS端口500709870

訪問MR執(zhí)行情況端口80888088

歷史服務(wù)器1988819888

客戶端訪問集群端口90008020

1.2.2Hadoop配置文件

配置文件:

hadoop2.xcore-site.xml>hdfs-site.xmKmapred-site.xml>yarn-site.xmlslaves

hadoop3.xcore-site.xml>hdfs-site.xmkmapred-site.xmRyarn-site.xmlworkers

15

大數(shù)據(jù)技術(shù)之高頻面試題

1.2.3HDFS讀流程和寫流程

沙HDFS的讀數(shù)據(jù)流程⑼商硅谷

客戶端

cieate

!lHDFSI

Iyh1請求卜教文件/user/atguigu/ss.avi

Distributed

FileSystem

read2返回口標(biāo)文件的元數(shù)據(jù)

dose

FSDatalnpu.

.

(Stream

200m

5請求讀數(shù)據(jù)blk_2

0-128m

ss.aviDataNodelDataNode2DataNode3

3請求讀數(shù)據(jù)blk_l

|7blk_l|

4傳輸數(shù)據(jù)6傳輸數(shù)據(jù)

|7blk,2|7blk_l7blk_l

夕HDFS的寫數(shù)據(jù)流程◎商硅谷

NameNode

客戶端檢查目錄樹是否可以創(chuàng)建文件

2.1檢杳權(quán)限:

ae^te

1向NameNode請求上傳文^h/user/atguigu/ss.avi2.2檢查目錄結(jié)構(gòu),目錄是否存在)

HDFS

dent

.Distributed2響應(yīng)可以上傳文件

“FileSystem請求上傳笫一個請返

3Block<0-128M>.WlDataNode元數(shù)據(jù)

副本存儲節(jié)點選擇

ck>?c4返回dnl.dn2,dn3節(jié)點,表示采用這三個節(jié)點存儲數(shù)據(jù)

4.1本地節(jié)點

FSDataOu42其他機(jī)契一個節(jié)點

tputStream4.3其他機(jī)獎另一個節(jié),

200m8傳輸數(shù)據(jù)完成

0-128m

DataNodelDataNode2DataNode3

6dnl應(yīng)答成功6dn2應(yīng)答成功6dn3應(yīng)答成功

ss.avi

5請求建立Block傳輸通道

請求建立通道5請求建立通道

Bytebuffer5BytebufferBytebuffer

…...?卜二:I

品.

7傳輸數(shù)據(jù)Packet<64k)I7b豈|I7i

packet(chunk512byte+chunksum4byte)

1.2.4HDFS小文件處理

1)會有什么影響

(1)存儲層面:

1個文件塊,占用namenode多大內(nèi)存150字節(jié)

128G能存儲多少文件塊?128g*1024m*1024kb*1024byte/150字節(jié)=9.1億文

件塊

(2)計算層面:

16

大數(shù)據(jù)技術(shù)之高頻面試題

每個小文件都會起到一個MapTask,1個MapTask默認(rèn)內(nèi)存1G。浪費資源。

2)怎么解決

(1)采用har歸檔方式,將小文件歸檔

(2)采用CombineTextlnputFormat

(3)有小文件場景開啟JVM重用;如果沒有小文件,不要開啟JVM重用,因為會一

直占用使用到的task卡槽,直到任務(wù)完成才釋放。

JVM重用可以使得JVM實例在同一個job中重新使用N次,N的值可以在Hadoop的

mapred?site.xml文件中進(jìn)行配置。通常在10-20之間

<property>

<name>mapreduce.job.jvm.numtasks</name>

<value>10</value>

<description>Howmanytaskstorunperjvm,ifsetto-1,there

isnolimit</description>

</property>

1.2.5HDFS的NameNode內(nèi)存

1)HadoopZx系列,配置NameNode默認(rèn)2000m2)

Hadoop3.x系列,配置NameNode內(nèi)存是動態(tài)分配的

NameNode內(nèi)存最小值1G,每增加100萬個block,增加1G內(nèi)存。

1.2.7糾刪碼原理

CPU資源換取存儲空間。

17

大數(shù)據(jù)技術(shù)之高頻面試題

1.2.8異構(gòu)存儲(冷熱數(shù)據(jù)分離)

期望經(jīng)常使用的數(shù)據(jù)存儲在固態(tài)硬盤或者內(nèi)存鏡像硬盤;不經(jīng)常使用的歷史數(shù)據(jù)存儲在老

RAMDISK:(內(nèi)存鏡像文件系統(tǒng))

SSD:(SSD同態(tài)硬盤)

DISK:(普通磁盤,在HDFS中,如果沒有在動聲明數(shù)據(jù)目錄存儲類型默認(rèn)都是DISK)

ARCHIVE:(沒有特指哪種存儲介質(zhì),主要的指的是計算能力比較弱而存儲密度比較高的存儲介質(zhì),用來解決數(shù)據(jù)錄的

容量擴(kuò)增的問題,?般用了歸檔)

2)關(guān)于存儲策略說明:到cold,分別代表r設(shè)備的訪問速度從快到慢

策卻D策略名稱副本分布

15Lazy_PersistRAM_DISK:1,DISK:n-1?個副本保存在內(nèi)存RAZDISK中.其余副本保存在磁盤中.

12AII_SSDSSD:n所有副本都保存在SSD中。

10One_SSDSSD:1,DISK:n-1

一個副本保存在SSD中.冗余副本保存在磁盤中。

7Hot(default)DISK:n

Hot:所有副本保存在磁盤中,這也是默認(rèn)的存儲策略。

5WarmDSIK:1,ARCHIVE:n-1|一個副本保存在磁盤上,其余副本保存在歸檔存儲上.

2ColdARCHIVEin所為副本都保存在歸檔存儲上.

1.2.9Shuffle及優(yōu)化

1、Shuffle過程

18

大數(shù)據(jù)技術(shù)之高頻面試題

名>MapReduce優(yōu)化(上)。尚硅谷

定義類,繼承Partiliona1接口,重寫gctl'rtition方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論