大数据学习前夕[01]:系统-网络-SSH

这里写图片描述


摘要:对在虚拟机上搭建前期集群环境作一个过程记录,内容分为系统安装,网络设置,SSH配置三点。系统基于Oracle VM VirtualBox虚拟机的Centos6.9操作系统,基于Nat与Host-Only网址配置,思考一下SSH的过程及相关的配置。


前言:分布式系统开始于最底层的系统,有时候很想开始一场比较轰烈的学习,但都结束于开始的那一刻。很多东西都懂,就是懂得不透,懂得不够深刻。根据学习金字塔理论原理,最好的学习方法是”教授给他人“;这个不算是教授给他人,只是个简单记录,相互学习,相互进步。

1. 系统安装

win7平台上Centos6.9 + VirtualBox 5.1.22
1. virtualBox下载: https://www.virtualbox.org/wiki/Downloads
下载好像一般window软件一样安装就可以。
2. Centos下载: http://mirrors.hust.edu.cn/centos/6.9/isos/x86_64/
Centos系统就下载iso那个,有两张DVD;
安装Centos时选择redhat创建一个虚拟机,说明一下网络的设置,配置两个网卡,网卡1[这个主要用来上网的]:
这里写图片描述
网卡2[主要让win7可以访问的]:
这里写图片描述
假设已经安装好了Centos,接下来就是设置linux网络。

2. 网络设置

2.1 win7网络
 查看win7主机的网络情况,VM的一个适配器,记录好这个IP地址[192.168.137.1],如下图:

这里写图片描述
如果想构建一个虚拟机上的三台机器的集群,IP地址可以如下设置:
虚拟机01:192.168.137.101
虚拟机02:192.168.137.102
虚拟机03:192.168.137.103

2.2 linux网络

进入linux系统,启动命令行窗口,输入ifconfig -a 查看linux网络情况,记录好这里的硬件ID[即HWaddr后面的那一串东西]
这里写图片描述
接下来,对两个块网卡进行相关设置[device:要跟前面查询出来的网卡一样;还有物理网卡]
命令:vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改内容为:
这里写图片描述
device=eth0:表示刚才看到的那块网卡;
TYPE=Ethernet:这个是局域网;
uuid这个好像没有什么用,打开就有了;如果没有生成,可以不要这个uuid;
ONBOOT=yes:开机启动;
NM_CONTROLLED=yes:实时生效,修改后无需要重启网卡立即生效;
BOOTPROTO=dhcp:动态获取IP的,用来上网用的;
NAME=internet: 自己命名的,也可以别的;
HWADDR=**: 这个硬件ID,就是刚才看到的那一串东西。
再配置eth1:
命令:vim /etc/sysconfig/network-scripts/ifcfg-eth1
修改为:
这里写图片描述
第一个配置成动态的,设置BOOTPROTO=dhcp,不用配置IP,用来动态获取win7主机上网;
第二个配置成静态的,设置BOOTPROTO=static, 配置IP,与win主机同一IP段,这个可以从win7主机上登录;前面对于IP的安排提了一下,这个是其中一台机器,IP最后那个数字配置成了101;剩下的两台机器就配置成102与103;

2.3 设置CentOS主机名(hostname)

将来打算安装三台机器构成一个hadoop集群,现在把三台机器分别命令为hadoop01/hadoop02/hadoop03.
第一步设置/etc/sysconfig/network
这里写图片描述
第二步设置/etc/hosts[顺便把这个想法加到这个文件中吧]如下:
这里写图片描述

2.4 增加hadoop用户

总感觉用root不好,将来要搭建一个hadoop集群,希望有一个hadoop用户

adduser hadoop
passwd hadoop
输两次就可以。

增加hadoop用户root权限,使用时用sudo来使用;
这里写图片描述
设置hadoop有root权限:
这里写图片描述

到这里,一些基本设置差不多好,把这个系统克隆另外两台虚拟机,找到安装好的相关文件,进行复制两份,把这两份文件加载入来,按上面的配置网络过程进行配置,相互ping一下,这时就形成了局域网。

3. SSH配置

当可以ping之后,ssh命令就可以在输入密码情况可以互相访问了,这里解决一个问题:在不输入密码的情况下可以互相访问;这个作用还是比较大的,如果不设置这个,以后配置的hadoop集群相互访问很困难。

SSH无密码登录过程 –引用[1]
假设A机器想要通过SSH无密码登录访问B机器,则需要在A机器上生成一对秘钥(公钥+私钥),而后将公钥复制到B机器上;
当A机器通过SSH链接B机器时,B机器就会生成一个随机数,并且使用A机器的公钥(通过上一步拷贝,B机器上有A机器公钥的拷贝)对随机数进行加密,并把加密的“密文”回送给A机器;
A机器收到密文后,用自己的私钥解密,把解密后的“明文”(其实就是那个随机数)再回送给B机器;
B机器收到A机器发过来“明文”后,与自己拥有的那一份比对确认,当确认通过后允许A机器链接自己;

第一步:在A机器生成秘钥对
查看是否安装SSH:

[hadoop@hadoop01 demo]$ rpm -qa | grep ssh
[hadoop@hadoop01 demo]$ netstat -a | grep ssh

如果没有安装一下,如果安装好在hadoop用户下生成一双密钥
这里写图片描述
可以在/home/hadoop/.ssh路径下查看到文件:

id_rsa  id_rsa.pub  known_hosts

id_rsa: 密钥;id_rsa.pub: 公钥;
第二步,所有集群的机器都如上生成;并且把机器上所有公钥都复制到一台机器上集中起来,注意候改一下名字,例如名字为id_rsa_01.pub, id_rsa_02.pub, id_rsa_03.pub;
第三步:把id_rsa_xx.pub拷贝到本目录下一个名叫authorized_keys的文件

[hadoop@hadoop01 .ssh]$ cat ~/.ssh/id_rsa.pub_xx >> ~/.ssh/authorized_keys

第四步:分别设置.ssh目录和authorized_keys文件的权限
[hadoop@hadoop01 ~] chmod700 /.ssh[hadoop@hadoop01 ] chmod 600 ~/.ssh/authorized_keys
第五步:通过scp把机器上的authorized_keys拷贝到所有机器上;

到这里SSH配置完了,可以两两之间可以登录了,输入命令:ssh hadoop01 ,现在不会提示输入密码了,可以很畅通地登录了。

由于水平有限,有什么地方写错的,理解错误的,欢迎指教,一起学习,一起成长,共同进步。

参考文献:
[1]:CentOS下SSH配置无密码登录

【作者:happyprince】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值