
Hadoop面試中6個常見的問題及答案
準備好面試了嗎?呀,需要Hadoop的知識!???不要慌!這里有一些可能會問到的問題以及你應該給出的答案。
Q1.什么是Hadoop?
Hadoop是一個開源軟件框架,用于存儲大量數(shù)據(jù),并發(fā)處理/查詢在具有多個商用硬件(即低成本硬件)節(jié)點的集群上的那些數(shù)據(jù)??傊?,Hadoop包括以下內(nèi)容:
HDFS(Hadoop Distributed File System,Hadoop分布式文件系統(tǒng)):HDFS允許你以一種分布式和冗余的方式存儲大量數(shù)據(jù)。例如,1 GB(即1024 MB)文本文件可以拆分為16 * 128MB文件,并存儲在Hadoop集群中的8個不同節(jié)點上。每個分裂可以復制3次,以實現(xiàn)容錯,以便如果1個節(jié)點故障的話,也有備份。HDFS適用于順序的“一次寫入、多次讀取”的類型訪問。
MapReduce:一個計算框架。它以分布式和并行的方式處理大量的數(shù)據(jù)。當你對所有年齡> 18的用戶在上述1 GB文件上執(zhí)行查詢時,將會有“8個映射”函數(shù)并行運行,以在其128 MB拆分文件中提取年齡> 18的用戶,然后“reduce”函數(shù)將運行以將所有單獨的輸出組合成單個最終結果。
YARN(Yet Another Resource Nagotiator,又一資源定位器):用于作業(yè)調(diào)度和集群資源管理的框架。
Hadoop生態(tài)系統(tǒng),擁有15多種框架和工具,如Sqoop,F(xiàn)lume,Kafka,Pig,Hive,Spark,Impala等,以便將數(shù)據(jù)攝入HDFS,在HDFS中轉移數(shù)據(jù)(即變換,豐富,聚合等),并查詢來自HDFS的數(shù)據(jù)用于商業(yè)智能和分析。某些工具(如Pig和Hive)是MapReduce上的抽象層,而Spark和Impala等其他工具則是來自MapReduce的改進架構/設計,用于顯著提高的延遲以支持近實時(即NRT)和實時處理。
Q2.為什么組織從傳統(tǒng)的數(shù)據(jù)倉庫工具轉移到基于Hadoop生態(tài)系統(tǒng)的智能數(shù)據(jù)中心?
Hadoop組織正在從以下幾個方面提高自己的能力:
現(xiàn)有數(shù)據(jù)基礎設施:
主要使用存儲在高端和昂貴硬件中的“structured data,結構化數(shù)據(jù)”
主要處理為ETL批處理作業(yè),用于將數(shù)據(jù)提取到RDBMS和數(shù)據(jù)倉庫系統(tǒng)中進行數(shù)據(jù)挖掘,分析和報告,以進行關鍵業(yè)務決策。
主要處理以千兆字節(jié)到兆字節(jié)為單位的數(shù)據(jù)量
基于Hadoop的更智能的數(shù)據(jù)基礎設施,其中
結構化(例如RDBMS),非結構化(例如images,PDF,docs )和半結構化(例如logs,XMLs)的數(shù)據(jù)可以以可擴展和容錯的方式存儲在較便宜的商品機器中。
可以通過批處理作業(yè)和近實時(即,NRT,200毫秒至2秒)流(例如Flume和Kafka)來攝取數(shù)據(jù)。
數(shù)據(jù)可以使用諸如Spark和Impala之類的工具以低延遲(即低于100毫秒)的能力查詢。
可以存儲以兆兆字節(jié)到千兆字節(jié)為單位的較大數(shù)據(jù)量。
這使得組織能夠使用更強大的工具來做出更好的業(yè)務決策,這些更強大的工具用于獲取數(shù)據(jù),轉移存儲的數(shù)據(jù)(例如聚合,豐富,變換等),以及使用低延遲的報告功能和商業(yè)智能。
Q3.更智能&更大的數(shù)據(jù)中心架構與傳統(tǒng)的數(shù)據(jù)倉庫架構有何不同?
傳統(tǒng)的企業(yè)數(shù)據(jù)倉庫架構
基于Hadoop的數(shù)據(jù)中心架構
Q4.基于Hadoop的數(shù)據(jù)中心的好處是什么?
隨著數(shù)據(jù)量和復雜性的增加,提高了整體SLA(即服務水平協(xié)議)。例如,“Shared Nothing”架構,并行處理,內(nèi)存密集型處理框架,如Spark和Impala,以及YARN容量調(diào)度程序中的資源搶占。
縮放數(shù)據(jù)倉庫可能會很昂貴。添加額外的高端硬件容量以及獲取數(shù)據(jù)倉庫工具的許可證可能會顯著增加成本?;?a href='/map/hadoop/' style='color:#000;font-size:inherit;'>Hadoop的解決方案不僅在商品硬件節(jié)點和開源工具方面更便宜,而且還可以通過將數(shù)據(jù)轉換卸載到Hadoop工具(如Spark和Impala)來補足數(shù)據(jù)倉庫解決方案,從而更高效地并行處理大數(shù)據(jù)。這也將釋放數(shù)據(jù)倉庫資源。
探索新的渠道和線索。Hadoop可以為數(shù)據(jù)科學家提供探索性的沙盒,以從社交媒體,日志文件,電子郵件等地方發(fā)現(xiàn)潛在的有價值的數(shù)據(jù),這些數(shù)據(jù)通常在數(shù)據(jù)倉庫中不可得。
更好的靈活性。通常業(yè)務需求的改變,也需要對架構和報告進行更改?;?a href='/map/hadoop/' style='color:#000;font-size:inherit;'>Hadoop的解決方案不僅可以靈活地處理不斷發(fā)展的模式,還可以處理來自不同來源,如社交媒體,應用程序日志文件,image,PDF和文檔文件的半結構化和非結構化數(shù)據(jù)。
Q5.大數(shù)據(jù)解決方案的關鍵步驟是什么?
提取數(shù)據(jù),存儲數(shù)據(jù)(即數(shù)據(jù)建模)和處理數(shù)據(jù)(即數(shù)據(jù)加工,數(shù)據(jù)轉換和查詢數(shù)據(jù))。
提取數(shù)據(jù)
從各種來源提取數(shù)據(jù),例如:
RDBM(Relational Database Management Systems)關系數(shù)據(jù)庫管理系統(tǒng),如Oracle,MySQL等。
ERPs(Enterprise Resource Planning)企業(yè)資源規(guī)劃(即ERP)系統(tǒng),如SAP。
CRM(Customer Relationships Management)客戶關系管理系統(tǒng),如Siebel,Salesforce等
社交媒體Feed和日志文件。
平面文件,文檔和圖像。
并將其存儲在基于“Hadoop分布式文件系統(tǒng)”(簡稱HDFS)的數(shù)據(jù)中心上??梢酝ㄟ^批處理作業(yè)(例如每15分鐘運行一次,每晚一次,等),近實時(即100毫秒至2分鐘)流式傳輸和實時流式傳輸(即100毫秒以下)去采集數(shù)據(jù)。
Hadoop中使用的一個常用術語是“Schema-On-Read”。這意味著未處理(也稱為原始)的數(shù)據(jù)可以被加載到HDFS,其具有基于處理應用的需求在處理之時應用的結構。這與“Schema-On-Write”不同,后者用于需要在加載數(shù)據(jù)之前在RDBM中定義模式。
存儲數(shù)據(jù)
數(shù)據(jù)可以存儲在HDFS或NoSQL數(shù)據(jù)庫,如HBase。HDFS針對順序訪問和“一次寫入和多次讀取”的使用模式進行了優(yōu)化。HDFS具有很高的讀寫速率,因為它可以將I / O并行到多個驅動器。HBase在HDFS之上,并以柱狀方式將數(shù)據(jù)存儲為鍵/值對。列作為列家族在一起。HBase適合隨機讀/寫訪問。在Hadoop中存儲數(shù)據(jù)之前,你需要考慮以下幾點:
數(shù)據(jù)存儲格式:有許多可以應用的文件格式(例如CSV,JSON,序列,AVRO,Parquet等)和數(shù)據(jù)壓縮算法(例如snappy,LZO,gzip,bzip2等)。每個都有特殊的優(yōu)勢。像LZO和bzip2的壓縮算法是可拆分的。
數(shù)據(jù)建模:盡管Hadoop的無模式性質(zhì),模式設計依然是一個重要的考慮方面。這包括存儲在HBase,Hive和Impala中的對象的目錄結構和模式。Hadoop通常用作整個組織的數(shù)據(jù)中心,并且數(shù)據(jù)旨在共享。因此,結構化和有組織的數(shù)據(jù)存儲很重要。
元數(shù)據(jù)管理:與存儲數(shù)據(jù)相關的元數(shù)據(jù)。
多用戶:更智能的數(shù)據(jù)中心托管多個用戶、組和應用程序。這往往導致與統(tǒng)治、標準化和管理相關的挑戰(zhàn)。
處理數(shù)據(jù)
Hadoop的處理框架使用HDFS。它使用“Shared Nothing”架構,在分布式系統(tǒng)中,每個節(jié)點完全獨立于系統(tǒng)中的其他節(jié)點。沒有共享資源,如CPU,內(nèi)存以及會成為瓶頸的磁盤存儲。Hadoop的處理框架(如Spark,Pig,Hive,Impala等)處理數(shù)據(jù)的不同子集,并且不需要管理對共享數(shù)據(jù)的訪問。 “Shared Nothing”架構是非??蓴U展的,因為更多的節(jié)點可以被添加而沒有更進一步的爭用和容錯,因為每個節(jié)點是獨立的,并且沒有單點故障,系統(tǒng)可以從單個節(jié)點的故障快速恢復。
Q6.你會如何選擇不同的文件格式存儲和處理數(shù)據(jù)?
設計決策的關鍵之一是基于以下方面關注文件格式:
使用模式,例如訪問50列中的5列,而不是訪問大多數(shù)列。
可并行處理的可分裂性。
塊壓縮節(jié)省存儲空間vs讀/寫/傳輸性能
CSV文件
CSV文件通常用于在Hadoop和外部系統(tǒng)之間交換數(shù)據(jù)。CSV是可讀和可解析的。 CSV可以方便地用于從數(shù)據(jù)庫到Hadoop或到分析數(shù)據(jù)庫的批量加載。在Hadoop中使用CSV文件時,不包括頁眉或頁腳行。文件的每一行都應包含記錄。CSV文件對模式評估的支持是有限的,因為新字段只能附加到記錄的結尾,并且現(xiàn)有字段不能受到限制。CSV文件不支持塊壓縮,因此壓縮CSV文件會有明顯的讀取性能成本。
JSON文件
JSON記錄與JSON文件不同;每一行都是其JSON記錄。由于JSON將模式和數(shù)據(jù)一起存儲在每個記錄中,因此它能夠實現(xiàn)完整的模式演進和可拆分性。此外,JSON文件不支持塊級壓縮。
序列文件
序列文件以與CSV文件類似的結構用二進制格式存儲數(shù)據(jù)。像CSV一樣,序列文件不存儲元數(shù)據(jù),因此只有模式進化才將新字段附加到記錄的末尾。與CSV文件不同,序列文件確實支持塊壓縮。序列文件也是可拆分的。序列文件可以用于解決“小文件問題”,方式是通過組合較小的通過存儲文件名作為鍵和文件內(nèi)容作為值的XML文件。由于讀取序列文件的復雜性,它們更適合用于在飛行中的(即中間的)數(shù)據(jù)存儲。
注意:序列文件是以Java為中心的,不能跨平臺使用。
Avro文件
適合于有模式的長期存儲。Avro文件存儲具有數(shù)據(jù)的元數(shù)據(jù),但也允許指定用于讀取文件的獨立模式。啟用完全的模式進化支持,允許你通過定義新的獨立模式重命名、添加和刪除字段以及更改字段的數(shù)據(jù)類型。Avro文件以JSON格式定義模式,數(shù)據(jù)將采用二進制JSON格式。Avro文件也是可拆分的,并支持塊壓縮。更適合需要行級訪問的使用模式。這意味著查詢該行中的所有列。不適用于行有50+列,但使用模式只需要訪問10個或更少的列。Parquet文件格式更適合這個列訪問使用模式。
Columnar格式,例如RCFile,ORC
RDBM以面向行的方式存儲記錄,因為這對于需要在獲取許多列的記錄的情況下是高效的。如果在向磁盤寫入記錄時已知所有列值,則面向行的寫也是有效的。但是這種方法不能有效地獲取行中的僅10%的列或者在寫入時所有列值都不知道的情況。這是Columnar文件更有意義的地方。所以Columnar格式在以下情況下工作良好
在不屬于查詢的列上跳過I / O和解壓縮
用于僅訪問列的一小部分的查詢。
用于數(shù)據(jù)倉庫型應用程序,其中用戶想要在大量記錄上聚合某些列。
RC和ORC格式是專門用Hive寫的而不是通用作為Parquet。
Parquet文件
Parquet文件是一個columnar文件,如RC和ORC。Parquet文件支持塊壓縮并針對查詢性能進行了優(yōu)化,可以從50多個列記錄中選擇10個或更少的列。Parquet文件寫入性能比非columnar文件格式慢。Parquet通過允許在最后添加新列,還支持有限的模式演變。Parquet可以使用Avro API和Avro架構進行讀寫。
所以,總而言之,相對于其他,你應該會更喜歡序列,Avro和Parquet文件格式;序列文件用于原始和中間存儲,Avro和Parquet文件用于處理。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03