准备工作
三台虚拟机,其中:一台主机,两台节点。
需要提前下载好的文件:
linuxmint-18.3-cinnamon-64bit.iso
jdk-9.0.1_linux-x64_bin.tar
hadoop-2.9.0.tar.gz
文中提到因为jdk 9.0版本不兼容所导致的问题,本人在后面搭建 hive 的时候将jdk的版本降到8.0,不再提示警告,且hive也不会报错,后面学习的同学注意了,不要以为版本越新越好。
linux虚拟机安装操作流程
第一步: 装机
点击 vmware workstation 左上角 文件 → 新建虚拟机 然后一路点击 下一步 即可。
第二步: 配置虚拟机
- 点击 编辑虚拟机设置 ;
- 内存、处理器、硬盘 可根据自己主机的配置和个人需求去配置,如不懂,可不更改。;
- 点击 CD/DVD(SATA) 自动检测, 右边 连接 选项,选择 使用ISO镜像文件, 点击 浏览 选择你已经下载好的镜像文件。该文件的存储路径最好是不会轻易删除的那种,建议放D盘自定义英文目录下。然后点击 确定,配置完成。
第三步: 安装系统
- 回到主界面,点击 开启此虚拟机,进入安装步骤。
- 系统进入主界面后,此时系统是未安装的,双击桌面的驱动器图标,第一个界面可设置系统语言,然后一路点击 continue 即可,安装完成后提示是否重启,点击 Restart Now 重启即可。
安装完成后,进入系统之后,你会发现几个问题
- 虚拟机不自动适应软件窗口,不能与客户机之间复制粘贴,以拖动的方式移动文件。
- 没有中文输入法
- 使用
sudo apt-get install xx
命令安装软件连接失败
我们先解决后面两个问题(最好按下面这个顺序):
使用
sudo apt-get install xx
命令安装软件,总是提示连接失败。解决方法是更改软件源,具体操作如下:
点击 菜单(menu) → 系统设置(system settings) → 软件源(software sources), 将 mirrors 下面的 main 和 base 两个选项改成中国的网址。我的 main 选择 TUNA,base 选择一个速度最快的即可,我选择的是阿里云的网址;然后点击 更新缓存(update the cache)。等待安装完成即可,如弹出异常,不用管,关闭就好了。使用
sudo apt-get install git
测试安装,应该是可以成功的。安装中文输入法
点击 菜单(menu) → 软件管理(software manager),搜索 “input”,在结果中找到 “fcitx” ,点击 安装(Install) → continue → 输入密码,等待安装完成即可。提示:如没有先更改软件源,这里安装可能会失败。
关于输入法的配置,网上有很多方法,这里不作重复了。重启之后会提示选择文件系统的语言,建议选择keep old names。
关于vmware tools的安装问题
最后这个问题最容易遇到,也最麻烦,不出现则已,一出现折磨死人,尤其是对于强迫症患者。
先不管,不影响系统运行。
另一种方式是建立共享文件夹,添加主机共享文件夹目录,在linux中的对应目录是/mnt/hgfs/共享的文件夹名称
完全分布式hadoop集群安装
1. 准备三台虚拟机,含Linux系统。
在vmware workstation里面,将上面我们所安装好的系统克隆两次,最终得到三台虚拟机。
启动三台虚拟机,对刚刚克隆出来的虚拟机进行重命名,上面的名字是你在vmware里看到的计算机名,我们要更改的是它们真正的hostname,也就是命令窗口中@符号后面那个。
进入系统,打开命令行,输入命令sudo vim /etc/hostname
按 shift + i 进行编辑,修改好之后按 ESC 键退出编辑,然后依次按 shift + :、 wq 保存并退出;
最后重启系统。(以上是关于vim的操作命令,大家可查阅其他博客文档。)
修改了hostname之后的命令窗口如下:
2. 修改 /etc/hosts
文件,使得三台虚拟机之间能够互ping。
- 输入
ifconfig
命令,依次查看三台虚拟机的IP地址,如下:
- 查看好之后,依次在三台虚拟机的命令行中输入
sudo vim /etc/hosts
,修改的命令同上一步,注意注释第二行,如下:
- 修改好之后,用下面的命令测试三台虚拟机之间是否可以互ping
ping 192.168.19.197 //检测是否可以ping通自己的IP
ping ubuntu-01 //检测是否可以ping通自己的hostname
ping 192.168.19.198 //检测是否可以ping通ubuntu-01-node1的IP
ping ubuntu-01-node1 //检测是否可以ping通ubuntu-01-node1的hostname
ping 192.168.19.199 //检测是否可以ping通ubuntu-01-node2的IP