Hadoop面試題之HDFS

banq發表於2021-12-23

Hadoop不是資料庫,它是一種具有稱為 HDFS 的檔案系統的架構。資料儲存在沒有任何預定義容器的 HDFS 中。
關聯式資料庫將資料儲存在預定義的容器中。
 

什麼是大資料?

大資料只不過是如此龐大而複雜的資料的分類,在現有資料庫管理工具或傳統資料處理技術的幫助下捕獲、儲存、處理、檢索和分析它變得非常繁瑣。
 

你能舉一些大資料的例子嗎?
現實生活中有很多大資料的例子!Facebook 每天產生 500 多 TB 的資料,紐約證券交易所(紐約證券交易所)每天產生大約 1 TB 的新交易資料,一家噴氣航空公司每 30 分鐘的飛行時間收集 10 TB 的審查資料。所有這些都是大資料的日常示例!
 

您能否詳細介紹一下 Facebook 生成的大資料?
截至 2012 年 12 月 31 日,Facebook 月活躍使用者為 10.6 億,移動使用者為 6.8 億。平均而言,每天在 Facebook 上釋出 32 億個贊和評論。72% 的網路受眾在 Facebook 上。那麼為何不!facebook 上有很多活動,從牆貼、分享圖片、影片、寫評論和點贊帖子等等。事實上,Facebook 於 2009 年年中開始使用 Hadoop,並且是 Hadoop 的最初使用者之一。
 

IBM 認為大資料的三個特徵是什麼?
IBM認為,大資料的三個特徵是:
容量:Facebook 每天產生 500 多 TB 的資料。
速度:每天分析 200 萬條記錄,以確定丟失的原因。
種類:影像、音訊、影片、感測器資料、日誌檔案等。
 

“大資料”有多大?
隨著時間的推移,資料量呈指數級增長。早些時候我們曾經談論過兆位元組或千兆位元組。但是,當我們談論以 TB、PB 和 Zettabytes 表示的資料量時,時間已經到了!2011年全球資料量在1.8ZB左右,預計2015年將達到7.9ZB。眾所周知,全球資訊量每兩年翻一番!
 

大資料分析對組織有何用處?
大資料的有效分析提供了很多業務優勢,因為組織將瞭解哪些領域需要關注,哪些領域不太重要。大資料分析提供了一些早期的關鍵指標,可以防止公司遭受鉅額虧損,或者幫助我們張開雙手抓住大好機會!對大資料的精確分析有助於決策!例如,現在人們在購買任何產品或服務之前非常依賴 Facebook 和 Twitter。這一切都歸功於大資料爆炸。
 

“資料科學家”是誰?
資料科學家很快就會取代業務分析師或資料分析師。資料科學家是尋找解決方案來分析資料的專家。就像網路分析一樣,我們有資料科學家,他們對如何處理業務挑戰具有良好的業務洞察力。敏銳的資料科學家不僅會參與處理業務問題,還會選擇可以為組織帶來增值的相關問題。
 

什麼是Hadoop?
Hadoop 是一個框架,它允許使用簡單的程式設計模型跨商用計算機叢集對大型資料集進行分散式處理。
 

為什麼叫“Hadoop”?
Hadoop 沒有像“oops”這樣的擴充套件版本。你看到的那頭迷人的黃色大象,基本上都是以道格兒子的玩具大象命名的!
 

為什麼我們需要Hadoop?
每天都有大量非結構化資料被轉儲到我們的機器中。主要的挑戰不是在我們的系統中儲存大資料集,而是檢索和分析組織中的大資料,這些資料也存在於不同位置的不同機器中。在這種情況下,就需要使用 Hadoop。Hadoop 能夠以非常快速且具有成本效益的方式分析不同位置不同機器中存在的資料。它使用 MapReduce 的概念,使其能夠將查詢分成小部分並並行處理它們。這也稱為平行計算。
 

Hadoop框架有哪些特點?
Hadoop 框架是用 Java 編寫的。它旨在解決涉及分析大資料(例如 PB)的問題。程式設計模型基於 Google 的 MapReduce。該基礎架構基於 Google 的大資料和分散式檔案系統。Hadoop 處理大檔案/資料吞吐量並支援資料密集型分散式應用程式。Hadoop 是可擴充套件的,因為可以輕鬆地向其中新增更多節點。
 

簡要概述 Hadoop 的歷史。
2002 年,Doug Cutting 建立了一個開源的網路爬蟲專案。
2004年,谷歌發表了MapReduce、GFS論文。
2006 年,Doug Cutting 開發了開源、Mapreduce 和 HDFS 專案。
2008 年,雅虎執行了 4000 個節點的 Hadoop 叢集,Hadoop 贏得了 TB 級排序基準。
2009 年,Facebook 推出了對 Hadoop 的 SQL 支援。
 

舉一些使用Hadoop結構的公司的例子?
很多公司都在使用 Hadoop 結構,例如 Cloudera、EMC、MapR、Hortonworks、Amazon、Facebook、eBay、Twitter、Google 等。
 

傳統 RDBMS 和 Hadoop 的基本區別是什麼?
傳統的 RDBMS 用於事務系統來報告和歸檔資料,而 Hadoop 是一種將大量資料儲存在分散式檔案系統中並對其進行處理的方法。當您想從大資料中查詢一條記錄時,RDBMS 會很有用,而當您想一次性獲取大資料並稍後對其進行分析時,Hadoop 會很有用。
 

什麼是結構化和非結構化資料?
結構化資料是易於識別的資料,因為它以結構形式進行組織。結構化資料最常見的形式是資料庫,其中特定資訊儲存在表中,即行和列。非結構化資料是指任何無法輕易識別的資料。它可以是影像、影片、文件、電子郵件、日誌和隨機文字的形式。它不是行和列的形式。
 

Hadoop的核心元件是什麼?
Hadoop 的核心元件是 HDFS 和 MapReduce。HDFS 基本上是用來儲存大資料集的,MapReduce 是用來處理這樣大的資料集的。
 

什麼是 HDFS?
HDFS 是一種檔案系統,旨在儲存具有流資料訪問模式的超大檔案,在商品硬體上執行叢集。
 

HDFS 的主要特性是什麼?
HDFS 具有高度容錯性和高吞吐量,適用於具有大資料集的應用程式,可以流式訪問檔案系統資料,並且可以構建在商用硬體之外。
 

什麼是容錯?
假設您在系統中儲存了一個檔案,並且由於某些技術問題該檔案被破壞了。那麼就沒有機會在該檔案中恢復資料。為了避免這種情況,Hadoop 在 HDFS 中引入了容錯特性。在 Hadoop 中,當我們儲存檔案時,它也會自動在其他兩個位置進行復制。因此,即使其中一兩個系統崩潰,該檔案在第三個系統上仍然可用。
 

複製導致資料冗餘那為什麼在HDFS中追求呢?
HDFS 與商品硬體(具有平均配置的系統)一起使用,這些硬體隨時都有可能崩潰。因此,為了使整個系統具有高容錯性,HDFS 將資料複製並儲存在不同的地方。HDFS 上的任何資料都至少儲存在 3 個不同的位置。因此,即使其中一個已損壞並且另一個由於某種原因在一段時間內不可用,也可以從第三個訪問資料。因此,沒有丟失資料的機會。這個複製因子幫助我們獲得了被稱為容錯的 Hadoop 特性。
由於資料在 HDFS 中複製三次,是否意味著在一個節點上完成的任何計算也會在其他兩個節點上覆制?
由於有3個節點,當我們傳送MapReduce程式時,只會對原始資料進行計算。主節點將知道哪個節點確切具有該特定資料。如果節點之一沒有響應,則假定它發生故障。只有這樣,所需的計算才會在第二個副本上完成。
 

什麼是吞吐量?HDFS 如何獲得良好的吞吐量?
吞吐量是單位時間內完成的工作量。它描述了從系統訪問資料的速度,通常用於衡量系統的效能。在 HDFS 中,當我們想要執行一個任務或一個動作時,那麼工作就會在不同的系統之間進行劃分和共享。因此,所有系統都將獨立並行地執行分配給它們的任務。所以這項工作將在很短的時間內完成。透過這種方式,HDFS 提供了良好的吞吐量。透過並行讀取資料,我們大大減少了讀取資料的實際時間。
 

什麼是流媒體訪問?
由於 HDFS 的工作原理是“一次寫入,多次讀取”,因此流式訪問功能在 HDFS 中極為重要。HDFS 的重點不是儲存資料,而是如何以儘可能快的速度檢索資料,尤其是在分析日誌時。在 HDFS 中,讀取完整資料比從資料中獲取單個記錄所花費的時間更重要。
 

什麼是商品硬體?商品硬體是否包括 RAM?
商品硬體是一種不昂貴的系統,不具有高質量或高可用​​性。Hadoop 可以安裝在任何普通的商品硬體中。我們不需要超級計算機或高階硬體來在 Hadoop 上工作。是的,商品硬體包括 RAM,因為會有一些服務將在 RAM 上執行。
 

什麼是名稱節點?
Namenode 是作業跟蹤器執行的主節點,由後設資料組成。它維護和管理存在於資料節點上的塊。它是 HDFS 中的高可用性機器和單點故障。
 

Namenode也是商品嗎?
不。Namenode 永遠不可能成為商品硬體,因為整個 HDFS 都依賴於它。它是 HDFS 中的單點故障。Namenode 必須是高可用性機器。
 

什麼是後設資料?
後設資料是關於儲存在資料節點中的資料的資訊,例如檔案的位置、檔案的大小等。
 

什麼是資料節點?
資料節點是部署在每臺機器上並提供實際儲存的從節點。它們負責為客戶端提供讀取和寫入請求。
 

為什麼我們將 HDFS 用於具有大資料集的應用程式,而不是當有很多小檔案時?
與分佈在多個檔案中的少量資料相比,HDFS 更適合單個檔案中的大量資料集。這是因為 Namenode 是一個非常昂貴的高效能系統,因此為多個小檔案生成的不必要的後設資料量佔用 Namenode 中的空間是不明智的。因此,當單個檔案中有大量資料時,名稱節點將佔用較少的空間。因此,為了獲得最佳化的效能,HDFS 支援大資料集而不是多個小檔案。
 

什麼是守護程式?
守護程式是在後臺執行的程式或服務。一般來說,我們在 UNIX 環境中使用這個詞。Windows 中 Daemon 的等價物是“services”,而 Dos 中的等價物是“TSR”。
 

什麼是工作跟蹤器?
作業跟蹤器是一個執行在名稱節點上的守護程式,用於在 Hadoop 中提交和跟蹤 MapReduce 作業。它將任務分配給不同的任務跟蹤器。在 Hadoop 叢集中,將只有一個作業跟蹤器,但有許多工跟蹤器。它是 Hadoop 和 MapReduce 服務的單點故障。如果作業跟蹤器出現故障,則所有正在執行的作業都會停止。它從任務跟蹤器接收心跳,基於哪個作業跟蹤器決定分配的任務是否完成。
 

什麼是任務跟蹤器?
任務跟蹤器也是一個執行在資料節點上的守護程式。任務跟蹤器管理從節點上單個任務的執行。當客戶端提交作業時,作業跟蹤器將初始化作業並劃分工作並將它們分配給不同的任務跟蹤器執行 MapReduce 任務。在執行此操作時,任務跟蹤器將透過傳送心跳同時與作業跟蹤器通訊。如果作業跟蹤器在指定時間內沒有收到任務跟蹤器的心跳,則它會假設任務跟蹤器已崩潰並將該任務分配給叢集中的另一個任務跟蹤器。
 

Namenode機器和datanode機器在硬體方面一樣嗎?
這取決於您嘗試建立的叢集。Hadoop VM 可以在同一臺機器上,也可以在另一臺機器上。比如在單節點叢集中,只有一臺機器,而在開發或測試環境中,Namenode和datanode在不同的機器上。
 

HDFS 中的心跳是什麼?
心跳是一個訊號,表明它是活著的。資料節點向 Namenode 傳送心跳,任務跟蹤器將其心跳傳送到作業跟蹤器。如果 Namenode 或 job tracker 沒有收到心跳,那麼他們將確定 datanode 或任務跟蹤器存在問題,無法執行分配的任務。
 
 

相關文章