1. HADOOP背景介紹
1.1 什么是HADOOP
1.HADOOP是apache旗下的一套開源軟件平臺
2.HADOOP提供的功能:利用服務器集群,根據用戶的自定義業務邏輯,對海量數據進行分布式處理
3.HADOOP的核心組件有 1.HDFS(分布式文件系統)
2.YARN(運算資源調度系統)
3.MAPREDUCE(分布式運算編程框架)
4.廣義上來說,HADOOP通常是指一個更廣泛的概念——HADOOP生態圈
Hadoop hive hbase flume kafka sqoop spark flink …….
1.2 HADOOP產生背景
1.HADOOP最早起源于Nutch。Nutch的設計目標是構建一個大型的全網搜索引擎,包括網頁抓取、索引、查詢等功能,但隨著抓取網頁數量的增加,遇到了嚴重的可擴展性問題——如何解決數十億網頁的存儲和索引問題。
2.2003年、2004年谷歌發表的兩篇論文為該問題提供了可行的解決方案。
——分布式文件系統(GFS),可用于處理海量網頁的存儲
——分布式計算框架MAPREDUCE,可用于處理海量網頁的索引計算問題。
3.Nutch的開發人員完成了相應的開源實現HDFS和MAPREDUCE,并從Nutch中剝離成為獨立項目HADOOP,到2008年1月,HADOOP成為Apache頂級項目,迎來了它的快速發展期。
1.3 HADOOP在大數據、云計算中的位置和關系
1.云計算是分布式計算、并行計算、網格計算、多核計算、網絡存儲、虛擬化、負載均衡等傳統計算機技術和互聯網技術融合發展的產物。借助IaaS(基礎設施即服務)、PaaS(平臺即服務)、SaaS(軟件即服務)等業務模式,把強大的計算能力提供給終端用戶。
2.現階段,云計算的兩大底層支撐技術為“虛擬化”和“大數據技術”
3.而HADOOP則是云計算的PaaS層的解決方案之一,并不等同于PaaS,更不等同于云計算本身。
前言
最近想學習下大數據,有點急于求成,于是去網上找了各種培訓機構的視頻,發現大都質量不佳,理論基本不說或者簡單講下,然后教你照貓畫虎的敲代碼,出了問題都沒法分析。最后還是找了廈門大學的公開課從理論開始穩扎穩打的學習了。
一 Hadoop起源
Hadoop的理論起源主要來自谷歌公司的三大論文,并迅速應用于全球各大互聯網公司。因此,學習大數據Hadoop是繞不開的一個知識點。今年來,大數據的興起其實來自于計算機技術的發展,物聯網技術產生了大量的數據,云技術使得計算機存儲與運算資源更加普及,因此大數據技術應運而出,用以解決大量數據的存儲與計算的問題。
二 Hadoop生態圈
學習Hadoop,需要知道Hadoop生態圈中各個項目的功能與作用,為何要用開發這種新項目,而不使用已有項目實現這種功能。
2.1 HDFS
Hadoop的底層文件系統,與傳統文件系統不同在于它是分布式的。同時與已有的分布式文件系統相比,它又有著舊分布式文件系統沒有的優點。如:高可用性,高可靠性,吞吐量大,能使用廉價服務器構建,可通過不斷增加機器數來進行拓展。具體實現在HDFS文章中記錄。
2.2 HBase
構建在HDFS之上的分布式數據庫系統。是一種基于列的NoSQL數據庫,從另一個角度看也能看成鍵值對的NoSQL數據庫。與傳統關系型數據庫相比,最大的優勢在于可通過增加機器進行橫向擴展,并且能使用廉價服務器。
2.3 Hive
一種分布式數據倉庫,可以導入外部數據后用類SQL語言進行操作。一般用于歷史數據的查詢與分析。與HBase不同,HBase常用于實時的交互式查詢。
2.4 MapRuduce
一種分布式計算框架,MapRuce本來就是一種計算模型的名稱。核心思想是“分而治之”,能將計算分解成多個小計算,由多個機器同時計算。適合離線批處理。
2.5 Storm
一種流式計算框架,MapRuce適合批處理,無法完成流式數據的處理,因此開發出流式處理框架。
2.6 常見大數據處理需求
•離線批處理,特點:使用歷史數據,大批量的處理,要求吞吐率。
•實時交互式處理,特點:用戶交互使用,要求反映速度在秒級到數分鐘之間。
•流式數據處理,特點:數據以流的形式輸入,要求毫秒級的處理速度,且處理后的數據大部分都不用儲存。
2.7 Hadoop組件關系
基本的關系就是,底層用HDFS存儲,之上是核心計算框架MapRuduce。而Hive,Hbase,Pig等等組件一般都是將自身的操作轉化成Mapreduce代碼然后通過Mapreduce進行計算實現功能。同時與MapRuduce框架同一層次的Storm解決了流式數據的處理。Hbase雖然是使用Mapreduce框架進行處理,但是基本也能實現實時交互式處理的要求。(也正是Mapreduce存在種種問題,Spark漸漸興起,雖然Mapreduce也做了各種優化,但是在某些領域相比Spark還是有些差距)。
三 Hadoop安裝
1.準備。同一局域網的Linux服務器數臺,我是用我的游戲本同時開了3個虛擬機代替的。
2.Linux里創建hadoop用戶,專門負責Hadoop項目,便于管理與權限劃分。
3.安裝JDK,下載Hadoop時官方會指明JDK版本需求,設置JDK環境變量
4.安裝SSH并設置免密登錄。因為HDFS的NameNode與其他DateNode等節點的通訊與管理就是基于SSH協議的。并且將要使用的機器域名寫入hosts文件,方便命名。
5.去官網下載并解壓Hadoop。修改hadoop配置文件,位于hadoop/etc/hadoop /下面,分別有:
•slaves。寫入DateNode的機器,因為之前修改了域名解析文件,可以直接寫域名,不用寫IP了。
•core-site.xml。Hadoop的核心配置文件
fs.defaultFS,默認文件系統的主機和端口,這里的文件系統就是hdfs。
hadoop.tmp.dir hadoop的臨時文件路徑,不設置則會使用系統臨時文件路徑,系統重啟后就丟失了。
configuration>
property>
name>fs.defaultFS/name>
value>hdfs://Master:9000/value>
/property>
property>
name>hadoop.tmp.dir/name>
value>file:/usr/local/hadoop/tmp/value>
description>Abase for other temporary directories./description>
/property>
/configuration>
•hdfs-site.xml。HDFS的配置文件
dfs.namenode.secondary.http-address。SecondNameNode的機器和端口
dfs.replication。HDFS系統保存的文件副本數。
dfs.namenode.name.dir,dfs.datanode.data.dir。NameNode和DataNode數據在原本文件系統中的存放位置。
configuration>
property>
name>dfs.namenode.secondary.http-address/name>
value>Master:50090/value>
/property>
property>
name>dfs.replication/name>
value>1/value>
/property>
property>
name>dfs.namenode.name.dir/name>
value>file:/usr/local/hadoop/tmp/dfs/name/value>
/property>
property>
name>dfs.datanode.data.dir/name>
value>file:/usr/local/hadoop/tmp/dfs/data/value>
/property>
/configuration>
•mapred-site.xml。MapReuce的配置文件
mapreduce.framework.name。MapReuce的資源管理系統。這個選yarn,原本是MapReuce自己進行分布式計算時的資源管理,后來發現效率不足便分割開來重新開發了一套框架。
mapreduce.jobhistory.address。MapReuce的任務日志系統,指定機器和端口。
mapreduce.jobhistory.webapp.address。任務日志系統web頁面所使用的機器和端口,通過這個可以在web頁面中查看任務日志系統。
configuration>
property>
name>mapreduce.framework.name/name>
value>yarn/value>
/property>
property>
name>mapreduce.jobhistory.address/name>
value>Master:10020/value>
/property>
property>
name>mapreduce.jobhistory.webapp.address/name>
value>Master:19888/value>
/property>
/configuration>
•yarn-site.xml。YARN的配置文件
yarn.resourcemanager.hostname。YARN的ResourceManager所使用的機器。這個負責進行全局的資源分配,管理。
yarn.nodemanager.aux-services。可以自定義一些服務,比如MapReuce的shuffle就是用這個配置的。目前我們使用填shuffle就行了。
configuration>
property>
name>mapreduce.framework.name/name>
value>yarn/value>
/property>
property>
name>mapreduce.jobhistory.address/name>
value>Master:10020/value>
/property>
property>
name>mapreduce.jobhistory.webapp.address/name>
value>Master:19888/value>
/property>
/configuration>
1.配置好以后將Hadoop文件從主節點復制到各個從節點,Hadoop的HADFS與MapReduce就安裝完成了。(CentOs系統需要關閉相應防火墻)
四 Hadoop生態圈其他組件安裝
看看網友博客和官方文檔差不多就會了,基本一個形式。下載解壓-配置環境變量-配置組件的配置文件,基本都是xxxx-env.sh,xxx-site.sh,xxx-core.sh,slave,work這種,在里面按照需求配置參數就好了,具體參數意思和必須要配置的參數看看官方文檔也就懂了(滑稽)。
總結
以上所述是小編給大家介紹的Hadoop介紹與安裝配置方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
您可能感興趣的文章:- 詳解Hadoop 運行環境搭建過程
- hadoop分布式環境搭建過程
- hadoop基于Linux7的安裝配置圖文詳解
- Hadoop源碼分析二安裝配置過程詳解