1. 程式人生 > >hadoop偽分散式部署

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=PATH:HADOOP_HOME/bin

使之生效
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