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机群搭建成功!

原文地址:https://www.cnblogs.com/flowyourheart/p/huan-jingmacVMware-Fusioncentos65hadoop265java7.html