大數據某公司面試題-附答案

来源:https://www.cnblogs.com/feng-bigdata/archive/2018/09/12/9631970.html
-Advertisement-
Play Games

最近在觀察一些大數據方面的職位。特貢獻一套面試題,希望對找工作的博友們一點幫助! 1.簡述Linux以及Linux命令 cd命令 ls命令 mkdir和rmdir命令 cp命令 mv命令 rm命令 cat命令 tac命令 more命令 head命令 tail命令 touch命令 chown命令 fi ...


最近在觀察一些大數據方面的職位。特貢獻一套面試題,希望對找工作的博友們一點幫助!   1.簡述Linux以及Linux命令          cd命令        ls命令        mkdir和rmdir命令        cp命令        mv命令        rm命令        cat命令        tac命令        more命令       head命令       tail命令       touch命令       chown命令       find命令       tar命令       grep命令       source命令      2.Java支持的數據類型有哪些,什麼是自動拆裝箱                1)8種基本數據類型: byte  8位  取值範圍 -2^7 ~ 2^7 -1 short 16位  取值範圍  -2^15 ~ 2^15 - 1 char  16位  取值範圍 0 ~ 2 ^16 - 1 boolean 位數不明確   取值  true false int 32位   取值範圍 -2^31 ~ 2^31 - 1 long 64位 取值範圍 -2^63 ~ 2^ 63 - 1 float 32位 取值範圍 1.4e-45 ~ 3.40e38 double 64位 取值範圍 4.9e-324 ~ 1.79e308 2)引用類型,包括類、介面、數組 需要註意的是,String不是基本數據類型,而是引用類型 引用類型聲明的變數,是指該變數在記憶體中實際上存儲的是個引用地址,創建的對象實際是在堆中   自動拆裝箱,是指基本數據類型和引用數據類型之間的自動轉換 如Integer 和 int 可以自動轉換; Float和float可以自動轉換      3.遍歷一個List有哪幾種不同的方式       List<String>  list =new ArrayList<String>();       list.add("圖書");       list.add("水彩筆");          //number1       for (int i=0;i<list.size();i++){              // list.get(i);       }       //number2        Iterator<String> iterator =list.iterator();                while(iterator.hasNext())             {                       // iterator.next();              }          //number3           for(String  item : list){                //System.out.print(item);             }         4.隨機產生20個不能重覆的字元併排序   Set noreapeat =new TreeSet();     Random rdm = new Random();   while (noreapeat.size()<20){   int bb =Math.abs(rdm.nextInt())%26+97;   char cc =(char)bb; noreapeat.add(cc); }   System.out.print(noreapeat);        5.給定一個字元串(包括字母、數字等),找出這個字元串中首先出現三次的那個英文字元   String str ="dsds221sdsddsds"; int nArr[] = new int[256]; //桶排序       for(int i=0;i<str.length();i++) {  if(++nArr[str.charAt(i)] == 3) {  char c =str.charAt(i); if(c>='a'&& c<='z' || c>='A'&&c<='Z') { System.out.println(c); break; } } }        6.什麼是協同過濾、map reduce 、餘弦距離        協同過濾 : 借鑒和你相關人群的觀點來進行推薦        map reduce :MapReduce是一種分散式計算模型,Map(映射)"和"Reduce(歸約).Map的作用是過濾一些原始數據,Reduce則是處理這些數據,得到我們想要的結果.   map函數:接受一個鍵值對(key-value pair),產生一組中間鍵值對。MapReduce框架會將map函數產生的中間鍵值對里鍵相同的值傳遞給一個reduce函數。      reduce函數:接受一個鍵,以及相關的一組值,將這組值進行合併產生一組規模更小的值(通常只有一個或零個值)。    在統計詞頻的例子里,map函數接受的鍵是文件名,值是文件的內容,map逐個遍歷單詞,每遇到一個單詞w,就產生一個中間鍵值對<w, "1">,這表示單詞w咱又找到了一個;MapReduce將鍵相同(都是單詞w)的鍵值對傳給reduce函數,這樣reduce函數接受的鍵就是單詞w,值是一串"1"(最基本的實現是這樣,但可以優化),個數等於鍵為w的鍵值對的個數,然後將這些“1”累加就得到單詞w的出現次數。最後這些單詞的出現次數會被寫到用戶定義的位置,存儲在底層的分散式存儲系統(GFS或HDFS)。     1.MapReduce庫先把user program的輸入文件劃分為M份(M為用戶定義),每一份通常有16MB到64MB,如圖左方所示分成了split0~4;然後使用fork將用戶進程拷貝到集群內其它機器上。      2.user program的副本中有一個稱為master,其餘稱為worker,master是負責調度的,為空閑worker分配作業(Map作業或者Reduce作業),worker的數量也是可以由用戶指定的。      3.被分配了Map作業的worker,開始讀取對應分片的輸入數據,Map作業數量是由M決定的,和split一一對應;Map作業從輸入數據中抽取出鍵值對,每一個鍵值對都作為參數傳遞給map函數,map函數產生的中間鍵值對被緩存在記憶體中。      4.緩存的中間鍵值對會被定期寫入本地磁碟,而且被分為R個區,R的大小是由用戶定義的,將來每個區會對應一個Reduce作業;這些中間鍵值對的位置會被通報給master,master負責將信息轉發給Reduce worker。      5.master通知分配了Reduce作業的worker它負責的分區在什麼位置(肯定不止一個地方,每個Map作業產生的中間鍵值對都可能映射到所有R個不同分區),當Reduce worker把所有它負責的中間鍵值對都讀過來後,先對它們進行排序,使得相同鍵的鍵值對聚集在一起。因為不同的鍵可能會映射到同一個分區也就是同一個Reduce作業(誰讓分區少呢),所以排序是必須的。      6.reduce worker遍歷排序後的中間鍵值對,對於每個唯一的鍵,都將鍵與關聯的值傳遞給reduce函數,reduce函數產生的輸出會添加到這個分區的輸出文件中。      6.當所有的Map和Reduce作業都完成了,master喚醒正版的user program,MapReduce函數調用返回user program的代碼。      所有執行完畢後,MapReduce輸出放在了R個分區的輸出文件中(分別對應一個Reduce作業)。用戶通常並不需要合併這R個文件,而是將其作為輸入交給另一個MapReduce程式處理。整個過程中,輸入數據是來自底層分散式文件系統(GFS)的,中間數據是放在本地文件系統的,最終輸出數據是寫入底層分散式文件系統(GFS)的。而且我們要註意Map/Reduce作業和map/reduce函數的區別:Map作業處理一個輸入數據的分片,可能需要調用多次map函數來處理每個輸入鍵值對;Reduce作業處理一個分區的中間鍵值對,期間要對每個不同的鍵調用一次reduce函數,Reduce作業最終也對應一個輸出文件。          餘弦距離: 兩向量之間的夾角,    餘弦相似度用向量空間中兩個向量夾角的餘弦值作為衡量兩個個體間差異的大小。相比距離度量,餘弦相似度更加註重兩個向量在方向上的差異,而非距離或長度上。        7.簡述圖資料庫

    常見的有:Neo4j    圖形資料庫是一種非關係型資料庫 Neo4j基於Java實現

                           最主要的組成有兩種,結點集和連接結點的關係

 

   FlockDB  AllegroGrap   InfiniteGraph


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.休眠方式 在內核中,休眠方式有很多種,可以通過下麵命令查看 常用的休眠方式有freeze,standby, mem, disk freeze: 凍結I/O設備,將它們置於低功耗狀態,使處理器進入空閑狀態,喚醒最快,耗電比其它standby, mem, disk方式高 standby:除了凍結I/ ...
  • 今天給大家介紹一個在linux下如何捕獲程式崩潰異常的方法 一、google breakpad源碼的下載和編譯 1、https://github.com/google/breakpad.git,源碼地址,git clone XXX克隆即可 2、cd breakpad 3、./configure 4、 ...
  • 在搭建環境時,還遇到了瀏覽器和驅動版本不匹配的一些問題,這裡單獨拿出來做個小結。 Chrome瀏覽器啟動時出現:“您使用的是不受支持的命令行標記:--ignore-certificate-errors.穩定性和安全性會有所下降”的字樣 原因:selenium2啟動Chrome瀏覽器是需要安裝驅動包的 ...
  • <script language="javascript" type="text/javascript"> // 生成目錄索引列表// ref: http://www.cnblogs.com/wangqiguo/p/4355032.html// modified by: zzqfunction Ge ...
  • 這期筆記繼續安裝Gentoo,上期我們已經到了可以進入新環境了,這意味著就是將原來的安裝CD或其它介質改為硬碟上安裝系統了,話不多說,馬上開始! 恢復安裝 由於我已經中斷了安裝,對於已經可以進入新環境的用戶來說,這個可以通過恢復安裝來繼續安裝Gentoo。 首先先掛載根分區: 然後複製DNS信息: ...
  • 網站在運行期間感覺怪怪的,響應速度慢的不是一丁半點,帶寬5M,不該是這樣的呀 於是登錄Xshell 查看cpu情況如下 PID為3435的進程占用CPU過大,難道被病毒入侵了嗎? 查看該進程文件的絕對路徑 發現上述紅框文件,於是上網搜索了下,得治是挖礦病毒 處理辦法 1、刪除tmp目錄里的qW3xT ...
  • 場景:linux下掛載過去的代碼目錄編譯失敗。懷疑本地磁碟空間不足問題導致。解決方法:卸載重新掛載。 操作:卸載時報錯: 解決方法: 1.umount, 老是提示:device is busy, 服務又不能停止的。 可以用"umount -fl"解決! eg:umount -fl 6.0.20 2. ...
  • 一、文件比較運算符 1. e filename 如果 filename存在,則為真 如: [ -e /var/log/syslog ] 2. -d filename 如果 filename為目錄,則為真 如: [ -d /tmp/mydir ] 3. -f filename 如果 filename為 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...