由于大多数大数据初学者对Windows系统比较熟悉,因此,本教程采用虚拟机方式安装Linux系统(这里采用Ubuntu系统)。如果读者还没有安装Linux虚拟机,请按照前面的Linux虚拟机安装方法完成Ubuntu系统安装。在后续的学习过程中,经常需要把一些资料从Windows系统中传输到Ubuntu系统中,因此,这里介绍具体的实现方法。
(1)设置网络连接方式
完成Ubuntu系统安装以后,Ubuntu系统可以顺利访问互联网,比如,这时进入Ubuntu系统,打开一个浏览器(比如默认安装好的火狐浏览器),就可以访问新浪、百度、腾讯等网站了。但是,这时Windows系统中的一些软件(比如FTP),是无法连接到Ubuntu系统。为什么呢?
在解答这个问题之前,请先关闭虚拟机,关闭VirtualBox软件。然后,重新打开VirtualBox软件,在VirtualBox界面的左上角,点击齿轮图标的“设置”按钮,打开设置界面,在左边栏目中选择“网络”,会出现如下图所示的设置界面。
可以看出,这时的网络连接方式是“网络地址转换(NAT)”。如果把Windows系统称为“主机”,把VirtualBox上的Ubuntu系统称为“虚拟机”,采用这种连接方式时,虚拟机可以访问主机,但是,主机无法访问虚拟机。所以,在这种连接方式下,Windows系统上的FTP软件是无法连接访问Ubuntu系统中的FTP服务器的。
为了让虚拟机能够访问主机,同时让主机也能够访问虚拟机,就必须更改网络连接方式。如下图所示,需要在“连接方式”中选择“桥接网卡”,在“界面名称”后面的下拉列表框中选择电脑当前连接到互联网的网卡,然后,点击“确定”。经过上述设置后,再启动进入Ubuntu系统,就可以让主机访问到虚拟机了。
(2)设置FTP软件
本教程采用的FTP软件是FileZilla,可以登录Windows系统打开浏览器,访问教程官网进行下载,FileZilla安装文件位于“下载专区”的“软件”目录下,文件名是FileZilla_3.17.0.0_win64_setup.exe。下载到FileZilla安装文件以后,安装在Windows系统上。
为了能够让FTP软件连接到Linux虚拟机(Ubuntu系统),需要获得Linux虚拟机的IP地址。请登录Windows系统,再打开虚拟机软件VirtualBox,登录Ubuntu系统,然后,打开一个终端(可以使用快捷键Ctrl+Alt+T),进入Shell命令提示符状态,输入命令“ifconfig”,会得到如下图所示结果,其中,“inet地址:192.168.0.104”就表示Linux虚拟机的IP地址是192.168.0.104。每次重新启动虚拟机,或者在不同的地方(实验室或者宿舍)启动虚拟机,IP地址都可能会发生变化,所以,每次登录Ubuntu系统以后,都需要重新查询IP地址。
获得Linux虚拟机IP地址信息以后,就可以使用FTP软件FileZilla连接Linux虚拟机了。请打开FileZilla,启动后的界面如下图所示。
点击界面左上角菜单的“文件”选项,在弹出的菜单中选择“站点管理器”,会出现如下图所示界面,用于设置FTP连接参数。
点击界面左下角“新站点”按钮,然后,开始设置各种连接参数,具体如下:
主机:设置为Linux虚拟机的IP地址192.168.0.104;
端口:可以空着,使用默认端口;
协议:选择“SFTP-SSH File Transfer Protocol”;
登录类型:选择“正常”;
用户:可以使用之前安装Ubuntu系统时创建的用户名;
密码:可以使用之前安装Ubuntu系统时创建的用户密码;
设置完成以后,点击界面下边的“连接”按钮,开始连接Linux虚拟机。连接成功以后,会显示如下图所示界面,就可以使用FTP软件FileZilla向Ubuntu系统中传输文件了。
从图2-48中可以看出,FileZilla连接成功以后的界面包括2个主要区域。其中,左侧的“本地站点”区域,会显示Windows系统中的目录,点击某个目录以后,下面就会显示目录中的文件信息。右边的“远程站点”区域,是Linux虚拟机中的目录,可以选择一个目录,作为文件上传后要存放的位置。当需要把Windows中的某个文件上传到Linux虚拟机中时,首先在“远程站点”中选择好上传后的文件所要存放的目录,然后,在“本地站点”中选择需要上传的文件,并在该文件名上点击鼠标右键,在弹出的菜单中选择“上传”,就可以轻松完成文件的上传操作。如果要把Linux虚拟机中的某个文件下载到Windows系统中,可以首先在“本地站点”中选择好下载后的文件所要存放的目录,然后,在“远程站点”中找到要被下载的文件,在文件名上点击鼠标右键,在弹出的菜单中选择“下载”,就可以完成文件的下载。
这里需要注意的是,Linux系统对文件访问权限有着严格的规定,如果目录和文件的访问权限没有授权给某个用户,那么,该用户是无法访问这些目录和文件的。所以,当使用FileZilla连接Linux虚拟机时,如果采用用户名hadoop连接,那么,就只能把文件上传到Ubuntu系统中hadoop用户的主目录,也就是“/home/hadoop”目录,是无法对其他目录进行操作的,企图把文件传输到其他目录下就会失败。如果要顺利传输到其他目录,就必须登录Ubuntu系统,使用root权限把某个目录的权限赋予给hadoop用户(后面的Linux系统基本命令会涉及到为用户授权的方法)。