Mac上使用虛擬機搭建Hadoop集群


一. mini安裝一台centos到虛擬機上

安裝過程參考這篇博客http://www.linuxdown.net/install/setup/2015/0906/4053.html

二. 修改網絡配置文件

  1. 看百度網址是否能ping通,如果可以,使用命令ifconfig查詢當前的ip地址

  2. /etc/sysconfig/network-scripts/ifcfg-eth0 進入這個配置文件進行修改,修改后重啟網卡

         DEVICE=eth0
         
         HWADDR=00:0C:29:CC:88:95
         
         TYPE=Ethernet
         
         UUID=bf2fbf08-d925-4b3e-9bec-2327c3385f09
         
         #將網卡設置為開機啟動               
         ONBOOT=yes
         
         NM_CONTROLLED=yes
         
         #改成none,使用靜態ip
         
         BOOTPROTO=none
         
         PREFIX=24
         
         #此處的網關地址由上一步通過ifconfig查出來的ip進行配置,
         #比如查出來的ip是192.168.80.80,那么此處網關就配置為  192.168.80.2
         
         DNS1=192.168.199.2
         
         DNS2=114.114.114.114
         
         DEFROUTE=yes
         
         IPV4_FAILURE_FATAL=yes
         
         IPV6INIT=no
         
         NAME="System eth0"
         
         LAST_CONNECT=1514653019
         
         USERCTL=no
         
         #此處填入過ifconfig查出來的ip
         
         IPADDR=192.168.199.131
         
         NETMASK=255.255.255.0
         
         #跟DNS1一樣
         
         GATEWAY=192.168.199.2
    

3. 修改主機名

```
vi /etc/sysconfig/network 
    
HOSTNAME=localhost.localdomain 修改為:
    
HOSTNAME=自己的主機名
```
  1. 關閉防火牆並關閉自啟動

    關閉防火牆。
    
    1、查看防火牆的狀態:
    
    service iptables status
    
    2、關閉防火牆:
    
    service iptables stop
    
    3、再次查看狀態:
    
    service iptables status
    
    系統提示:iptables:Firewall is not running.
    
    表示停止成功。
    
    4、最后,關閉防火牆開機自啟:
    
    chkconfig iptables off
    
    檢查是否關閉成功:
    
    chkconfig --list iptables
    
    全部為off表示關閉成功。
    
  2. 關閉開機等待時間

    vi /boot/grub/menu.lst
    
    將timeout=5,修改即可
    
  3. 拍快照及克隆3份出來當做節點

三. 修改每一台節點上的配置

  1. 修改主機名稱

    vi /etc/sysconfig/network 
    

  2. 克隆后網卡沖突解決

    vi  /etc/udev/rules.d/70-persistent-net.rules
    
    1. 注釋掉第一網卡驅動紅色標注地方

    2. 修改第二個網卡驅動name=“eth0”

    3. 記住第二個ATTR{address}=="00:0c:29:95:4a:d3",這個網卡地址后續要用

      # PCI device 0x1022:0x2000 (pcnet32)
          
          #SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",     ATTR{address}=="00:0c:29:ac:0c:#39", ATTR{type}=="1", KERNEL=="eth*",   NAME="eth0"
          # PCI device 0x1022:0x2000 (pcnet32)
              SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:95:4a:d3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
      
      
    4. 修改$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
      HWADDR 的值修改成上一步中的網卡地址:00:0c:29:95:4a:d3

          DEVICE=eth0
          HWADDR=00:0C:29:95:4A:D3  #修改
          TYPE=Ethernet
          UUID=ad391919-c736-4d3d-b24d-1d78427e7c6e
          ONBOOT=yes
          NM_CONTROLLED=yes
          BOOTPROTO=dhcp #動態獲取ip,給2.6那一步使用
          IPADDR=192.168.8.111  #增加一行
          GATEWAY=192.168.8.2 #增加一行
      
    5. 重啟機器

      reboot 
      
    6. 再次修改$ vi /etc/sysconfig/network-scripts/ifcfg-eth0

          DEVICE=eth0
          HWADDR=00:0C:29:95:4A:D3 
          TYPE=Ethernet
          UUID=ad391919-c736-4d3d-b24d-1d78427e7c6e
          ONBOOT=yes
          NM_CONTROLLED=yes
          BOOTPROTO=none  #修改
          IPADDR=192.168.199.132  #填入虛擬機分配的ip,通過ifconfig查詢
          GATEWAY=192.168.199.2 #根據上一步ip得到的網關
          DNS1=192.168.199.2#跟網關一樣
          DNS2=114.114.114.114 
      

    ```

  3. 在SecureCRT設置免密登陸服務器

    1. 這個界面,紅處取消打勾

      SecureCRT免密登陸圖1.png

    2. 在這個界面,增加4處

      SecureCRT免密登陸圖2.png

四. hadoop00配置hosts文件

  1. vi /etc/hosts

  2. 如圖所示:

hadoop主機配置hosts.png

五. 配置服務器ssh免密登陸節點服務器

  1. centos默認已經安裝了ssh服務端,4台機都需要安裝ssh客戶端yum -y install openssh-clients

  2. 在每台機器都生成秘鑰ssh-keygen

  3. 將hadoop00的公鑰加到其他3台機的authorized_keys文件中

    進入hadoop00的.ssh目錄,輸入ssh-copy-id 主機名@域名 就可以自動將hadoop00的公鑰添加到該主機名的免驗證文件中
    

六. 安裝jdk和hadoop

  1. 在hadoop00上解壓安裝jdk,並配置環境變量

2. 在hadoop00上解壓安裝hadoop,並配置環境變量

七. 配置hadoop

  1. hadoop-env.sh
    這個文件需要配置JAVA_HOME

     export JAVA_HOME=/usr/local/jdk1.7.0_79
    

2. hdfs-site.xml

```
<configuration>
        #副本系數,偽分布式使用的1個DataNode,因此這里填1
         <property>
        <name>dfs.replication</name>
        <value>1</value>
        </property>
</configuration>

```
  1. core-site.xml

    <configuration>
        #配置nameservice地址,默認端口是8020
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:8020</value>
        </property>
    
        #這里配置的是hdfs數據庫所在的臨時目錄,如果這里沒有配置,那么默認路徑是系統的臨時>目錄,電腦開機后,會自動格式化
        <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/apps/hadoop-2.6.0/tmp</value>
        </property>
    </configuration>
    
  2. mapred-site.xml

    <configuration>
        #表示MapReduce使用yarn來進行計算
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
         </property>
    
        #設置jobhistory的日志端口
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop000:10020</value>
        </property>
    
        #設置jobhistory日志在web上的端口自
        <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop000:19888</value>
        </property>
    
        #設置jobhistory日志的臨時存儲目錄
        <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>
        <value>/mr-history/tmp</value>
        </property>
    
        #設置jobhistory完成后的日志目錄
        <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/mr-history/done</value>
        </property>
    
        </configuration>
    
  3. yarn-site.xml

    <configuration>
        #默認要配
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
         </property>
    
        #resourcemanager主機地址配置
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop01</value>
         </property>
    
        </configuration>
    

八. 配置完后,將hadoop01上的安裝軟件和配置文件下發到DataNode

  1. 復制/usr/local/apps 到 其他 3個節點將其相同的文件夾上

  2. 復制/etc/hosts  /etc/profile 到3個節點將其相同的文件夾上

九. 進行測試

  1. 初始化 hdfs namenode -format

  2. 在$HADOOP_HOME/sbin 執行./start-all.sh

  3. 在hadoop01輸入jps 如果看到NameNode/ResourceManager/SecondNameNode,說明namenode啟動成功

  4. 在其他3台機輸入jps,如果都看到DataNode/NodeManager,說明DataNode啟動成功

  5. 通過shell命令測試創建/上傳/下載等操作,如果成功,說明hadoop機群搭建成功!


免責聲明!

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



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