hadoop偽分散式部署
Hadoop
The project includes these modules:
Hadoop Common: The common utilities that support the other Hadoop modules.
Hadoop Distributed File System (HDFS?): A distributed file system that provides high-throughput access to application data.
Hadoop YARN: A framework for job scheduling and cluster resource management.
Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
機架
伺服器安裝在機架上,機架上使用的長度單位是U
HDFS架構
NameNode:
用於儲存元資料資訊(檔名,切分成了多少個block,
每一個block有幾個副本,
每一個副本儲存的具體位置),元資料資訊(metadata)都被儲存在記憶體,
因為記憶體讀寫速度更快,記憶體中的元資料資訊也會被儲存到硬碟一份
(fsimage+edits),以保障安全性。
SecondaryNameNode:
出現在hadoop1.x,hadoop2.x的偽分散式中,在hadoop2.x的HA
中就不存在了,同步元資料(metadata)與日誌資訊(edits)的。
DataNode:
用於實際儲存資料的。
=====================================================================
YARN架構
用於做作業排程和資源管理的。
resourcemanager
YARN的老大,總體負責資源的排程
nodemanager
YARN的小弟,具體負責伺服器的資源的排程使用
Container
容器,用於承載ApplicationMaster程序或具體的map程序或reduce程序
ApplicationMaster
應用程式管理器,用於具體管理整個應用程式的執行的,如果有部分程序
在執行的過程中產生了失敗,那麼由ApplicationMaster來安排其他的
NodeManager重新開啟Container來執行失敗的程序
=====================================================================
MapReduce計算框架
MapReduce分為兩個階段,一個是map階段,一個是reduce階段
map階段:主要是對映輸入的資料,進行第一步的處理工作。
reduce階段:主要是將map對映的結果彙總、計算,形成最終輸出。
shuffle階段
shuffle階段實際是一個較為複雜的過程,它連線了Map階段和
reduce階段
mapreduce的計算過程:
資料輸入—map階段處理—輸出—shuffle過程—>reduce的輸入—>reduce階段處理—>輸出結果
mapreduce適合處理大資料量的離線任務。
=====================================================================
hadoop使用的三種模式:
1.單主機模式Standalong mode
啟動單一的java程序,僅用於除錯
2.偽分散式模式(進行介紹)
啟動數個deamon,但是是在一個節點下執行的,所以稱之為偽分散式。
3.完全分散式模式(進行介紹)
hadoop的安裝(偽分散式)
第一步:環境的準備工作
1.hostname配置
# vi /etc/sysconfig/network
# hostname 主機名
HOSTNAME=nicole02.com.cn
2.hosts檔案
# vi /etc/hosts
192.168.234.150 nicole02.com.cn
3.關閉防火牆
關閉:
# service iptables stop
檢視:
# service iptables status
重啟不啟動:
# chkconfig iptables off
重啟啟動:
# chkconfig iptables on
4.安裝jdk
$ tar -zxvf /opt/software/jdk-7u67-linux-x64.tar.gz -C /opt/modules/
配置環境變數
vi /etc/profile
#JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
使環境變數生效:
# source /etc/profile
5.安裝Hadoop
$ tar -zxvf hadoop-2.5.0.tar.gz -C /opt/modules/
刪除doc資料夾
$rm -rf doc/
配置環境變數
/# HADOOP_HOME
export HADOOP_HOME=/opt/modules/hadoop-2.5.0
export PATH=
使之生效
source /etc/profile
第二步:配置HDFS
配置HDFS
1.hadoop-env.sh #hadoop的環境配置
/# The java implementation to use.
export JAVA_HOME=/opt/modules/jdk1.7.0_67
2.core-site.xml
fs.defaultFS
hdfs://nicole02.com.cn:8020
hadoop.tmp.dir
/opt/modules/hadoop-2.5.0/tmp
3.hdfs-site.xml
dfs.replication
1
4.slaves
nicole02.com.cn
#主機名,這裡配置的是datanode的主機
#一般來說:datanode和NodeManager配置的主機都是一樣的
#所以說:這裡配置的既是datanode也是NodeManager
第三步:配置YARN
1.將mapred-site.xml.template重新命名為mapred-site.xml
#mapred-site.xml是用於配置mapreduce的相關配置
mapreduce.framework.name
yarn
#如果不配置此項,那麼mapreduce程式將在本地執行
2.yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
nicole02.com.cn
第四步:格式化HDFS
$ ./hdfs namenode -format #格式化hdfs
第五步:啟動hdfs
第一種啟動的方法(一個一個啟動,推薦使用)
$ ./hadoop-daemon.sh start namenode
$ ./hadoop-daemon.sh start datanode
$ ./hadoop-daemon.sh start secondarynamenode
如果想關閉這些程序:
$ ./hadoop-daemon.sh stop namenode
$ ./hadoop-daemon.sh stop datanode
$ ./hadoop-daemon.sh stop secondarynamenode
檢視啟動的情況
可以在web頁面檢視hdfs啟動的情況
http://nicole02.com.cn:50070/
50070就是在web頁面觀察hdfs的埠
第六步:啟動yarn
$ ./yarn-daemon.sh start resourcemanager
$ ./yarn-daemon.sh start nodemanager
檢視啟動的情況
在web頁面檢視yarn
命令jps的作用:檢視java程序
jps - Java Virtual Machine Process Status Tool