欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Hadoop組件簡介

 更新時間:2017年09月28日 09:43:22   投稿:mrr  
Hadoop作為一種分布式基礎(chǔ)架構(gòu),可以使用戶在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。接下來通過本文給大家分享Hadoop組件簡介,感興趣的朋友一起看看吧

安裝hbase

首先下載hbase的最新穩(wěn)定版本

 http://www.apache.org/dyn/closer.cgi/hbase/

安裝到本地目錄中,我安裝的是當(dāng)前用戶的hadoop/hbase中

tar -zxvf hbase-0.90.4.tar.gz

單機(jī)模式

修改配置文件

conf/hbase_env.sh

配置JDK的路徑

修改conf/hbase-site.xml

hbase.rootdir

file:///home/${user.name}/hbase-tmp

完成后啟動

bin/start-hbase.sh

啟動后

starting master, logging to/home/lgstar888/hadoop/hbase0.9/bin/../logs/hbase-lgstar888-master-ubuntu.out

然后執(zhí)行

bin/hbase shell

輸入status


如果輸入exit則退出

Hadoop與Google一樣,都是小孩命名的,是一個虛構(gòu)的名字,沒有特別的含義。從計算機(jī)專業(yè)的角度看,Hadoop是一個分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會開發(fā)。Hadoop的主要目標(biāo)是對分布式環(huán)境下的“大數(shù)據(jù)”以一種可靠、高效、可伸縮的方式處理。設(shè)想一個場景,假如您需要grep一個100TB的大數(shù)據(jù)文件,按照傳統(tǒng)的方式,會花費很長時間,而這正是Hadoop所需要考慮的效率問題?! ?/p>

關(guān)于Hadoop的結(jié)構(gòu),有各種不同的說法。我們這里簡單的理解為Hadoop主要由三部分組成:HDFS(HadoopDistributed File System),MapReduce與Hbase。

1.Hadoop組件之一:HDFS分布式文件系統(tǒng)具有哪些優(yōu)點?

  HDFS作為一種分布式文件系統(tǒng),它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點。比如,Hadoop文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機(jī)網(wǎng)絡(luò)與節(jié)點相連。對于Client端而言,HDFS就像一個傳統(tǒng)的分級文件系統(tǒng),可以創(chuàng)建、刪除、移動或重命名文件等等。與此同時,HDFS與其他的分布式文件系統(tǒng)的區(qū)別也是顯而易見的。

  首先,HDFS設(shè)計目標(biāo)之一是適合運行在通用硬件(commodityhardware)上的分布式文件系統(tǒng)。HDFS假設(shè)的硬件錯誤不是異常,而是常態(tài)。因為HDFS面向的是成百上千的服務(wù)器集群,每臺服務(wù)器上存儲著文件系統(tǒng)的部分?jǐn)?shù)據(jù),并且這些機(jī)器的價格都很低廉。這就意味著總是有一部分硬件因各種原因而無法工作。因此,錯誤檢測和快速、自動的恢復(fù)是HDFS最核心的架構(gòu)目標(biāo)。從這個角度說,HDFS具有高度的容錯性。

  第二,HDFS的另一個設(shè)計目標(biāo)是支持大文件存儲。與普通的應(yīng)用不同,HDFS應(yīng)用具有很大的數(shù)據(jù)集,一個典型HDFS文件大小一般都在G字節(jié)至T字節(jié)。這就意味著HDFS應(yīng)該能提供比較高的數(shù)據(jù)傳輸帶寬與數(shù)據(jù)訪問吞吐量。相應(yīng)的,HDFS開放了一些POSIX的必須接口,容許流式訪問文件系統(tǒng)的數(shù)據(jù)。

  第三,HDFS還要解決的一個問題是高數(shù)據(jù)吞吐量。HDFS采用的是“一次性寫,多次讀”這種簡單的數(shù)據(jù)一致性模型。換句話說,文件一旦建立后寫入,就不需要再更改了。網(wǎng)絡(luò)爬蟲程序就很適合使用這樣的模型。

  第四,移動計算環(huán)境比移動數(shù)據(jù)劃算。HDFS提供了API,以便把計算環(huán)境移動到數(shù)據(jù)存儲的地方,而不是把數(shù)據(jù)傳輸?shù)接嬎悱h(huán)境運行的地方。這對于數(shù)據(jù)大文件尤其適用,可以有效減少網(wǎng)絡(luò)的擁塞、提高系統(tǒng)的吞吐量。

  HDFS的體系結(jié)構(gòu)與工作流程

  下面簡單看一下HDFS的結(jié)構(gòu)。圖1所示為HDFS的體系結(jié)構(gòu)圖。HDFS采用的是Master/Slave架構(gòu)。

  NameNode節(jié)點作為Master服務(wù)器,有三部分功能。第一:處理來自客戶端的文件訪問。第二:管理文件系統(tǒng)的命名空間操作,如'打開'、'關(guān)閉'、'重命名'等。第三:負(fù)責(zé)數(shù)據(jù)塊到數(shù)據(jù)節(jié)點之間的映射。從這個意義上說,它扮演中心服務(wù)器的角色。

  DataNode節(jié)點作為Slave服務(wù)器,同樣有三部分功能。第一:管理掛載在節(jié)點上的存儲設(shè)備。第二:響應(yīng)客戶端的讀寫請求。第三:從內(nèi)部看,每個文件被分成一個或多個數(shù)據(jù)塊,被存放到一組DataNode,在Namenode的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制。


  圖1 HDFS體系結(jié)構(gòu)圖

  HDFS采用Java語言開發(fā),因此任何支持Java的機(jī)器都可以部署Namenode或Datanode。相應(yīng)地,GNU/Linux操作系統(tǒng)支持Namenode與Datanode。一個典型的部署場景是,一臺GNU/Linux操作系統(tǒng)上運行一個Namenode實例,作為Master中心服務(wù)器。而集群中的其它GNU/Linux操作系統(tǒng)分別運行一個Datanode實例,作為Slave服務(wù)器集群。

2.Hadoop組件之二:什么是MapReduce編程模型,MapReduce的工作流程是什么?

  MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。MapReduce的設(shè)計目標(biāo)是方便編程人員在不熟悉分布式并行編程的情況下,將自己的程序運行在分布式系統(tǒng)上。

  MapReduce的命名規(guī)則由兩個術(shù)語組成,分別是Map(映射)與Reduce(化簡)。這些術(shù)語來自于列表處理語言,如:LISP,Scheme,或ML。從概念上來講,MapReduce將輸入元素列表(InputList)轉(zhuǎn)換成輸出元素列表(Output List),按照Map與Reduce規(guī)則各一次。

  從MapReduce框架的實現(xiàn)角度看,MapReduce程序有著兩個組件:一個實現(xiàn)了Mapper,另一個實現(xiàn)了Reducer。

  第一次叫Mapping,如圖2所示。MapReduce將InputList作為Mapping函數(shù)的輸入?yún)?shù),經(jīng)過處理,把結(jié)果返回給OutputList。舉例來說,有一個函數(shù)toUpper(str),用來返回輸入字符串的大寫版本。那么這里的InputList指的是轉(zhuǎn)換前的常規(guī)字符串列表,Mapping Function指的是toUpper函數(shù),而OutputList指的是轉(zhuǎn)換后的大寫字符串列表。值得注意的是,在這里Mapping并沒有改變輸入字符串列表,而是返回一個新的字符串列表。


  圖2 Map函數(shù)處理

  第二次叫Reducing,如圖3所示。MapReduce將InputList作為Reducing函數(shù)的輸入?yún)?shù),經(jīng)過迭代處理,把這些數(shù)據(jù)匯集,返回一個輸出值給OutputValue。從這個意義上來說,Reducing一般用來生成”總結(jié)“數(shù)據(jù),把大規(guī)模的數(shù)據(jù)轉(zhuǎn)變成更小的總結(jié)數(shù)據(jù)。例如,"+"可以用來作一個reducing函數(shù),去返回輸入數(shù)據(jù)列表的值的總和。


  圖3 Reduce函數(shù)處理

  從工作流程來講,MapReduce對應(yīng)的作業(yè)Job首先把輸入的數(shù)據(jù)集切分為若干獨立的數(shù)據(jù)塊,并由Map組件以Task的方式并行處理。處理結(jié)果經(jīng)過排序后,依次輸入給Reduce組件,并且以Task的形式并行處理。MapReduce對應(yīng)的輸入輸出數(shù)據(jù)由HDFS的DataNode存儲。MapReduce對應(yīng)的Job部署在Master服務(wù)器,由MasterJobTracker負(fù)責(zé)Task的調(diào)度,監(jiān)控,重新執(zhí)行失敗的任務(wù)等等。MapReduce對應(yīng)的Job部署在若干不同的Slave服務(wù)器,每個集群節(jié)點含一個slave TaskTracker,負(fù)責(zé)執(zhí)行由master指派的任務(wù)。

  Hadoop框架由Java實現(xiàn)的,它提供了兩種主要工具。HadoopStreaming是一種運行作業(yè)的實用工具,它允許用戶創(chuàng)建和運行任何可執(zhí)行程序(例如:Shell工具)來做為mapper和reducer。Hadoop Pipes是一個與SWIG兼容的C++ API(沒有基于JNITM技術(shù)),它也可用于實現(xiàn)Map/Reduce應(yīng)用程序。這樣,開發(fā)人員就可以利用MapReduce框架,開發(fā)分布式應(yīng)用程序,運行在由上千個商用機(jī)器組成的大型集群上,并以一種可靠容錯的方式并行處理上T級別的數(shù)據(jù)集。

Hadoop為企業(yè)來帶了什么?

  如今,“大數(shù)據(jù)”這一術(shù)語在IT經(jīng)理人中變得越來越流行。美國國家海洋與大氣管理局NOAA利用“大數(shù)據(jù)”進(jìn)行氣象、生態(tài)系統(tǒng)、天氣和商務(wù)研究。《紐約時報》使用“大數(shù)據(jù)”工具進(jìn)行文本分析和Web信息挖掘。迪斯尼則利用它們關(guān)聯(lián)和了解跨不同商店、主題公園和Web資產(chǎn)的客戶行為。

  “大數(shù)據(jù)”不僅適用于大型企業(yè),而是適用于各種不同規(guī)模的企業(yè)。例如,通過評估某位客戶在網(wǎng)站上的行為,來更好地了解他們需要什么支持或?qū)ふ沂裁串a(chǎn)品,或者弄清當(dāng)前天氣和其他條件對于送貨路線和時間安排的影響。

  面對“大數(shù)據(jù)”,Hadoop為揭示深奧的企業(yè)與外部數(shù)據(jù)的關(guān)鍵內(nèi)幕提供了基礎(chǔ)。從技術(shù)上看,Hadoop分布式文件系統(tǒng)(HDFS)保證了大數(shù)據(jù)的可靠存儲,而另一Hadoop核心組件MapReduce則提供高性能并行數(shù)據(jù)處理服務(wù)。這兩項服務(wù)提供了一個使對結(jié)構(gòu)化和復(fù)雜“大數(shù)據(jù)”的快速、可靠分析變?yōu)楝F(xiàn)實的基礎(chǔ)。

  Hadoop已經(jīng)迅速成長為首選的、適用于非結(jié)構(gòu)化數(shù)據(jù)的大數(shù)據(jù)分析解決方案?;贖adoop、利用商品化硬件對海量的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行批處理,給數(shù)據(jù)分析領(lǐng)域帶來了深刻的變化。通過挖掘機(jī)器產(chǎn)生的非結(jié)構(gòu)化數(shù)據(jù)中蘊藏的知識,企業(yè)可以做出更好的決策,促進(jìn)收入增長,改善服務(wù),降低成本。

  Google與Hadoop有著千絲萬縷的聯(lián)系。如前所述,Hadoop主要是由HDFS、MapReduce和Hbase組成。而HDFS是Google File System(GFS)的開源實現(xiàn),MapReduce是GoogleMapReduce的開源實現(xiàn),HBase是GoogleBigTable的開源實現(xiàn)。Hadoop分布式框架很有創(chuàng)造性,而且有極大的擴(kuò)展性,使得Google在系統(tǒng)吞吐量上有很大的競爭力。因此Apache基金會用Java實現(xiàn)了一個開源版本,支持Fedora、Ubuntu等Linux平臺。

  考慮到Hadoop在應(yīng)對大規(guī)模非結(jié)構(gòu)型數(shù)據(jù)中所起到的重要作用,微軟也不得不放下架子,近日宣布開發(fā)一個兼容WindowsServer與Windows Azure平臺的Hadoop開源版本。

  IBM宣布在Hadoop上建立新的存儲架構(gòu),作為群集運行DB2或Oracle數(shù)據(jù)庫,目的是讓應(yīng)用程序,支持高性能分析,數(shù)據(jù)倉庫應(yīng)用程序和云計算的目的。

  EMC也推出了世界上第一個定制的、高性能的Hadoop專用數(shù)據(jù)協(xié)同處理設(shè)備——GreenplumHD數(shù)據(jù)計算設(shè)備,為客戶提供了最強(qiáng)大、最高效率的方法,充分挖掘大數(shù)據(jù)的價值。

  互聯(lián)網(wǎng)搜索巨頭百度也在考慮使用Hadoop。不過,出于性能與安全的考慮,百度在采用Hadoop架構(gòu)的時候,將Hadoop計算層進(jìn)行了重新編寫。

  總結(jié):

  Hadoop作為一種分布式基礎(chǔ)架構(gòu),可以使用戶在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。

  關(guān)于Hadoop的價值,思科的JamesUrquhart指出:“Hadoop可以說是不涉及任何現(xiàn)有專利的開源項目在企業(yè)軟件方面所取得的首個里程碑式成功?!痹跇I(yè)界,Hadoop也贏得“龐大數(shù)據(jù)問題的通用解決方案”的頭銜。我們不得不說,Hadoop前途不可估量。

相關(guān)文章

  • SpringBoot整合RabbitMQ實戰(zhàn)教程附死信交換機(jī)

    SpringBoot整合RabbitMQ實戰(zhàn)教程附死信交換機(jī)

    這篇文章主要介紹了SpringBoot整合RabbitMQ實戰(zhàn)附加死信交換機(jī),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Spring之ShutDown?Hook死鎖現(xiàn)象解讀

    Spring之ShutDown?Hook死鎖現(xiàn)象解讀

    這篇文章主要介紹了Spring之ShutDown?Hook死鎖現(xiàn)象解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解在spring boot中配置多個DispatcherServlet

    詳解在spring boot中配置多個DispatcherServlet

    本篇文章主要介紹了詳解在spring boot中配置多個DispatcherServlet,具有一定的參考價值,有興趣的可以了解一下。
    2017-03-03
  • SpringBoot@Componet注解注入失敗的問題

    SpringBoot@Componet注解注入失敗的問題

    這篇文章主要介紹了SpringBoot@Componet注解注入失敗的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 使用Spring的ApplicationEvent實現(xiàn)本地事件驅(qū)動的實現(xiàn)方法

    使用Spring的ApplicationEvent實現(xiàn)本地事件驅(qū)動的實現(xiàn)方法

    本文介紹了如何使用Spring的ApplicationEvent實現(xiàn)本地事件驅(qū)動,通過自定義事件和監(jiān)聽器,實現(xiàn)模塊之間的松耦合,提升代碼的可維護(hù)性和擴(kuò)展性。同時還介紹了異步事件和事件傳遞的相關(guān)知識
    2023-04-04
  • java中ThreadLocal和ThreadLocalMap淺析

    java中ThreadLocal和ThreadLocalMap淺析

    這篇文章主要介紹了java中ThreadLocal和ThreadLocalMap淺析,ThreadLocal類用來設(shè)置線程私有變量?本身不儲存值?主要提供自身引用?和?操作ThreadLocalMap?屬性值得方法,需要的朋友可以參考下
    2023-09-09
  • Java動態(tài)代理詳解及實例

    Java動態(tài)代理詳解及實例

    這篇文章主要介紹了Java動態(tài)代理詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • JDK1.6集合框架bug 6260652解析

    JDK1.6集合框架bug 6260652解析

    這篇文章主要為大家解析了JDK1.6集合框架bug:c.toArray might (incorrectly) not return Object[] (see 6260652),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 關(guān)于Java中BeanMap進(jìn)行對象與Map的相互轉(zhuǎn)換問題

    關(guān)于Java中BeanMap進(jìn)行對象與Map的相互轉(zhuǎn)換問題

    這篇文章主要介紹了利用BeanMap進(jìn)行對象與Map的相互轉(zhuǎn)換,通過net.sf.cglib.beans.BeanMap類中的方法來轉(zhuǎn)換,效率極高,本文給大家分享實現(xiàn)代碼,感興趣的朋友一起看看吧
    2022-03-03
  • SpringMVC整合mybatis實例代碼

    SpringMVC整合mybatis實例代碼

    MyBatis 的前身就是 iBatis 。是一個數(shù)據(jù)持久層(ORM)框架。下面通過本文給大家介紹SpringMVC整合mybatis實例代碼,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05

最新評論