當 jar 在客戶端進行spark-submit的時候spark流程就開始了,先概括的介紹一下流程, 在講述一下流程中的重要元件
2 首先需要初始化的是sparkcontext, sparkcontext 要構建出dagscheduler,taskscheduler
4 現在可以進行我們編寫的的業務了, 一般情況下通過sc.textfile("file") 去載入資料來源( 這個過程類似於mr的inputformat載入資料的過程), 去將資料轉化為rdd,
5 dagscheduer 先按照action將程式劃分為一至多個job(每乙個job對應乙個dag), 之後對dagscheduer按照是否進行shuffer,將job劃分為多個stage 每個stage過程都是taskset , dag 將taskset交給taskscheduler,由work中的executor去執行, 至於tast交給那個executor去執行, 由演算法來決定,
bykey系列,join, distinct等
spark優化基礎篇
spark優化高階篇
spark面試總結
面試過程中問到這個,並沒有標準答案,主要是想知道你到底有沒有做過開發,如果是做過開發,肯定遇到過問題
這個題目回答的步驟是:
1.hadoop的shuffle過程
2.spark的shuffle過程
3.講下優化
k:偏移量 ---》 v : 資料
inputformat會在map操作之前對資料進行兩方面的預處理
1是getsplits,返回的是inputsplit陣列,對資料進行split分片,每片交給map操作一次
2是getrecordreader,返回的是recordreader物件,對每個split分片進行轉換為key-value鍵值對格式傳遞給map
常用的inputformat是textinputformat,使用的是linerecordreader對每個分片進行鍵值對的轉換,以行偏移量作為鍵,行內容作為值
自定義類繼承inputformat介面,重寫createrecordreader和issplitable方法
在createrecordreader中可以自定義分隔符
hadoop的mr資料傾斜解決思路:
hive資料傾斜解決思路:
hbase的熱點問題,解決思路:
spark資料傾斜與解決思路:8種解決方案,常用的4種
企業面試題 1 3
用一行 實現1 100之和 print sum range 1 101 從a列表中取出偶數並生成新列表a 1,2,3,4,5,6,7,8,9,10 sum a 1 2,3 4,5 6,7 8,9 10 for i in a if i 2 0 sumprint sum 用python刪除檔案和用lin...
php面試題,各大企業常見的php面試題之三
1 如何宣告乙個名為 myclass 的沒有方法和屬性的類?1分 答 class myclass 2 如何例項化乙個名為 myclass 的物件?1分 答 myclass new myclass 3 你如何訪問和設定乙個類的屬性?2分 答 class a a new a n a name print...
php面試題,各大企業常見的php面試題之二
1 用php列印出前一天的時間格式是2006 5 10 22 21 21 2分 答 a date y m d h i s strtotime 1 day print r a 2 echo print print r 的區別 3分 答 echo 和print不是乙個函式,是乙個語言結構 int pri...