1. 程式人生 > >Hadoop(一)Hadoop的簡介與安裝

Hadoop(一)Hadoop的簡介與安裝

一 Hadoop簡介

1.1 Hadoop產生的背景

1.Hadoop是Apache Lucene創始人道格·卡丁(Doug Cutting)建立的。 HADOOP最早起源於Nutch。Nutch的設計目標是構建一個大型的全網搜尋引擎,包括網頁抓取、索引、查詢等功能,但隨著抓取網頁數量的增加,遇到了嚴重的可擴充套件性問,如何解決數十億網頁的儲存和索引問題。

2.2003年開始谷歌陸續發表的三篇論文為該問題提供了可行的解決方案。
分散式檔案系統(GFS),可用於處理海量網頁的儲存
分散式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。
BigTable 資料庫:OLTP 聯機事務處理 Online Transaction Processing 增刪改,OLAP 聯機分析處理 Online Analysis Processing 查詢,真正的作用:提供了一種可以在超大資料集中進行實時CRUD操作的功能
3.2006年之後,cutting帶著Hadoop去了雅虎,當時有100多人的團隊共同幫cutting完善hadoop。後來yahoo把Hadoop貢獻了Apache。現在Hadoop是Apache的頂級專案。

1.2 Hadoop的優勢

1.高可靠性:元資料記錄節點與資料塊資訊。

2.高擴充套件性: 儲存與計算節點可以動態增添;部分框架可以按需替換。

3.高效性:在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。

4.高容錯性: 資料自動備份,副本丟失後自動回覆。

5.執行在廉價的機器上。

6.擅長處理PB級別的離線計算

1.3 Hadoop的劣勢

1.不適合低延遲資料訪問。

2.無法高效儲存大量小檔案。

3.不支援多使用者寫入及任意修改檔案。

4.不支援超強的事務。

1.4 Hadoop組成

1.Hadoop HDFS:一個高可靠、高吞吐量的分散式檔案系統。

2.Hadoop MapReduce:一個分散式的離線平行計算框架。

3.Hadoop YARN:作業排程與叢集資源管理的框架。

4.Hadoop Common:支援其他模組的工具模組。

二 Hadoop安裝

2.1 安裝方式介紹

Hadoop的安裝分為單機方式、偽分散式方式 和 完全分散式方式。

1.單機模式是Hadoop的預設模式:當首次解壓Hadoop的原始碼包時,Hadoop無法瞭解硬體安裝環境,便保守地選擇了最小配置。在這種預設模式下所有3個XML檔案均為空。當配置檔案為空時,Hadoop會完全執行在本地。因為不需要與其他節點互動,單機模式就不使用HDFS,也不載入任何Hadoop的守護程序。該模式主要用於開發除錯MapReduce程式的應用邏輯。

2.偽分散式:在單機上,模擬一個分散式的環境,具備Hadoop的所有功能。

3.全分散式:真正的分散式環境,用於生產。

2.2 偽分散式安裝

1.準備虛擬機器,關閉虛擬機器防火牆
2.配置主機名
vi /etc/hostname 將裡面的內容改成自己的主機名,重啟生效
執行:hostname 主機名 本次立即生效
3.配置hosts檔案

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.175.128 hadoop01
192.168.175.129 hadoop02
192.168.175.130 hadoop03

4.配置免密登入
ssh-keygen生成節點的公鑰和私鑰,生成的檔案在/root/.ssh下
ssh-copy-id 其他機器(包括自己)然後把公鑰發往其他機器
5.安裝配置jdk

從網上下載jdk1.8
上傳到虛擬機器
新建資料夾 mkdir -p /root/bigdata/jdk
解壓 tar zxvf jdk-8u141-linux-x64.tar.gz -C /root/bigdata/jdk
配置環境變數 vi /etc/profile 在檔案末尾新增
export JAVA_HOME=/root/bigdata/jdk/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin 
source /etc/profile
輸入java -version驗證安裝的jdk是否正確

6.安裝hadoop

從官網下載hadoop
上傳到虛擬機器的/root/bigdata目錄下
解壓 tar zxvf hadoop-2.8.4.tar.gz 
修改名字 mv hadoop-2.8.4 hadoop
配置環境變數 vi /etc/profile在末尾新增
export HADOOP_HOME=/root/bigdata/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
輸入hadoop version驗證安裝

7.配置hadoop

(1)配置hadoop-env.sh
 修改JAVA_HOME的路徑為自己jdk的安裝路徑
export JAVA_HOME=/root/bigdata/jdk1.8.0_141
(2)修改core-site.xml
<!--用來指定namenode的地址-->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://hadoop01:9000</value>
</property>
<!--用來指定hadoop執行時產生臨時檔案的存放目錄,如果不配置預設使用/tmp目錄存在安全隱患 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/root/bigdata/hadoop/tmp</value>
</property>
(3)修改hdfs-site-xml
<!--用來指定secondary namenode的地址-->
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>hadoop02:50090</value>
</property>
<!--指定元資料儲存位置-->
<property>
	<name>dfs.namenode.name.dir</name>
	<value>/root/bigdata/dfs/name</value>
</property>
<!--用來指定資料儲存位置-->     
<property>
	<name>dfs.datanode.data.dir</name>
	<value>/root/bigdata/dfs/data</value>
</property>
<!--設定hdfs的操作許可權,false表示任何使用者都可以在hdfs上操作檔案-->
<property>
	<name>dfs.permissions</name>
	<value>false</value>
</property>
(4)修改mapred-site.xml
修改模板檔名 mv mapred-site.xml.template mapred-site.xml
<!--指定mapreduce執行在yarn上-->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
(5)修改yarn-site.xml
<!--指定resoucemanager的地址-->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop01</value>
</property>
<!--指定NodeManager獲取資料的方式-->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
(6)配置slaves檔案
將叢集中的從節點名配置到此檔案中

8.將整個bigdata資料夾傳送到另外兩臺機器中

scp -r /root/bigdata/ hadoop02:$PWD
scp -r /root/bigdata/ hadoop02:$PWD

9.將/etc/profile傳送到另外兩臺機器

scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop02:/etc/profile
source /etc/profile
輸入java -version和hadoop version驗證正確性

10.格式化namenode

hadoop namenode -format

11.啟動命令

hadoop-daemon.sh start namenode啟動namenode
hadoop-daemon.sh start datanode啟動datanode
hadoop-daemon.sh stop namenode關閉namenode
hadoop-daemon.sh stop datanode關閉datanode
start-dfs.sh啟動dfs
stop-dfs.sh關閉dfs
start-yarn.sh開啟yarn
stop-yarn.sh關閉yarn
start-all.sh啟動dfs和yarn
stop-all.sh 關閉dfs和yarn

12.通過瀏覽器檢視hadoop(配置本機的hosts檔案)
http://ip:50070
http://hadoop01:50070
http://ip:8088
http://hadoop01:8088