當前位置:成語大全網 - 書法字典 - Hadoop常見問題

Hadoop常見問題

Hadoop常見問題

(1)Hadoop適合電子政務嗎?為什麽?

電子政務是利用互聯網技術實現政府組織結構和工作流程的重組和優化,構建精簡、高效、廉潔、公正的政府運行信息服務平臺。因此,電子政務肯定會產生大量的數據和相應的計算需求,而當這兩個需求所涉及的數據和計算達到壹定規模時,傳統的系統架構將無法滿足它們,因此有必要使用海量數據處理平臺,例如Hadoop技術,因此我們可以使用Hadoop技術構建電子政務雲平臺。

總而言之,任何系統都沒有絕對的適合或不適合,只有在需求出現時才能決定。如果在壹個非常小的電子政務系統上沒有數據處理和計算分析需求,就不需要hadoop這樣的技術。事實上,商業電子政務平臺通常涉及大規模數據和大量計算分析需求,因此需要Hadoop等技術來解決這些問題。(2)2)Hadoop對於實時在線處理有優勢嗎?

直接使用hadoop進行實時處理時沒有優勢,因為Hadoop主要解決海量批處理作業的計算問題,但可以使用基於Hadoop的分布式NOSQL系統HBase系統和相關的實時處理系統:

1.基於Hadoop的HBase可以實現相關需求的實時處理和實時計算,主要解決海量

2.可以考慮Spark計算。Spark是壹個基於* * *現有內存RDD的系統,比Hadoop更快,有時還包括叠代計算,如數據挖掘和機器學習算法。

3.還有Storm,這是壹個免費、開源、分布式和高度容錯的實時計算系統。Storm常用於實時分析、在線機器學習、連續計算、分布式遠程調用和ETL。

4.想想S4,S4就是雅虎!壹個通用、分布式、可擴展、部分容錯和可插拔的平臺於2010年6月開放。該平臺主要是為了方便開發人員開發處理連續無界數據流的應用程序。

您可以根據實際需要選擇合適的系統。

(3)Hadoop存儲海量數據沒有問題,但如何實時檢索海量數據?

1可以與開源搜索引擎Apache Lucene、Solr或ElasticSearch結合使用。

2、海量數據的實時檢索可以考慮HBase,建議可以使用hadoop將數據構建成以查詢關鍵字為關鍵字的數據集,然後

如果檢索條件是多個組合,可以適當設計多個hbase表,速度也很快,Hbase還支持二次索引。當查詢滿足要求時,Hbase還支持MapReduce。如果響應時間不高,我們可以考慮將hive和Hbase系統結合使用。

如果數據量不是很大,也可以考慮支持類似SQL的NOSLQ系統。

(4)能給我壹些hadoop的學習方法和學習計劃嗎?hadoop系統有點龐大,感覺學不會?

首先,弄清楚hadoop是什麽以及hadoop可以用於什麽。

然後,我們可以從最經典的詞頻統計程序入手,初步了解MapReduce的基本思想和數據處理方法。

然後,您可以正式學習hadoop的基本原則,包括HDFS和MapReduce,首先從整體和宏核心原則開始,而不考慮源代碼級別。

此外,我們可以深入了解HDFS和MapReduce的細節和模塊。這時,我們可以深入了解源代碼和實現機制。

最後需要實戰,妳可以結合自己的項目或者相關需求完成壹些hadoop相關的應用。

(5)將壹個大文件拆分成許多小文件後,Hadoop如何高效處理這些小文件?以及如何盡可能使各個節點負載均衡?

1.如何用Hadoop高效處理這些小文件?

妳的問題很好。hadoop在處理大規模數據時非常高效,但在處理大量小文件時,會因為系統資源開銷過大而導致效率低下。為了解決這個問題,可以將小文件打包成大文件,例如使用sequencefile格式,例如將文件簽名作為密鑰,將文件內容本身作為sequencefile的記錄。這樣,多個小文件可以通過sequencefile文件格式轉換為壹個大文件,並且之前的每個小文件都將映射為sequencefile文件的壹條記錄。

2.如何盡可能平衡各個節點的負載?

負載平衡在hadoop集群中非常重要。這種情況往往是由於用戶的數據分布不均勻造成的,而計算資源槽的數量確實均勻分布在每個節點中,因此在作業運行時會有大量的數據傳輸在非本地任務中,從而導致集群的負載不均衡。所以解決不平衡的關鍵點是平衡用戶的數據分布,可以使用hadoop內置的balancer腳本命令。

對於資源調度造成的不平衡,需要考慮具體的調度算法和作業分配機制。

(6)對於C/c++程序員來說,有沒有關於如何入門Hadoop以及如何在Linux服務器上部署它的方向性指導?

對於C/C++用戶,hadoop提供了hadoop streaming接口和pipes接口。hadoop流接口將標準輸入和標準輸出作為中間件,用於用戶程序和Hadoop框架之間的交互。pipes是C/C++語言的專用接口,socket作為同學中介。

建議從流媒體開始。管道比流有更多的問題,調試管道並不容易。

(7)現在企業主要使用的Hadoop版本是1.x還是2.x?

目前百度、騰訊、阿裏等互聯網公司都是基於hadoop 1。x當然,每個公司都會進行定制化的二次開發,以滿足不同的集群需求。

2.x在百度還沒有正式使用,它仍然基於1.X .但是百度開發了HCE系統(Hadoop C++ Expand system)來解決1.X的問題

此外,Hadoop2.x在JD.COM等其他公司也得到廣泛應用。

(8)如果將來想從事大數據方面的工作,算法應該掌握到什麽程度,算法是否占據主要部分?

首先,如果妳想從事大數據相關領域,hadoop是作為工具使用的,妳需要先掌握使用方法。您不必深入了解hadoop源代碼級別的細節。

然後是對算法的理解,往往需要設計實現分布式數據挖掘算法,但妳仍然需要理解算法本身,比如常用的k-means聚類。

(9)現在spark和storm越來越受歡迎,Google也發布了Cloud Dataflow。Hadoop未來是否應該主要學習hdfs和yarn,Hadoop程序員未來主要做的是將這些東西打包,只提供接口給普通程序員使用,就像Cloudera和Google壹樣?

這位同學,妳多慮了。hadoop、spark、strom解決不同的問題。沒有好壞之分。如果妳想學Hadoop,妳應該考主流的hadoop-1。x為版本。2最重要的壹點。x是紗線骨架的添加,很好理解。

如果妳正在閱讀hadoop本身的研發建議,如果妳正在研究和開發hadoop應用程序,只需看看主流的1.X .我的書《Hadoop核心技術》在主流的1.x版本中有解釋,有興趣可以看看。

(10)順便提壹下,小白問道,大數據處理是不是就是在服務器上安裝相關軟件?對節目有什麽影響?集群和大數據是運維工作的壹部分還是攻城戰的壹部分?

傳統程序只能在單臺計算機上運行,而大數據處理通常是在分布式編程框架中編寫的,例如hadoop mapreduce只能在hadoop集群平臺上運行。

運維職責:確保集群和機器的穩定性和可靠性。

hadoop系統本身的研發:提升Hadoop集群的性能,增加新功能。

大數據應用:以hadoop為工具,實現海量數據處理或相關需求。

(11)如何學習hadoop?我們應該做什麽樣的項目?

妳可以參考我上面的回答。妳可以從最簡單的詞頻統計程序開始,然後學習理解HDFS和MapReduce的基本原理和核心機制。如果妳只把Hadoop作為壹個工具,妳可以做到。最重要的是實際戰鬥。可以嘗試使用Hadoop來處理壹些數據,比如日誌分析、數據統計、排序、倒排索引等典型應用。

(12)如何開發和運營超過100個hadoop節點?當有很多任務時,如何分配任務資源,任務執行順序是否由定時腳本或其他方法控制?

1.首先,大數據的應用開發與hadoop集群的規模無關。妳是指集群的建設和運維嗎?對於商用hadoop系統來說,涉及到很多東西。建議參考《hadoop核心技術實戰》中“第10章Hadoop集群構建”壹章。

2.任務的分配由hadoop的調度器的調度策略決定。默認為FIFO調度。商用集群壹般使用多隊列多用戶調度器。請參考hadoop核心技術高級章節中的章節“第九章Hadoop作業調度系統”。

3.任務的執行順序由用戶控制,因此您可以定期或手動啟動它們。

(13)基於Hadoop開發壹定要用Java嗎,其他開發語言不能更好地集成到整個Hadoop開發系統中嗎?

基於hadoop的開發可以使用任何語言,因為hadoop改進了流式編程框架和pipes編程接口。在流框架下,用戶可以使用任何能夠操作標準輸入和輸出的計算機語言來開發Hadoop應用程序。

(14)在reduce階段,總是長時間卡在最後壹個階段。根據網上搜索,有可能是數據傾斜。我想問壹下這個有什麽解決辦法嗎?

1,這是數據傾斜。大量數據集中在壹個reduce中,而在其他reduce中分配的數據較少。默認情況下,將哪些數據分配給哪個縮減由縮減器和分區的數量決定。默認情況下,對鍵執行哈希操作。通常,除非使用HIVE,否則很少使用mapreuce skew。

2.reduce分為三個子階段:洗牌、排序和reduce。如果整個reduce過程需要很長時間,建議看看監控界面卡在哪個階段。如果卡在shuffle階段,往往是網絡擁塞問題,在a Reduce中存在大量數據,也就是大家所說的數據傾斜問題。這個問題通常是由於壹個鍵的值太多。解決方案是:首先,默認分區可能不適合您。二是在map端進行截斷,使到達各個reduce端的數據均勻分布。

(15)非大數據項目可以使用hadoop嗎?

非大數據項目能否使用Hadoop的關鍵問題是是否有海量數據存儲、計算、分析和挖掘需求。如果現有系統已經很好地滿足了當前的需求,則沒有必要使用Hadoop。不必使用Hadoop並不意味著不能使用它。許多傳統系統可以做的Hadoop也可以做,例如使用HDFS而不是LINUX NFS。使用MapReduce代替單服務器統計分析相關任務,使用Hbase代替關系數據庫如Mysql等。,當數據量不大時,Hadoop集群通常比傳統系統消耗更多的資源。

(16)如何集成Hadoop MapReduce和第三方資源管理調度系統?

Hadoop的調度程序設計的壹個原則是可插拔調度程序框架,因此很容易與第三方調度程序集成,例如FairScheduler和CapacityScheduler。並配置MapReduce。mapred-site.xml的jobtracker.taskscheduler以及調度程序本身的配置參數。例如,需要編輯和配置fair- scheduler.xml的控制參數。具體可以參考我的新書《Hadoop核心技術》第十章集群構建示例中的10.10.9來配置第三方調度器。同時,您可以進壹步學習第9章Hadoop作業調度系統。本章將詳細介紹各種第三方調度程序及其配置方法。