1. 程式人生 > >某公司運維第一次電話面試

某公司運維第一次電話面試

問題一:你的特長是什麼,你最擅長什麼?

問題二:介紹下redis,redis是個什麼東西?

問題三:介紹下redis的master、slave架構。

問題四:說下選舉協議(因為我前面說到了故障恢復),如果master掛掉怎麼辦?

問題五:這個協議有什麼缺陷?

問題六:之前說到自動故障恢復,都有哪些故障?

問題七:redis的吞吐量是多少(讀寫效能)?

問題八:hadoop的mapreduce是怎樣一個過程?(簡歷上寫著瞭解一些hadoop技術。。。)map是怎麼切分資料的?(這個問題不懂是什麼意思)

問題九:master單點失效問題,yarn是什麼,最新版是怎麼解決單點失效問題的?

為什麼要YARN:由於MRv1在擴充套件性、可靠性、資源利用率和多框架等方面的不足,Apache開始嘗試對MapReduc進行升級改造,於是誕生了更加先進的下一代MapReduce框架。由於MRv2將資源管理模組構建成了一個獨立的通用系統YARN,這使得MRv2的核心從計算框架MapReduce轉移為資源管理系統YARN。

yarn把原來MapReduce的JobTracker的資源管理和作業管理兩個功能分別提出來,資源管理變成統一的資源管理平臺ResourceManager,作業管理變成ApplicationMaster(使用者提交的每個作業都對應一個AM)。YARN的工作流程分為以下幾個步驟:

步驟一:使用者向YARN中提交應用程式,其中包括ApplicationMaster程式、啟動AM的命令、使用者程式等。

步驟二:ResourceManager為該應用程式分配第一個Container,並與對應的NodeManager通訊,要求他在這個Container中啟動應用程式的AM。

步驟三:AM首先向ResourceManager註冊,這樣使用者可以直接通過ResourceManager檢視應用程式的執行狀態,然後他將為各個任務申請資源,並監控他的執行狀態,直到執行結束,即重複步驟4~7。

步驟四:AM採用輪詢的方式通過RPC協議向ResourceManager申請和領取資源。

步驟五:一旦AM申請到資源後,便與對應的NodeManager通訊,要求他啟動任務。

步驟六:NodeManager為任務設定好執行環境(包括環境變數、JAR包、二進位制程式等)後,將任務啟動命令寫到一個指令碼中,並通過執行該指令碼啟動任務。

步驟七:各個任務通過某個RPC協議向AM彙報自己的狀態和進度,以讓AM隨時掌握各個任務的執行狀態,從而可以在任務失敗時重新啟動任務。在應用程式執行過程中,使用者可以隨時通過RPC向AM查詢應用程式的當前執行狀態。

步驟八:應用程式執行完成後,AM向ResourceManager登出並關閉自己。

MapReduce工作流程




Jobclient的runJob方法是用於新建JobClient例項並呼叫其submitJob方法的便捷方式(步驟一)。提交作業後,runJob每秒輪詢作業的進度,如果發現

上次報告後有改變,便把進度報告到控制檯。作業完成後,如果成功,就顯示作業計數器。如果失敗,導致作業失敗的錯誤被記錄到控制檯。

步驟二:submitJob方法向jobtracker請求一個新的作業ID(通過呼叫jobtracker的getNewJobId方法獲取)。檢查作業的輸出說明。例如,如果沒有指定輸出目錄或者輸出目錄已經存在,作業就不提交,錯誤返回給MapReduce程式。計算作業的輸入分片。如果分片無法計算,比如因為輸入路徑不存在,作業就不提交,錯誤返回給Mapreduce程式。

步驟三:將執行作業所需要的資源(包括作業JAR檔案、配置檔案和計算所得的輸入分片)複製到一個以作業ID命名的目錄下jobtracker的檔案系統中。作業JAR的副本較多(由mapred.submit.replication屬性控制,預設值為10),因此在執行作業的任務時,叢集中有很多個副本可供tasktracker訪問。

步驟四:告知jobtracker作業準備執行(通過呼叫jobtracker的submitjob方法實現)。

步驟五:作業初始化。當jobtracker接收到對其submitjob方法的呼叫後,會把此呼叫放入一個內部佇列中,交由作業排程器(job scheduler)進行排程,並對其進行初始化。初始化包括建立一個表示正在執行作業的物件----封裝任務和記錄資訊,以便跟蹤任務的狀態和程序。

步驟六:為了建立任務執行列表,作業排程器首先從共享檔案系統中獲取jobclient已計算好的輸入分片資訊。然後為每個分片建立一個map任務。建立的reduce任務的數量由jobconf的mapred.reduce.task屬性決定,它是用setNumReduceTasks方法來設定的,然後排程器建立相應數量的要執行的reduce任務。任務在此時被指定ID。

步驟七:任務的分配。tasktracker執行一個簡單的迴圈來定期傳送“心跳”給jobtracker,告知jobtracker,tasktracker是否還存活,同時也充當兩者之間的訊息通道。作為“心跳”的一部分,tasktracker會指明他是否已經準備好執行新的任務,如果是,JT會為他分配一個任務,並使用“心跳”的返回值與TT進行通訊。

步驟八:任務的執行。TT已經被分配了一個任務,然後第一步:通過從共享檔案系統把作業的JAR檔案複製到TT所在的檔案系統,從而實現作業的JAR檔案本地化。同時,TT將應用程式所需要的全部檔案從分散式快取複製到本地磁碟。第二步:TT為任務新建一個本地工作目錄,並把JAR檔案中的內容解壓到這個資料夾下。第三步:TT新建一個TaskRunner例項來執行該任務。

步驟九和十:TR啟動一個新的JVM來執行每個任務,以便使用者定義的map和reduce函式的任何軟體問題都不會影響到TT(例如導致崩潰或掛起等)。但在不同的任務之間重用JVM還是可能的。

問題十:連結串列和陣列的區別?

問題十一:程序間通訊的方式?

問題十二:給你200億的資料,每條資料1K-1M不等,每條資料有唯一64位的id,記憶體有16G。設計一個系統,怎樣有效的利用記憶體找到其中的某一條資料?

相關推薦

公司第一電話面試

問題一:你的特長是什麼,你最擅長什麼? 問題二:介紹下redis,redis是個什麼東西? 問題三:介紹下redis的master、slave架構。 問題四:說下選舉協議(因為我前面說到了故障恢復),如果master掛掉怎麼辦? 問題五:這個協議有什麼缺陷? 問題

第一電話面試

離職在家,正在看c++的書,突然接到一個電話,居然是綠M的電話,瞬間把我震驚。好了,言歸正傳,主要記錄一下問的問題,好多問題不記得了,就撿我記得的寫把。因為簡歷裡有說到我寫過一段時間c++,所以c++也問了幾個問題,還有就是加密演算法的問題,不過這個我不瞭解,所以就沒怎麼問 系統: 1. i

第一電話面試總結

第一次電話面試在毫無徵兆下到來,感覺自己做的不是很好吧,有點虛,所以,特意寫一篇部落格來記錄其中遇到的問題 1當在瀏覽器中輸入url時,後面一系列發生了什麼行為 答:導航的第一步是通過訪問的域名找出其IP地址,DNS查詢過程  1 瀏覽器的快取 系統快取,ISP DNS快取

人生第一電話面試-(攜程ios開發)

   就在前五分之前,剛剛接到攜程ios開發的電話面試。因為現在也算是實習招聘的高分期。這段時間因為個人的原因也是最後決定找這個方面,攜程這邊我投了今天是第四天了,上午我的同學還在問我有沒有接到電話面試,我還說沒有呢;好吧;下面就跟大家說說具體問了什麼;      人生總是

第一電話面試(百度)

2015年5月9日,我在課上看著《白夜行》的時候,當然也不是鼓勵大家課上開叉,著實自己覺得自己能夠handle。突然電話來了,我什麼都沒有想就去聽了,然後他說是百度的,是否方便麵試現在,我說5分鐘後可以,然後自己就急急忙忙就跑出去了。 在這裡先說一下我的背景吧,我之前投了阿

自動化第一天、基礎自動化工具----正則表達式

表達式正則表達式(grep,sed,awk) 一. 正則表達式正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個

Linux跳槽必備的面試精華題

面試1、什麽是運維?什麽是遊戲運維?1)運維是指大型組織已經建立好的網絡軟硬件的維護,就是要保證業務的上線與運作的正常。在他運轉的過程中,對他進行維護,他集合了網絡、系統、數據庫、開發、安全、監控於一身的技術。運維又包括很多種,有DBA運維、網站運維、虛擬化運維、監控運維、遊戲運維等等。 2)遊戲運維又有分工

linux第一

raid0 安全 解決方案 鏡像 body 最大 處理器 電源 服務器 第一章: 服務器的類型: 1.)機架式服務器(抽屜式) 2.)刀片式服務器 3.)塔式服務器 服務器尺寸:厚度(高度 1u=4.45.cm) 服務器的廠商: DELL(戴爾)(國內主要用的服務器) 聯

記一電話面試的題目

ports tps prop 整理 怎麽 說了 構造 語句 htm 昨天下午六點正準備關電腦下班去和對象約定好的地方吃飯的時候,突然接到了一個電話面試邀請,於是內心快速糾結了一下,還是同意了這次電話邀約(其實內心是拒絕的,但是轉念一想剛好通過這個電話面試對自己查漏補缺),聊

記錄我第一正式面試(已offer)

深信服2019屆秋招 心疼自己中秋節當天還去面試,順便也心疼一下面試官。 說說我的第一次正式面試,簡直是體驗不要太好。深信服的一二面簡直不要太舒服,我聽別人面試都是說好緊張,搞得自己也有點小緊張;進去後才發現,根本不存在緊張的說法,好嗎?一面的面試官是15屆畢

人生第一工作面試經歷(Java開發實習生)

        今天參加先進數通公司在石家莊的專案組的面試,也算是第一次參加正式的面試吧,自我感覺不好,有點小緊張,有些問題剛出了門,就想起來了,面試的時候很尷尬,很多不會的,估計是沒希望。不過面試官小姐姐很和藹,問的問題也很基礎,不難,可是沒有一個問題回答的完整的。再接再勵

Python7期第一

毛威                                     &

第一週總結

線上查詢及幫助命令 (2 個)man 檢視命令幫助,命令的詞典,更復雜的還有 info,但不常用。help 檢視 Linux 內建命令的幫助,比如 cd 命令。命令分內外(2個)1外部命令——硬碟檔案——檔案如何找-which命令幫助檔案2內部命令——helpnc找出所以內部命令檔案where 命令幫助檔案別

第一周總結

enter lin pen 新版 詞典 tty 連接 內部 term 線上查詢及幫助命令 (2 個)man 查看命令幫助,命令的詞典,更復雜的還有 info,但不常用。help 查看 Linux 內置命令的幫助,比如 cd 命令。命令分內外(2個)1外部命令——

2018/12/21 去杭州找工作前的第一視訊面試 java開發工程師 筆錄

人生中第一次接到視訊面試,挺興奮,也挺緊張。 事先準備好簡短的自我介紹,自我介紹主要包含: 對給予面試這次機會的感謝,以及簡短的姓名,年齡,畢業院校以及專業介紹。 說出自己掌握了哪些技能。 在實習工作中做過的專案,收穫了什麼。 面試官問到的一些問題,以及回答的側重點: 為什麼會

第一作為面試官的感悟

這幾天有幸跟著老員工經歷了一場校園招聘。遙想去年還是一個小小求職者,現在就要坐在桌子的對面,角色的轉變,還是感觸良多,就簡單記下來。最近半年絕少寫部落格了,第一個原因當然是工作太忙了~ 顯然,明白人都知道,這只是一句多麼空洞敷衍的話。真實的原因恐怕是我懶了。。。第二個原因

在相鄰元素相差1的陣列中查詢一特定元素第一出現的位置(非遍歷)

package algorithm.line; /**  * 思路: 我  * 們要充分利用“相鄰元素之間的差值為1”這個條件。假設我們要查詢“7”這個元素,將table[0]與”7″比較,由於table[0]的值為2,不相  * 等。此時我們要比較的下一個元素是table

第一實習面試感受----苦逼程式設計師生活初體驗

自從自己入職穩定以後,就一直在整理自己這一段時間自己的經歷,想要寫下來。今天是週末,剛好覺得整理的也差不多了就開始寫。 開始之前,我想要寫四件事情,因為我感覺非常的有必要。 第一,就是自己很久沒有更新部落格了,也就是說自己的大三下學期沒有更新任何的技術和生活文章。還是給自己

第一面試

    今天下午,老大臨時突然安排我面試一個同學。嘴上很淡定,內心有點小激動。    以前只做過求職者,現在可以嚐嚐面試官的滋味,今後再做做伯樂和獵頭就完美了。    我看了下簡歷,先和這個同學約定了電話面試時間,然後就開始面試聊天了。該同學的基本情況學歷:研究生學校:東北某

人生中第一面試官的經歷與總結

      相信對於每一個求職者來說都有被面試的經歷吧,曾經作為一位java小白的我,每一次面試過後都會各種吐槽面試官的不是,吐槽HR人事的不足,以及自己的有點沒有發揮出來,今天我終於體會了一次面試官的心情............       起因:由於公司的發展,需要招聘