1. 基于 Mac 平台 VMware 虚拟机的 Spark 安装(1)

基于 Mac 平台 VMware 虚拟机的 Spark 安装系列博文,主要分为如下几个篇章 :
(1) 基于 VMware 虚拟机,安装 CentOS , 并进行相应的配置
(2) 基于 VMware + CentOS,安装 Hadoop,并进行相应的配置
(3) 基于 VMware + CentOS,安装 MySQL,并进行相应的配置
(4) 基于 VMware + CentOS + Hadoop + MySQL,安装 Hive,并进行相应的配置
(5) 基于 VMware + CentOS + Hadoop + MySQL + Hive,安装 Spark,并进行相应的配置
(6) 基于 VMware + CentOS + Hadoop + MySQL + Hive + Spark,进行代码测试分析。
(6) 基于 VMware + CentOS + Hadoop + MySQL + Hive + Spark,进行代码常见错误分析。


这篇文章里,主要介绍 (1),即 "基于 VMware 虚拟机,安装 CentOS , 并进行相应的配置"
在 Mac 操作系统上安装 VMware,以及 VMware 的注册,略
这里使用的 VMware 版本是 VMware Fusion 11.0.0 
以下所有操作,均基于 root 账户


一、从官网 centos.org 下载 CentOS


这里下载的 CentOS 版本是 CentOS-7-x86_64-DVD-1810.iso 


二、安装 CentOS 之 master 机器


1. 打开 VMware Fusion, 点击"文件"->"新建",根据如下提示,将上面下载的 ISO 文件拖到指定界面位置

点击 "继续" -> "传统 BIOS" -> "继续" :

点击 "自定设置" 配置待安装的虚拟 CentOS 的位置和名称,这里安装的虚拟 CentOS 起名为 master

点击 "存储"。如果此时有如下设置界面,直接关掉即可

这里的默认设置有三个:
网络适配器:默认为" 与我的 Mac 共享 ",即虚拟机在外部网络上共享 Mac 的 IP 地址。Mac 为虚拟机发出的网络流量进行网络地址转换( NAT )
处理器:默认为 " 1个处理器内核 "
内存:默认为 1024MB 
这里先采用默认配置,后面再根据情况做调整

接下来点击 "运行" 大按钮

VMware 开始对 CentOS 进行安装,这里选择 "Test this media & install CentOS 7", 如图所示

VMware 对镜像文件进行检测后,开始执行实际安装,选择安装过程中交互语言为中文。

点击"继续",进入系统配置界面

"日期和时间":保持默认的 "亚洲/上海 时区"。
"键盘":在默认汉语的基础上,增加英语。
"语言支持":在默认中文的基础上,增加英文。
"安装源":保持默认的本地介质。
"软件选择":我们侧重于使用该虚拟 CentOS 的网络和计算功能,所以我们左侧选择 "带 GUI 的服务器",右侧可以全部勾选,点击 "完成",系统界面显示 "检测软件依赖关系",等待其检测完毕。

"安装位置"点进去,可以看到默认的硬盘是20G, 保持默认即可,虚拟CentOS安装完毕之后,还可以根据需要动态设置其硬盘的大小。
"KDUMP" 保持默认。
"网络和主机名" 点击进去,打开以太网的 "关闭" 按钮,并点击 "完成" 返回主安装界面。

"SECURITY POLICY" 阅读确认。
至此、虚拟 CentOS 安装的配置完毕,点击 "开始安装" 进行安装。
然后,根据提示, 设置 ROOT 密码, 创建用户 admin 作为登录初始账户,admin 可以免密码。然后,等待系统安装完毕后重启即可。

三、关闭防火墙和 SELinux


使用命令 # systemctl status firewalld.service 查看防火墙状态,如下图绿色 active (running) 字样所示, 标识防火墙是开启的

我们使用命令 # systemctl stop firewalld.service 来关闭防火墙。
这时候再使用命令 # systemctl status firewalld.service 来查看,发现防火墙已经被关闭。
但是当虚拟CentOS重启之后,防火墙还会自动开启。我们使用如下命令永久关闭防火墙:
# systemctl disable firewalld.service
至此、虚拟 CentOS 的防火墙被永久关闭。
下面来关闭 selinux。
selinux 有 3 种状态,分别是 Enforcing 强制启动、Permissive 大部分规则放行、Disabled 禁用。
使用命令 # getenforce 来查看 selinux 的状态,如图所示,标识 selinux 为 Enforcing 状态
我们编辑 /etc/selinux/config 文件,做如下修改 :

重启虚拟 CentOS , 重新查看防火墙和 selinux 的状态,确认 OK 

本节参考: 
CentOS 如何关闭防火墙: https://jingyan.baidu.com/article/ff42efa9fd8c1cc19e2202bb.html
如何关闭 Linux 的 selinux: https://jingyan.baidu.com/article/6d704a13409b4128da51ca4e.html


四、配置虚拟 CentOS 的静态 IP 和主机名


1. 
查看 Mac 本身网络情况:
进入 Mac "系统偏好设置" - "网络" - "" - "高级" - "DNS" , 查看 DNS 服务器,显示为:
114.114.114.114
8.8.8.8

这个 DNS 地址,先记录下来、后面配置虚拟 CentOS 使用。
查看 Mac 上安装的 VMware 的配置信息:

这里的网关地址和网络掩码,先记录下来、后面配置虚拟 CentOS 使用。
配置虚拟 CentOS 的网络配置文件:
执行命令 # ifconfig 可以看到,这个版本的 CentOS 使用的是 ens33 网卡标识,如图所示 :

使用这个 ens33 标识,找到网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 ,对其进行如下编辑如下:

其中,
BOOTPROTO=static                # 设置 IP 类型为静态  
IPADDR=192.168.41.100            # 设置具体 IP 地址。设置在网关的范围内,即 192.168.41.***,但不要和网关相同即可
NETMASK=255.255.255.0            # 设置网络子网掩码
GATEWAY=192.168.41.2            # 设置网关地址为上面的 192.168.41.2
DNS1=8.8.8.8                # 设置 DNS 服务器 1
DNS2=114.114.114.114        # 设置 DNS 服务器 2
ONBOOT=yes                    # 设置开机时候读取本设置
对 /etc/sysconfig/network-scripts/ifcfg-ens33 进行内容保存,并执行如下命令重启网卡服务:
# service network restart
等待命令执行完毕,重新执行命令 # ifconfig 发现虚拟 CentOS 的静态 IP 地址变成如图所示

搭建集群,通常以名称代替IP,所以我们配置主机名如下:
编辑 /etc/sysconfig/network 文件,通过添加如下两个配置项来更改机器名

新的机器名在虚拟CentOS 重启后生效。
修改 HOST 文件:
编辑 /etc/hosts 文件,添加如下内容

保存该 /etc/hosts 文件。重启 CentOS 后,执行命令 # hostname 发现机器名已经变成了 master


五、配置 root 用户的工作路径


创建如下文件目录
/app/soft        :用于系统软件安装
/app/work    :用于存放用户文档、代码


六、配置基础开发语言包 Java 和 Scala 


1. Java 安装配置
系统已有一个自带的 Java , 我们安装一个相对较新的 Java .
下载 jdk-8u201-linux-x64.tar.gz 到 /app/soft 目录
执行命令 # tar -zxvf ./jdk-8u201-linux-x64.tar.gz 对其进行解压,得到目录 jdk1.8.0_201


2. Scala 安装配置
下载 scala-2.12.2.tgz  到 /app/soft 目录
执行命令 # tar -zxvf scala-2.12.2.tgz 对其进行解压,得到目录 scala-2.12.2 


3. 编辑 /etc/profile 文件、增加 Java 和 Scala 的如下信息


七、生成虚拟 CentOS 的集群


1.  用 master 生成 slave1 和 slave2
对 master 进行关机后,在 VMware 的主控界面上
对 master 创建完整克隆,并命名为 slave1
对 master 创建完整克隆,并命名为 slave2

2. 配置
由于 master 机器执行任务略多,这里我们将 master 机器的内存配置为 2G 
slave1 和 slave2 保持刚才克隆的 1G 内存不变 
对于 slave1 ,
编辑其 /etc/sysconfig/network 文件,将其 HOSTNAE 改为 slave1
编辑其 /etc/sysconfig/network-scripts/ifcfg-ens33 文件,将其 IPADDR 改成  "192.168.41.101"
对于 slave2 ,
编辑其 /etc/sysconfig/network 文件,将其 HOSTNAE 改为 slave2
编辑其 /etc/sysconfig/network-scripts/ifcfg-ens33 文件,将其  IPADDR 改成 "192.168.41.102"
重启 slave1 和 slave2 ,使得上述配置生效。
重启后,相互 ping 主机名,应该是可以 ping 通的


八、配置免密码登录


1.  分别编辑 master、slave1、slave2 三台机器的 /etc/ssh/sshd_config 文件, 使如下三个配置项生效

保存配置之后,执行命令 # systemctl restart sshd.service 重启 SSH 服务,使得配置生效


2.  对机器master、slave1、slave2 三台机器分别生成公钥、私钥
在三台机器上执行命令 # ssh-keygen -t rsa 
为简单起见,在生成公钥、私钥的过程中,如遇到系统提示,均按回车键

命令执行完毕之后,在目录 /root/.ssh/ 下面会生成两个文件 id_rsa 和 id_rsa.pub ,
其中 id_rsa.pub 是公钥。


3. 分别对机器 master、slave1、slave2 三台机器的公钥文件进行重命名
对 master 执行命令 # mv /root/.ssh/id_rsa.pub /root/.ssh/id_rsa_master.pub
对 slave1 执行命令 # mv /root/.ssh/id_rsa.pub /root/.ssh/id_rsa_slave1.pub
对 slave2 执行命令 # mv /root/.ssh/id_rsa.pub /root/.ssh/id_rsa_slave2.pub


4. 将公钥文件传到 master 机器上,并进行合并, 对 master 执行命令 
# scp  root@slave1:/root/.ssh/id_rsa_slave1.pub  /root/.ssh/ 
# scp  root@slave2:/root/.ssh/id_rsa_slave2.pub  /root/.ssh/ 
# cd /root/.ssh
# cat id_rsa_master.pub >> authorized_keys
# cat id_rsa_slave1.pub >> authorized_keys
# cat id_rsa_slave2.pub >> authorized_keys

公钥合并之后,authorized_keys 的内容如图所示

5. 将 authorized_keys 文件分发到 slave1 和 slave2 的对应位置 ( /root/.ssh )
在 master 机器上执行如下命令:
# scp  /root/.ssh/authorized_keys  root@slave1:/root/.ssh/
# scp  /root/.ssh/authorized_keys  root@slave2:/root/.ssh/


6. 将三个虚拟 CentOS 重启完成本阶段配置


 

猜你喜欢

转载自blog.csdn.net/jiangmengya1/article/details/87379865