Hadoop精华问答 | 关于Hadoop核心技术的精华问答
戳藍字“CSDN云計算”關注我們哦!
隨著科技時代的發(fā)展,大數(shù)據(jù)與云計算已勢不可擋的架勢席卷未來,不可否認,大數(shù)據(jù)時代已經(jīng)來臨,并將深刻地改變著我們的工作和生活。學習大數(shù)據(jù)技術,是時代的召喚,是社會對高薪技術人才的渴望,而想要了解大數(shù)據(jù)就一定要學習Hadoop。作為開發(fā)和運行處理大規(guī)模數(shù)據(jù)的軟件平臺,Hadoop是Appach中用java語言實現(xiàn)開源軟件的框架,并實現(xiàn)在大量計算機組成的集群中對海量數(shù)據(jù)進行分布式計算。今天,我們就來看看關于Hadoop核心技術的問與答吧!
Q:Hadoop與大數(shù)據(jù)有什么關系?
A:Hadoop,Spark和Storm是目前最重要的三大分布式計算系統(tǒng),Hadoop常用于離線的復雜的大數(shù)據(jù)處理,Spark常用于離線的快速的大數(shù)據(jù)處理,而Storm常用于在線的實時的大數(shù)據(jù)處理。
簡單說,Hadoop或者說Hadoop生態(tài)圈,是為了解決大數(shù)據(jù)應用場景而出現(xiàn)的,它包含了文件系統(tǒng)、計算框架、調度系統(tǒng)等,Spark是Hadoop生態(tài)圈里的一種分布式計算引擎。
Q:Hadoop在大數(shù)據(jù)中的作用?
A:Hadoop大數(shù)據(jù)處理的相關產品有很多,如Hive、HBase、Spark、Storm、Mahout等等,用戶的需求也能夠日益得到滿足。相比于使用場景已基本固化的關系型數(shù)據(jù)庫,Hadoop功能更加靈活。并且Hadoop是開源項目,有開源社區(qū)和大多技術者的支持,開發(fā)維護也較為方便。
Q:大的文件拆分成很多小的文件后,怎樣用Hadoop進行高效的處理這些小文件?以及怎樣讓各個節(jié)點盡可能的負載均衡?
A:Hadoop在處理大規(guī)模數(shù)據(jù)時是很高效的,但是處理大量的小文件時就會因為系統(tǒng)資源開銷過大而導致效率較低,針對這樣的問題,可以將小文件打包為大文件,例如使用SequcenFile文件格式,例如以文件簽名為key,文件內容本身為value寫成SequcenFile文件的一條記錄,這樣多個小文件就可以通過SequcenFile文件格式變?yōu)橐粋€大文件,之前的每個小文件都會映射為SequcenFile文件的一條記錄。
在Hadoop集群中負載均衡是非常關鍵的,這種情況的導致往往是因為用戶的數(shù)據(jù)分布的并不均衡,而計算資源槽位數(shù)確實均衡分布在每個節(jié)點,這樣在作業(yè)運行時非本地任務會有大量的數(shù)據(jù)傳輸,從而導致集群負載不均衡,因此解決不均衡的要點就是將用戶的數(shù)據(jù)分布均衡,可以使用hadoop內置的balancer腳本命令。對于因為資源調度導致的不均衡則需要考慮具體的調度算法和作業(yè)分配機制。
Q:Hadoop和Spark有哪些不同呢?
A:首先,Hadoop 和Spark 兩者都是大數(shù)據(jù)框架,但解決問題的層面有所不同。Hadoop更多是一個分布式數(shù)據(jù)基礎設施,將巨大的數(shù)據(jù)集分派到一個由普通計算機組成的集群中的多個節(jié)點進行存儲,節(jié)省了硬件成本 ,而Spark,則是那么一個專門用來對那些分布式存儲的大數(shù)據(jù)進行處理的工具,依賴于分布式數(shù)據(jù)存儲。
其次, Spark要比Hadoop的MapReduce計算速度快很多。Spark,它會在內存中以接近“實時”的時間完成所有的數(shù)據(jù)分析,從集群中讀取數(shù)據(jù),完成所有必須的分析處理,將結果寫回集群。對于動態(tài)數(shù)據(jù)實時分析而言,Spark要比Hadoop性能較為優(yōu)越。比如實時的市場活動、網(wǎng)絡安全分析等方面的應用。
Q:之前碰到一個情況是在reduce階段老是卡在最后階段很長時間,在網(wǎng)上查的說是有可能是數(shù)據(jù)傾斜,這個有什么解決方法嗎?
A:reduce分為3個子階段:shuffle、sort和reduce,如果reduce整個過程耗時較長,建議先看一下監(jiān)控界面是卡在哪個階段,如果是卡在shuffle階段往往是網(wǎng)絡阻塞問題,還有就是某reduce數(shù)據(jù)量太大,也就是你所說的數(shù)據(jù)傾斜問題,這種問題往往因為某個key的value太多,解決方法是:第一,默認的partiiton可能不適合你的需求,你可以自定義partiiton;第二就是在map端截斷,盡量讓達到每個reduce端的數(shù)據(jù)分布均勻。
小伙伴們沖鴨,后臺留言區(qū)等著你!
關于Spring,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區(qū)打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區(qū)里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2、公眾號后臺回復:白皮書,獲取IDC最新數(shù)據(jù)白皮書整理資料!
推薦閱讀:
云計算之基,一文帶你速懂虛擬化KVM和XEN
OpenStack網(wǎng)絡的下一步原來這么走 | 技術頭條
用一枚比特幣環(huán)游世界? 他是不是瘋了...
程序員逆襲為美國最佳 CEO,他說因為愛情
斯坦福區(qū)塊鏈匪幫傳奇,那些睡地毯、沒日沒夜寫代碼的編程少年
Erlang 之父去世,他留給程序員兩點忠告
開什么玩笑?股票價格如何經(jīng)得起AI的推敲?| 技術頭條
真香,朕在看了!
總結
以上是生活随笔為你收集整理的Hadoop精华问答 | 关于Hadoop核心技术的精华问答的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019 年度程序员吸金榜:你排第几?
- 下一篇: boost::container模块实现