西北工业大学软件学院大数据技术实验(一)

登录服务器并创建自己的虚拟机

学校服务器地址为:10.13.0.21~10.13.0.29,每一个IP对应着是不同配置的主机,在新建自己虚拟机之前应该先估算自己所需要多少资源,确定在哪个IP上注册自己的虚拟机。所有IP的登录名:root,密码:xxx。下面展示的是22节点上登录界面:

成功登录以后会显示出服务器上面的虚拟主机,如下图所示:

 在服务器上面创建虚拟机之前需要提前准备ISO镜像文件,需要保证每个新建的虚拟机采用不同的ISO文件,不然的话会出现各个虚拟机会对同一个文件产生读写冲突,我个人选择的是Ubuntu16.04的镜像文件。首先应该将所需文件上传到服务器上面,点击存储->数据存储浏览器,就可以在服务器创建自己的文件夹,并可以将ISO文件上传到文件夹中以备后用。接下来我们开始创建自己的虚拟机,以新建Master主机为例:依次点击创建/注册虚拟机->创建新的虚拟机->输入相应的信息下一步->选择相应的配置,在如下步骤处点击自己的镜像文件,点击完成即可看见自己新建好的虚拟机。

 随后启动自己的虚拟机,接下来的步骤如在Vmware中创建虚拟机的步骤一样,不再赘述了。值得注意的是在最后配置新的Linux的用户密码的步骤时,大数据分布式集群中的各台主机用户名应该一致。接下来就可以进入新建好的虚拟机中了,首先需要解决的是网络连接的问题,由于在新建的虚拟机中无法通过DHCP来访问网络,需要自己静态的配置网络来使得每台虚拟机能够连上网络,如下图所示。IP配置应该按照学校留给学生的可以使用的IP范围10.13.0.33~10.13.0.60来配置,子网掩码为255.255.255.0,网关10.13.0.1,DNS服务器:202.117.80.2。按照上面信息配置以后就可以看见虚拟机可以正常地连接到网络了。值得注意的是,因我已经在服务器上搭建了5台虚拟机已经占据了10.13.0.33~10.13.0.37地址,希望今后同学再进行实验时应避开如上地址,建议问一下专门负责的老师。

 需要提醒的是直接在服务器上面操作每台虚拟机时不如在本地的VMwrae中操作虚拟机方便,有延迟,后续的话我们建议采用Xshell和Xftp两个好用的小工具来连接到远程的虚拟机,下面介绍一下怎样用Xshell和Xftp来连接虚拟机,首先应该在虚拟机中安装openssh-server和vsftpd软件。

1.更新apt源

sudo apt-get update

 2.安装openssh-server,每个需要输入的选项按y即可。

sudo apt-get install openssh-server

3.安装ftp服务,原理同上。

sudo apt-get install vsftpd

4.采用下面命令来查看进程和端口,若有sshd这个进程证明ssh服务启动成功,若无的话,建议重启ssh服务,再次查看。

ps-ef|grep sshd
netstat -antp|grep ssh

可以看见sshd进程在本机的22端口成功运行

5.获取本机ssh密钥 ,可以在本机的~/目录下面.ssh文件夹下面看见生成了id_rsa.pub文件。

ssh-keygen -t rsa -P ""

 这样的话,在虚拟机端的配置完成。接下来打开Xshell(Xftp同理),新建会话->输入IP地址,登录的用户名以及其密码即可登录到远程的虚拟机。第一次需要将远程的虚拟机的密钥保存到本地主机上。Xshell登录成功后如下图所示:

 Xftp登录成功后如下图所示:

 有关这两个软件连接到远程的虚拟机上的可能会产生的问题汇总(若能成功连接到远程虚拟机,跳过下面的步骤):

1.如果连接失败的话会导致服务器上面的虚拟机无端的卡死,只要连接失败就会卡死,无法进行任何操作,我个人的解决方案是再次重启服务器上的虚拟机。

2.在用xftp来进行传送接收文件时,会产生permission deny的错误,原因是权限不够,或者是登录的用户没有权限操作文件夹,这就要求我们每创建一个新的文件夹必须给它一定的权限和确定改文件夹的所有者是谁,每个文件夹我自己图省事都给了777的权限。

chmod 777 filename
chown -R username filename

3.每次新建立一个连接可能会自己断掉,或者是前些时间可以连接到,而再次打开时就出现连接失败的情况,我本人出现了很多次这样的情况,很令人恼火。个人总结了一点经验就是,第一检查登录的用户名和密码确保输入的都正确,第二每次连接失败的话先把服务器端的已经失去响应的虚拟机全部重启再连接。看网络上其他人的方法总结如下:(1)防火墙未关闭,在自己的主机上的防火墙上建立新的 进入规则,针对21,22端口新建信任端口,在远程的虚拟机上也通过ufw命令来关闭防火墙或者是指定信任的端口。(2)修改ssh的文件夹权限,或者是修改位于~/.ssh/sshd_config文件中的permitrootlogin选项。(可以具体情况具体分析)

注以上列举的方法我试过了,但是没有解决我面临的问题。我目前是Xshell可以连接到远程的master主机,与slave机器连接不稳定,容易掉连接。我的解决思路是,利用Xftp来上传本地机器上的文件到master主机上,然后通过ssh协议将master主机上的文件传递给若干个slave节点(如下面代码所示,首先需要解决在集群中的免密登录,在第二节会跟大家详细介绍,大家先了解一下该思路)。对各个slave节点进行操作时也可以通过ssh协议免密登录到若干slave节点,再对其进行操作。

写在本节最后的话,因为作者的能力也有限,有很多东西也是靠自己不断地百度,查看博客得来的,也有部分问题未能得到妥善的解决,只是分享一下作者面临的诸多问题以及分享一下解决的经验。所以有同学在实验过程中遇到了不一样的问题时,欢迎各位在本文下面评论区留言,大家也可以互相讨论学习一下,我也会积极回复大家的问题的。也祝愿大家在赵老师带的大数据原理技术的课程中学到很多有用的知识。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>