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