您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何安裝與使用Hadoop組件,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
安裝hbase
首先下載hbase的最新穩定版本
安裝到本地目錄中,我安裝的是當前用戶的hadoop/hbase中
tar -zxvf hbase-0.90.4.tar.gz
單機模式
修改配置文件
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
然后執行
bin/hbase shell
輸入status
如果輸入exit則退出
Hadoop與Google一樣,都是小孩命名的,是一個虛構的名字,沒有特別的含義。從計算機專業的角度看,Hadoop是一個分布式系統基礎架構,由Apache基金會開發。Hadoop的主要目標是對分布式環境下的“大數據”以一種可靠、高效、可伸縮的方式處理。設想一個場景,假如您需要grep一個100TB的大數據文件,按照傳統的方式,會花費很長時間,而這正是Hadoop所需要考慮的效率問題。
關于Hadoop的結構,有各種不同的說法。我們這里簡單的理解為Hadoop主要由三部分組成:HDFS(HadoopDistributed File System),MapReduce與Hbase。
1.Hadoop組件之一:HDFS分布式文件系統具有哪些優點?
HDFS作為一種分布式文件系統,它和現有的分布式文件系統有很多共同點。比如,Hadoop文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。對于Client端而言,HDFS就像一個傳統的分級文件系統,可以創建、刪除、移動或重命名文件等等。與此同時,HDFS與其他的分布式文件系統的區別也是顯而易見的。
首先,HDFS設計目標之一是適合運行在通用硬件(commodityhardware)上的分布式文件系統。HDFS假設的硬件錯誤不是異常,而是常態。因為HDFS面向的是成百上千的服務器集群,每臺服務器上存儲著文件系統的部分數據,并且這些機器的價格都很低廉。這就意味著總是有一部分硬件因各種原因而無法工作。因此,錯誤檢測和快速、自動的恢復是HDFS最核心的架構目標。從這個角度說,HDFS具有高度的容錯性。
第二,HDFS的另一個設計目標是支持大文件存儲。與普通的應用不同,HDFS應用具有很大的數據集,一個典型HDFS文件大小一般都在G字節至T字節。這就意味著HDFS應該能提供比較高的數據傳輸帶寬與數據訪問吞吐量。相應的,HDFS開放了一些POSIX的必須接口,容許流式訪問文件系統的數據。
第三,HDFS還要解決的一個問題是高數據吞吐量。HDFS采用的是“一次性寫,多次讀”這種簡單的數據一致性模型。換句話說,文件一旦建立后寫入,就不需要再更改了。網絡爬蟲程序就很適合使用這樣的模型。
第四,移動計算環境比移動數據劃算。HDFS提供了API,以便把計算環境移動到數據存儲的地方,而不是把數據傳輸到計算環境運行的地方。這對于數據大文件尤其適用,可以有效減少網絡的擁塞、提高系統的吞吐量。
HDFS的體系結構與工作流程
下面簡單看一下HDFS的結構。圖1所示為HDFS的體系結構圖。HDFS采用的是Master/Slave架構。
NameNode節點作為Master服務器,有三部分功能。第一:處理來自客戶端的文件訪問。第二:管理文件系統的命名空間操作,如'打開'、'關閉'、'重命名'等。第三:負責數據塊到數據節點之間的映射。從這個意義上說,它扮演中心服務器的角色。
DataNode節點作為Slave服務器,同樣有三部分功能。第一:管理掛載在節點上的存儲設備。第二:響應客戶端的讀寫請求。第三:從內部看,每個文件被分成一個或多個數據塊,被存放到一組DataNode,在Namenode的統一調度下進行數據塊的創建、刪除和復制。
圖1 HDFS體系結構圖
HDFS采用Java語言開發,因此任何支持Java的機器都可以部署Namenode或Datanode。相應地,GNU/Linux操作系統支持Namenode與Datanode。一個典型的部署場景是,一臺GNU/Linux操作系統上運行一個Namenode實例,作為Master中心服務器。而集群中的其它GNU/Linux操作系統分別運行一個Datanode實例,作為Slave服務器集群。
2.Hadoop組件之二:什么是MapReduce編程模型,MapReduce的工作流程是什么?
MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算。MapReduce的設計目標是方便編程人員在不熟悉分布式并行編程的情況下,將自己的程序運行在分布式系統上。
MapReduce的命名規則由兩個術語組成,分別是Map(映射)與Reduce(化簡)。這些術語來自于列表處理語言,如:LISP,Scheme,或ML。從概念上來講,MapReduce將輸入元素列表(InputList)轉換成輸出元素列表(Output List),按照Map與Reduce規則各一次。
從MapReduce框架的實現角度看,MapReduce程序有著兩個組件:一個實現了Mapper,另一個實現了Reducer。
第一次叫Mapping,如圖2所示。MapReduce將InputList作為Mapping函數的輸入參數,經過處理,把結果返回給OutputList。舉例來說,有一個函數toUpper(str),用來返回輸入字符串的大寫版本。那么這里的InputList指的是轉換前的常規字符串列表,Mapping Function指的是toUpper函數,而OutputList指的是轉換后的大寫字符串列表。值得注意的是,在這里Mapping并沒有改變輸入字符串列表,而是返回一個新的字符串列表。
圖2 Map函數處理
第二次叫Reducing,如圖3所示。MapReduce將InputList作為Reducing函數的輸入參數,經過迭代處理,把這些數據匯集,返回一個輸出值給OutputValue。從這個意義上來說,Reducing一般用來生成”總結“數據,把大規模的數據轉變成更小的總結數據。例如,"+"可以用來作一個reducing函數,去返回輸入數據列表的值的總和。
圖3 Reduce函數處理
從工作流程來講,MapReduce對應的作業Job首先把輸入的數據集切分為若干獨立的數據塊,并由Map組件以Task的方式并行處理。處理結果經過排序后,依次輸入給Reduce組件,并且以Task的形式并行處理。MapReduce對應的輸入輸出數據由HDFS的DataNode存儲。MapReduce對應的Job部署在Master服務器,由MasterJobTracker負責Task的調度,監控,重新執行失敗的任務等等。MapReduce對應的Job部署在若干不同的Slave服務器,每個集群節點含一個slave TaskTracker,負責執行由master指派的任務。
Hadoop框架由Java實現的,它提供了兩種主要工具。HadoopStreaming是一種運行作業的實用工具,它允許用戶創建和運行任何可執行程序(例如:Shell工具)來做為mapper和reducer。Hadoop Pipes是一個與SWIG兼容的C++ API(沒有基于JNITM技術),它也可用于實現Map/Reduce應用程序。這樣,開發人員就可以利用MapReduce框架,開發分布式應用程序,運行在由上千個商用機器組成的大型集群上,并以一種可靠容錯的方式并行處理上T級別的數據集。
Hadoop為企業來帶了什么?
如今,“大數據”這一術語在IT經理人中變得越來越流行。美國國家海洋與大氣管理局NOAA利用“大數據”進行氣象、生態系統、天氣和商務研究。《紐約時報》使用“大數據”工具進行文本分析和Web信息挖掘。迪斯尼則利用它們關聯和了解跨不同商店、主題公園和Web資產的客戶行為。
“大數據”不僅適用于大型企業,而是適用于各種不同規模的企業。例如,通過評估某位客戶在網站上的行為,來更好地了解他們需要什么支持或尋找什么產品,或者弄清當前天氣和其他條件對于送貨路線和時間安排的影響。
面對“大數據”,Hadoop為揭示深奧的企業與外部數據的關鍵內幕提供了基礎。從技術上看,Hadoop分布式文件系統(HDFS)保證了大數據的可靠存儲,而另一Hadoop核心組件MapReduce則提供高性能并行數據處理服務。這兩項服務提供了一個使對結構化和復雜“大數據”的快速、可靠分析變為現實的基礎。
Hadoop已經迅速成長為首選的、適用于非結構化數據的大數據分析解決方案。基于Hadoop、利用商品化硬件對海量的結構化和非結構化數據進行批處理,給數據分析領域帶來了深刻的變化。通過挖掘機器產生的非結構化數據中蘊藏的知識,企業可以做出更好的決策,促進收入增長,改善服務,降低成本。
Google與Hadoop有著千絲萬縷的聯系。如前所述,Hadoop主要是由HDFS、MapReduce和Hbase組成。而HDFS是Google File System(GFS)的開源實現,MapReduce是GoogleMapReduce的開源實現,HBase是GoogleBigTable的開源實現。Hadoop分布式框架很有創造性,而且有極大的擴展性,使得Google在系統吞吐量上有很大的競爭力。因此Apache基金會用Java實現了一個開源版本,支持Fedora、Ubuntu等Linux平臺。
考慮到Hadoop在應對大規模非結構型數據中所起到的重要作用,微軟也不得不放下架子,近日宣布開發一個兼容WindowsServer與Windows Azure平臺的Hadoop開源版本。
IBM宣布在Hadoop上建立新的存儲架構,作為群集運行DB2或Oracle數據庫,目的是讓應用程序,支持高性能分析,數據倉庫應用程序和云計算的目的。
EMC也推出了世界上第一個定制的、高性能的Hadoop專用數據協同處理設備——GreenplumHD數據計算設備,為客戶提供了最強大、最高效率的方法,充分挖掘大數據的價值。
互聯網搜索巨頭百度也在考慮使用Hadoop。不過,出于性能與安全的考慮,百度在采用Hadoop架構的時候,將Hadoop計算層進行了重新編寫。
總結:
Hadoop作為一種分布式基礎架構,可以使用戶在不了解分布式底層細節的情況下,開發分布式程序。
以上就是如何安裝與使用Hadoop組件,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。