大数据学习----day03------1.集群的搭建(集群的通信,免密配置,远程复制)2.shell(具体见linux01中的linux文档)
1. 集群的搭建
1.1 克隆
见day02
1.2 集群的通信
集群间通信通过SSH协议来通信,linux机器模式是带有SSHD的服务端的,但是没有ssh客户端,所以需要安装ssh客户端,从而实现通信
检查yum源挂载是否正确(ls /mnt/dvd(自己的挂载目录)),在每台虚拟机中安装ssh的客户端(在CRT中,view--->commond window ---->下面出来个窗口,设置send commands to为all sessions,在其中输入安装ssh客户端的命令---->回车即可在所有的会话安装相应的软件)
1.3 密码登陆
每台机器执行 安装ssh的客户端
yum -y install openssh-clients.x86_64
远程密码登陆的命令:
ssh ip 或者主机名 (远程连接机器,需要输入密码)
1.4 免密配置
远程登录进行操作指令的时候都要输入密码,这样很麻烦,所以需要进行免密配置
1 安全验证机制有两种:
a. 用户名和密码
b. 公钥和私钥机制
大致原理
请求方需要事先创建一对密钥(公钥和私钥;私钥自己持有,公钥交给目标机器)
假如现在要配置一个有四台机器的集群,每台机器都要生成一对密钥,然后发送相应的公钥去目标机器,具体见下图
2. 步骤:
(1)在每台机器生成秘钥对
ssh-keygen 回车(,每次生成的密钥对都不一样),其中生成的密钥对的位置为 /root/.ssh
(2)将生成好的公钥注册给集群的各个机器:
ssh-copy-id 目标机器(注意:此处也要发送给自己) 操作后出现如下结果
Now try logging into the machine, with "ssh 'feng04'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
这样设置完后,在feng01下连接doit02,doit03doit04的时候或者发送指令的时候就不需要再输入密码了
注意:若是在克隆前就配置A机器的秘钥,进行克隆得到其他机器,这样其他机器的秘钥就都是A机器的,这个时候就需要删除这个秘钥重新生成,然后发送公钥给其他机器
1.5 远程复制
scp 文件/文件夹(-r) 目标机器:路径
若多台机器要装同一个软件,而且要进行环境配置(如jdk),每台都安装再进行环境配置就很麻烦。这个时候我们可以在一台机器上安装好软件并配置好环境,然后通过远程复制将软件以及配置文件复制过去即可
如
[root@feng01 apache-tomcat-7.0.47]# scp -r /usr/apps/apache-tomcat-7.0.47 feng04:$PWD
注意$PWD表示当前路径,即/usr/apps/(软件在前面机器中的位置)
2. shell
Shell是命令解析器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系:Shell就是一种命令解析器,解析用户的命令调用系统内核执行相关的命令
练习1
在控制台输入一个姓名,若输入的名字为root,则打印“这个世界会好吗”,如果为tom,则打印“天空之城”,否则打印“热河”
#!/bin/bash read -p"请输入您的姓名:" name if [ "$name" == root ] # 由两处标黄处可知加不加双引号都行 then echo 这个世界会好的 elif [ $name == tom ] then echo "天空之城" else echo 热河 fi