歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Hadoop2.4.1偽分布式配置詳解

Hadoop2.4.1偽分布式配置詳解

日期:2017/2/27 15:55:10   编辑:Linux教程
實驗環境:
VMware Workstation 10.0
CentOS 6.5
Hadoop 2.4.1
Jdk1.7.0

一. Linux系統環境准備
用WindSCP等軟件,把JDK和Hadoop的安裝包上傳到CentOS虛擬機中。

用戶設置
如果用普通用戶進行以下操作,先把普通用戶添加到/etc/sudoers文件中,以便能執行sudo命令。
切換到root
$su -
添加普通用戶到sudoers
#vim /etc/sudoers
在文件的99行添加 hadoop ALL=(ALL) ALL
添加普通用戶hadoop

配置IP
虛擬機使用NAT模式。
用圖形界面或直接修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
IP:192.168.18.101
MASK:255.255.255.0
ROUTE:192.168.18.1

修改主機名
非必須步驟,為了以後的方便,還是配置的好。
修改主機名為hadoop001,重啟生效
[root@localhost ~]# vim /etc/sysconfig/network
   NETWORKING=yes
   HOSTNAME=hadoop001
查看主機名
[root@localhost ~]# hostname

配置主機名和IP的映射
為了測試方便,也可以再配置宿主機windows的映射 C:\Windows\System32\drivers\etc\hosts
[root@localhost ~]# vim /etc/hosts
添加: 192.168.18.101 hadoop001

關閉防火牆
不關閉防火牆,其他主機不能訪問http等服務。當然,如果你會,自己配置防火牆更好。
關閉防火牆
[root@localhost ~]# service iptables stop
查看防火牆狀態
[root@localhost ~]# service iptables status
iptables: Firewall is not running.
設置開機不啟動防火牆
[root@localhost ~]# chkconfig iptables off
配置完成,重啟CentOS
reboot

二. 安裝JDK和Hadoop
解壓JDK和Hadoop的安裝包*.tar.gz.

配置環境變量
重新編譯環境變量配置文件
#source /etc/profile
測試命令
$java -version
$hadoop

三.Hadoop配置
1. etc/hadoop/hadoop-env.sh
修改 HADOOP_HOME/etc/hadoop/hadoop-env.sh

把27行,${JAVA_HOME}換成jdk的絕對路徑。

可能是hadoop的shell腳本問題,這裡經常獲取JAVA_HOME失敗,所以替換成jdk的絕對路徑。 2. etc/hadoop/core-site.xml
<configuration>
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://hadoop001:9000</value>
         <discription> 
            hdfs://hostname|IP:port
             文件系統的名字,默認端口號為8020(見NameNode源碼),
        </discription>
     </property>
    <property>
          <name>hadoop.tmp.dir</name>
          <value>/home/hadoop/apps/hadoop-2.4.1/tmp</value>
          <discription>
               指定name table(fsimage)在本地系統的存放位置,
               如果value是以逗號分隔的多個目錄,則會在每個目錄中保存一份,作為冗余備份。
               注意:如果最前面不加/ 就是相對HADOOP_HOME的路徑
          </discription>
     </property>
</configuration>

3. etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
        <description>
            block副本的數量(副本因子)
            在搭建偽分布式時,值為1就行,覆蓋hdfs-default.xml中配置的默認值3。
         </description>
    </property>
<configuration>

4. etc/hadoop/mapred-site.xml
修改mapred-site.xml.template文件名為mapred-site.xml
<configuration>
     <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
     </property>
     <description>
        指定MapReduce運行在Yarn上
     </description>
</configuration>

5. etc/hadoop/yarn-site.xml
</configuration>
    <!-- 指定YARN的老大(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop001</value>
    </property>
        <!-- reducer獲取數據的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

四. 啟動Hadoop
SSH免密碼登錄
設置無密碼登錄NameNode等節點。因為我們是偽分布式實驗環境,所以啟動或關閉HDFS和Yarn時每次輸入密碼不方便。

測試一下,是否可以通過SSH免密碼的登錄
$ ssh localhost

If you cannot ssh to localhost without a passphrase, execute the following commands:
 $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
 $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
 #然後再用ssh localhost測試一下,如果不行,就改一下秘鑰的權限。
 #chmod 600 .ssh/*

格式化HDFS
為什麼需要格式化?

和使用新買的硬盤時,也需要格式一下一個道理,根據選擇的文件系統類型對磁盤進行配置。

windows下選擇NTFS文件系統,這個是HDFS文件系統,只不過HDFS的是一個邏輯磁盤
hfds namenode -format  
或hadoop namenode -form  這是hadoop1.x中的命令,已經過時。

格式化成功後,Hadoop會在core-site.xml文件中配置的hadoop.tmp.dir目錄下自動創建dfs/name目錄。

格式化信息: 查看初始狀態下dfs/name下只有fsimage文件。
啟動Hadoop服務
hadoop 1.x通過start-all.sh啟動hdfs和MapReduce
$ bin/start-all.sh
hadoop2.x
啟動hdfs服務
$start-dfs.sh
啟動yarn
$start-yarn.sh

驗證成功啟動
1) 用JPS查看java進程 2)Browse the web interface for the NameNode and theMapReduce
NameNode Web UI- http://localhost:50070/
MapReduce Web UI - http://localhost:8088/
Copyright © Linux教程網 All Rights Reserved