Alex 的 Hadoop 菜鳥教程: 第3課 Hadoop 安裝教程 - 非HA方式 (一台server)


原帖地址: http://blog.csdn.net/nsrainbow/article/details/36629741

接上一個教程:http://blog.csdn.net/nsrainbow/article/details/36629339

本教程是在 Centos6 下使用yum來安裝 CDH5 版本號的 hadoop 的教程。 假設沒有加入yum源的請參考上一個教程:http://blog.csdn.net/nsrainbow/article/details/36629339

Hadoop架構圖


  1. NameNode、DataNode和Client
    NameNode能夠看作是分布式文件系統中的管理者,主要負責管理文件系統的命名空間、集群配置信息和存儲塊的復制等。

    NameNode會將文件系統的Meta-data存儲在內存中,這些信息主要包含了文件信息、每個文件相應的文件塊的信息和每個文件塊在DataNode的信息等。
    DataNode是文件存儲的基本單元,它將Block存儲在本地文件系統中,保存了Block的Meta-data,同一時候周期性地將全部存在的Block信息發送給NameNode。


    Client就是須要獲取分布式文件系統文件的應用程序。

  2. 文件寫入
    Client向NameNode發起文件寫入的請求。


    NameNode依據文件大小和文件塊配置情況。返回給Client它所管理部分DataNode的信息。
    Client將文件划分為多個Block,依據DataNode的地址信息。按順序寫入到每個DataNode塊中。

  3. 文件讀取
    Client向NameNode發起文件讀取的請求
    NameNode返回文件存儲的DataNode的信息。
    Client讀取文件信息。

開始安裝非HA模式


1. 加入庫key

$ sudo rpm --import http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera


2. 安裝CDH5

2.1 安裝Resource Manager host

$ sudo yum clean all
$ sudo yum install hadoop-yarn-resourcemanager -y




2.2 安裝 NameNode host

$ sudo yum clean all
$ sudo yum install hadoop-hdfs-namenode -y




2.3 安裝 Secondary NameNode host

$ sudo yum clean all
$ sudo yum install hadoop-hdfs-secondarynamenode -y




2.4 安裝 nodemanager , datanode, mapreduce (官方說明是在除了 Resource Manager以外的機子上裝這些,可是我們如今就一台機子。所以就在這台機子上裝)

$ sudo yum clean all
$ sudo yum install hadoop-yarn-nodemanager hadoop-hdfs-datanode hadoop-mapreduce -y




2.5 安裝 hadoop-mapreduce-historyserver hadoop-yarn-proxyserver (官方說是在cluster中挑一台做host,可是我們就一台,就直接在這台上裝)

$ sudo yum clean all
$ sudo yum install hadoop-mapreduce-historyserver hadoop-yarn-proxyserver -y




2.6 安裝 hadoop-client (用戶連接hadoop的client,官方說在client裝,我們就直接在這台上裝)

$ sudo yum clean all
$ sudo yum install hadoop-client -y




3. 部署CDH

3.1 配置計算機名(默認是localhost)

先看看自己的hostname有沒有設置
$ sudo vim /etc/sysconfig/network
HOSTNAME=localhost.localdomain




假設HOSTNAME是 localhost.localdomain的話就改一下
HOSTNAME=myhost.mydomain.com
然后再執行下,保證馬上生效
$ sudo hostname myhost.mydomain.com




檢查一下是否設置生效
$ sudo uname -a




3.2 改動配置文件

先切換到root用戶。免得每行命令之前都加一個sudo,所以下面教程都是用root角度寫的
$ sudo su -
$ cd /etc/hadoop/conf
$ vim core-site.xml


在 <configuration>...</configuration> 中添加
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://myhost.mydomain.com:8020</value>
</property>

編輯hdfs-site.xml


$ vim hdfs-site.xml


在 <configuration>...</configuration> 中加入
<property>
 <name>dfs.permissions.superusergroup</name>
 <value>hadoop</value>
</property>




3.3 配置存儲目錄

在 namenode 機子上配置 hdfs.xml 用來存儲name元數據(我們僅僅有一台機,所以既是namenode又是datanode)
$ vim hdfs-site.xml


改動dfs.name.dir 為 dfs.namenode.name.dir(dfs.name.dir已經過時),並改動屬性值,一般來說我們的 /data 或者 /home/data 都是掛載大硬盤數據用的,所以把存儲目錄指向這個路徑里面的目錄比較較好
<property>
     <name>dfs.namenode.name.dir</name>
     <value>file:///data/hadoop-hdfs/1/dfs/nn</value>
  </property>



在 datanode上配置 hdfs.xml 用來存儲實際數據(我們僅僅有一台機,所以既是namenode又是datanode)
$ vim hdfs-site.xml


添加dfs.datanode.data.dir(dfs.data.dir已經過時)配置
<property>
     <name>dfs.datanode.data.dir</name>
     <value>file:///data/hadoop-hdfs/1/dfs/dn,file:///data/hadoop-hdfs/2/dfs/dn</value>
  </property>




建立這些目錄
$ mkdir -p /data/hadoop-hdfs/1/dfs/nn
$ mkdir -p /data/hadoop-hdfs/1/dfs/dn
$ mkdir -p /data/hadoop-hdfs/2/dfs/dn




改動目錄用戶
$ chown -R hdfs:hdfs /data/hadoop-hdfs/1/dfs/nn /data/hadoop-hdfs/1/dfs/dn /data/hadoop-hdfs/2/dfs/dn




改動目錄權限
$ chmod 700 /data/hadoop-hdfs/1/dfs/nn


3.4 格式化namenode

$ sudo -u hdfs hdfs namenode -format




3.5 配置 Secondary NameNode

在hdfs-site.xml中加入
<property>
  <name>dfs.namenode.http-address</name>
  <value>0.0.0.0:50070</value>
  <description>
    The address and the base port on which the dfs NameNode Web UI will listen.
  </description>
</property>




3.6 啟動hadoop

$ for x in `cd /etc/init.d ; ls hadoop-*` ; do sudo service $x start ; done
Starting Hadoop nodemanager:                               [  OK  ]
starting nodemanager, logging to /var/log/hadoop-yarn/yarn-yarn-nodemanager-xmseapp03.ehealthinsurance.com.out
Starting Hadoop proxyserver:                               [  OK  ]
starting proxyserver, logging to /var/log/hadoop-yarn/yarn-yarn-proxyserver-xmseapp03.ehealthinsurance.com.out
Starting Hadoop resourcemanager:                           [  OK  ]
starting resourcemanager, logging to /var/log/hadoop-yarn/yarn-yarn-resourcemanager-xmseapp03.ehealthinsurance.com.out
Starting Hadoop datanode:                                  [  OK  ]
starting datanode, logging to /var/log/hadoop-hdfs/hadoop-hdfs-datanode-xmseapp03.ehealthinsurance.com.out
Starting Hadoop namenode:                                  [  OK  ]
starting namenode, logging to /var/log/hadoop-hdfs/hadoop-hdfs-namenode-xmseapp03.ehealthinsurance.com.out
Starting Hadoop secondarynamenode:                         [  OK  ]
starting secondarynamenode, logging to /var/log/hadoop-hdfs/hadoop-hdfs-secondarynamenode-xmseapp03.ehealthinsurance.com.out
...




都成功后用jps看下
$jps
17033 NodeManager
16469 DataNode
17235 ResourceManager
17522 JobHistoryServer
16565 NameNode
16680 SecondaryNameNode
17593 Jps



4 client測試

打開你的瀏覽器輸入 http://<hadoop server ip>:50070
假設看到
Hadoop Administration
DFS Health/Status
這種字樣就成功進入了hadoop的命令控制台


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM