zoukankan      html  css  js  c++  java
  • Mac上搭建Hadoop环境(1) — 虚拟机的安装及SSH免密设置

    前言

    准备在自己的MBP上搭建一个小的Hadoop集群玩玩,顺便看看会遇到什么坑。初步打算设置三个节点,其中将MBP设置为master节点,另外用虚拟机创建两个slave节点。
    第一步的主要任务有:

    • 创建2个虚拟机
    • 设置静态ip
    • 设置ssh免密登陆

    准备工作

    • Mac OS Sierra 10.12.6
    • Parallels Desktop 13.2.0

    安装虚拟机

    我选择的时PD里面提供的CentOS 7作为虚拟机。安装过程省略,

    安装了两台虚拟机分别名为slave1和slave2

    虚拟机网络设置

    为了共享MBP的网络,需要对虚拟机的网络进行配置,请参考如何将Mac共享主机网络给虚拟机
    我的配置如下

    设置静态ip

    分别在虚拟机中编辑 /etc/sysconfig/network-scripts/ifcfg-eth0, 添加IPADDR属性后重启即可. 当然也可以用UI界面直接设置。
    例如我为salve1设置了IPADDR=192.168.100.4。 以下是我的配置:

    [parallels@slave1 .ssh]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=eth0
    UUID=9410076c-bee9-4886-af6c-537c17bcfee0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=192.168.100.4
    

    然后运行 service network restart 重启虚拟机网络

    更新hosts文件

    这里需要对全部三个节点的hosts进行更新,在 /etc/hosts 加入三台节点的host信息,例如,以下是我添加的代码:

    #Hadoop Cluster
    192.168.100.2 master
    192.168.100.4 slave1
    192.168.100.5 slave2
    

    然后运行 service network restart 重启虚拟机网络

    设置SSH免密

    分别在三个节点上执行以下代码生成RSA密钥

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    ssh localhost
    

    在Slave1上执行以下代码,将自己的公钥添加到其他两台节点的authorized_keys中

    cat ~/.ssh/id_rsa.pub | ssh parallels@slave2'cat >> .ssh/authorized_keys && echo "Key copied"'
    
    cat ~/.ssh/id_rsa.pub | ssh lestat@master 'cat >> .ssh/authorized_keys && echo "Key copied"'
    

    在Slave2上执行以下代码

    cat ~/.ssh/id_rsa.pub | ssh parallels@slave1'cat >> .ssh/authorized_keys && echo "Key copied"'
    
    cat ~/.ssh/id_rsa.pub | ssh lestat@master 'cat >> .ssh/authorized_keys && echo "Key copied"'
    

    在MBP上执行以下代码

    cat ~/.ssh/id_rsa.pub | ssh parallels@slave1'cat >> .ssh/authorized_keys && echo "Key copied"'
    
    cat ~/.ssh/id_rsa.pub | ssh lparallels@slave2 'cat >> .ssh/authorized_keys && echo "Key copied"'
    

    测试

    在MBP上登陆slave1虚拟机

    lestat@Lestats-MBP:~$ ssh slave1
    Last login: Sat Mar 23 21:51:15 2019
    [parallels@slave1 ~]$
    

    在slave1上登陆master (MBP)

    [parallels@slave1 ~]$ ssh master
    Last login: Sat Mar 23 21:25:13 2019 from 192.168.100.4
    lestat@Lestats-MBP:~$ 
    

    搞定!

  • 相关阅读:
    【JavaScript知识点一】JavaScript 数据类型
    grunt操作之Gruntfile.js
    js重定向后跳转到当前页面锚点
    Java-变量和方法
    Java-运算符
    Java-类型转化
    Java-数组
    Java-循环结构(for,while)
    Java-选择结构(if-else)
    Java-数据类型(引用类型)
  • 原文地址:https://www.cnblogs.com/lestatzhang/p/10611299.html
Copyright © 2011-2022 走看看