实战大数据(Hadoop+Spark+Flink):从平台构建到交互式数据分析(离线/实时)
上QQ阅读APP看书,第一时间看更新

2.2 搭建Linux虚拟机

前面已经安装好IDEA开发环境,接下来还需要搭建Linux虚拟机,为后续部署大数据平台提供基础环境。

2.2.1 安装Linux系统

大数据平台通常是构建在Linux系统之上的,而大家平时使用的计算机大部分是Windows系统。此时可以通过VMware Workstation虚拟化软件在Windows系统中安装虚拟机,然后在虚拟机上安装Linux操作系统,这样大数据平台就可以构建在Linux虚拟机之上(生产环境中,公司可以购买物理服务器搭建大数据平台)。读者可通过以下教学视频学习在虚拟机上安装Linux操作系统(本书配套资料/第2章/2.2/视频)

2.2.2 配置Linux静态IP

在实际应用中,由于经常使用动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)服务器来分配IP地址,每次重启DHCP服务器,IP地址有可能是会变动的。而使用Linux系统来搭建大数据平台,希望IP地址是固定不变的,因为集群配置的很多地方都会涉及IP地址,所以需要将Linux系统配置为静态IP。那么如何进行配置呢?

这里以hadoop01节点为例,首先在控制台输入命令vi /etc/sysconfig/network-scripts/ifcfg-eth0打开配置文件,然后修改hadoop01节点的网卡信息,具体配置如图2-31所示。将BOOTPROTO参数由dhcp改为static,表示将动态IP改为静态IP;添加固定IP地址IPADDR为192.168.20.121;添加子网掩码NETMASK为255.255.255.0;网关GATEWAY设置为192.168.20.2。(可在VMware Workstation导航栏中,选择编辑→虚拟网络编辑器选项,查看自己设置的网段和网关)

修改网卡配置之后,需要在控制台输入命令service network restart重启网络服务才能生效,具体操作如图2-32所示。

图2-31 网卡配置

图2-32 重启网络服务

在控制台输入ifconfig命令,可以查看到当前固定IP地址为192.168.20.121,具体操作如图2-33所示。

图2-33 查看网络接口配置信息

Linux系统配置固定IP地址之后,即使重启Linux系统也不会改变。

2.2.3 Linux主机名和IP映射

实际上不论是IP地址还是主机名都是为了标识一台主机或服务器。IP地址就是一台主机上网时IP协议分配给它的一个逻辑地址,主机名就相当于又给这台机器取了一个名字,可以为主机取各种各样的名字。如果要用名字去访问主机,系统如何通过名字去识别一台主机呢?这就需要配置hostname与IP地址之间的对应关系。

在控制台输入命令vi/etc/hosts打开配置文件,在hosts文件的末尾按照对应格式添加IP地址和主机名之间的对应关系。此时IP地址为192.168.20.121,对应的hostname为hadoop01,注意它们之间要有空格。具体配置结果如图2-34所示。

图2-34 修改hosts文件

2.2.4 关闭Linux防火墙

防火墙是对服务器进行保护的一种服务,但是有时这种服务会带来很大的麻烦。比如它会妨碍集群间的相互通信,所以就需要关闭防火墙。在本书中为了方便学习,选择永久关闭防火墙。

在控制台中输入chkconfig iptables off命令,按〈Enter〉键执行命令即可实现防火墙的永久关闭,具体操作如图2-35所示。

图2-35 关闭Linux防火墙

注意:要永久关闭防火墙,需要输入reboot命令重新启动Linux操作系统才能生效。

2.2.5 创建Linux用户和用户组

在大数据平台搭建的过程中,为了系统安全考虑,一般不直接使用超级用户root,而是需要创建一个新的用户和用户组。在Linux系统中,可以直接使用groupadd命令创建新用户组,groupadd的使用方法如图2-36所示。

在控制台输入命令groupadd hadoop,就可以创建名字为hadoop的用户组。

在Linux系统中,可以直接使用useradd命令创建新用户,useradd的使用方法如图2-37所示。

图2-36 groupadd用法

图2-37 useradd用法

在控制台输入命令useradd-g hadoop hadoop,就可以创建名字为hadoop的用户并指定用户组为hadoop。

另外,可以在root用户下,使用passwd命令为刚刚创建的hadoop用户设置密码,密码可以自行设置,具体操作如图2-38所示。

图2-38 设置hadoop用户密码

2.2.6 Linux SSH免密登录

SSH(Secure shell)是可以在应用程序中提供安全通信的一个协议,通过SSH可以安全地进行网络数据传输,它的主要原理是利用非对称加密体系,对所有待传输的数据进行加密,保证数据在传输时不被恶意破坏、泄露或篡改。

但是大数据集群(主要指的是Hadoop集群,可用Hadoop代指)使用SSH主要不是用来进行数据传输的,而是在Hadoop集群启动或停止时,主节点需要通过SSH协议将从节点上的进程启动或停止。如果不配置SSH免密登录,对Hadoop集群的正常使用没有任何影响,只是在启动或停止Hadoop集群时,需要输入每个从节点用户名的密码。可以想象一下,当集群规模比较大时,比如达到成百上千节点规模,如果每次都要分别输入集群节点的密码,相当麻烦,这种方法肯定是不可取的,所以要对Hadoop集群进行SSH免密登录的配置,而且目前远程管理环境中最常使用的也是SSH。

SSH免密登录的功能与用户密切相关,为哪个用户配置了SSH,哪个用户就具有SSH免密登录的功能,没有配置的用户则没有该功能,这里选择为hadoop用户配置SSH免密登录。

首先在控制台,使用su命令切换到hadoop用户,具体操作如图2-39所示。

在hadoop用户的根目录下使用mkdir命令创建.ssh目录,使用命令ssh-keygen-t rsa(ssh-keygen是秘钥生成器,-t是一个参数,rsa是一种加密算法)生成秘钥对(即公钥文件id_rsa.pub和私钥文件id_rsa),具体操作如图2-40所示。

图2-39 切换到hadoop用户

图2-40 SSH生成公钥和私钥

将公钥文件id_rsa.pub中的内容复制到相同目录下的authorized_keys文件中,具体操作如图2-41所示。

切换到hadoop用户的根目录,然后为.ssh目录及文件赋予相应的权限,具体操作如图2-42所示。

图2-41 生成授权文件

图2-42 修改.ssh目录及文件权限

使用ssh命令登录hadoop01,第一次登录需要输入yes进行确认,第二次以后登录则不需要,此时表明设置成功,具体操作如图2-43所示。

图2-43 测试SSH免密登录