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份出来当做节点

三. 修改每一台节点上的配置

  • 修改主机名称

    vi /etc/sysconfig/network 
    

  • 克隆后网卡冲突解决

    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 
      

    ```

  • 在SecureCRT设置免密登陆服务器

    这个界面,红处取消打勾

    SecureCRT免密登陆图1.png

    在这个界面,增加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机群搭建成功!

    posted @   骑猪去流浪  阅读(3234)  评论(0编辑  收藏  举报
    编辑推荐:
    · 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
    · Linux glibc自带哈希表的用例及性能测试
    · 深入理解 Mybatis 分库分表执行原理
    · 如何打造一个高并发系统?
    · .NET Core GC压缩(compact_phase)底层原理浅谈
    阅读排行:
    · 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
    · 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
    · Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
    · 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
    · 【非技术】说说2024年我都干了些啥
    点击右上角即可分享
    微信分享提示