想试用hadoop,可是没配置好怎么用呢,所以我们来装它。安装过程中有一些小尝试会看到。
伪分布式。从Ubuntu16安装开始,设共享文件夹,改镜像源,克隆虚拟机。
之前已经装过虚拟机了,把它的信息附上:VMware® Workstation 12 Pro 12.5.5
目录
一、准备工作
1. 下载jdk
2. 下载Ubuntu镜像
3. VMware配置
二、配置Ubuntu虚拟机
1. 新建虚拟机
2. 设置静态IP
3. DNS设置
4. 修改hostname和hosts文件
5. 关闭防火墙
三、安装Java
1. 安装VMware Tools和设置共享文件夹
2. 安装Java
四、克隆成三台虚拟机并配置
1. 克隆虚拟机
2. 更换镜像源
3. 安装ssh server
4. 创建root权限新用户
5. 修改slave的hostname和ip
6. ssh免密码登录
https://www.oracle.com/technetwork/java/javase/downloads/index.html
我下的jdk-8u181-linux-x64.tar.gz
唔,还有openjdk这种,我还是选择了Oracle的jdk。还有linux里直接下载wget命令。
https://www.ubuntu.com/download/alternative-downloads
我下的ubuntu-16.04.5-desktop-amd64.iso,迅雷BT下载挺快的。
打开空空的VM,虚拟网络编辑器里选择VMnet8 NAT模式,不勾选“使用本地DHCP服务将IP地址分配给虚拟机”。
点开“NAT设置”,记住网关,设置静态ip时要用。
自定义设置,可以调整名字、内存(这个后期调整简单)、虚拟磁盘容量(这个后期调整较麻烦),其他大多默认。存储位置看个人。唔,我居然贴了这么多图。
看看镜像,可以在CD/DVD那里选择前面下载的操作系统镜像文件(或者之后更改镜像)。
现在让我们开启它来安装操作系统。一路默认设置。填写姓名、计算机名、用户名、密码。
你看断网了它时间显示的都不准,现在是晚上7点半。右键可以打开终端。
呃,我想看看网卡名称,终端里输入ipconfig,结果......
咳咳,应该输入ifconfig,现在可以看了:ens33
(还可以通过Ubuntu图形界面设置静态IP,见参考资料,我是修改配置文件)
网卡配置文件设置:终端里输入 sudo gedit /etc/network/interfaces
出来编辑器,里面的内容是下面左图。记得我们前面说要记住的网关吧,写在gateway那里,address那里前三段和gateway保持一样,第四段网关是2而我编了一个,把原来的内容全注释掉了,下面右图是修改结果,保存。
我先输入了 sudo gedit /etc/resolv.conf,但是打开的文件显示手动修改会被覆盖,也就是会白改了。
再试试 sudo gedit /etc/resolvconf/resolv.conf.d/base,打开是空的,写进去阿里的DNS,见 http://www.alidns.com/index.html
(还可以试试这个 sudo gedit /etc/resolvconf/resolvconf.d/head 也是空文件,加上nameserver 253.5.5.5)
再 sudo resolvconf -u 之后 sudo gedit /etc/resolv.conf 看看它,结果没变化,我就重启了虚拟机,咳咳,再打开看,嗯,自动加上了。
sudo gedit /etc/hostname ,里面就是我们前面安装时设置的“您的计算机名”,将它修改为master,还没完,
sudo gedit /etc/hosts ,将第二行的原计算机名也改为master,master前面的ip地址改为前面interfaces里面设置的address。哦对了,改完以后可以再在命令行里写新的语句,你会发现它迟迟无结果,它发现了自己的名字对不上。。。看命令行前面的用户名@计算机名,所以重启。
输入 sudo ufw version 如果有防火墙版本信息说明安装了防火墙,那么查看它状态 sudo ufw status,激活(active)的话就关闭它:sudo ufw disable 。可以用 sudo ufw status 查看是否关闭,关了的话就是不活动(inactive)。开启是 sudo ufw enable。我发现我的防火墙本来就关的。
先把之前下载的jdk传到虚拟机里才行。VMware最上方工具栏里,虚拟机-->安装VMware Tools,弹出选是,会看到挂载的已经从Ubuntu镜像变成了VMware Tools,点开它。
可是,忧伤,我的点开是空的,我不知道怎么了。于是,按光驱旁边的三角加横把所有光驱弹出,直到为空,如下左图。然后再点虚拟机-->安装VMware Tools,点开VMware Tools就有文件啦,如下右图。
第一个问题我输了yes,后面一直按enter,好多。等Enjoy出来以后就安装成功了。然后VMware最上方工具栏 虚拟机-->设置,点击选项这个,选择共享文件夹,选择总是启用,然后按照向导添加我刚刚自己新建的一个文件夹mastershare,完成,确定。
现在打开/mnt/hgfs就出现了一个mastershare文件夹,打开就有我新建完文件夹后放在里面的jdk啦。 然后我在根目录下新建了一个文件夹:
cd /
sudo mkdir softwares
将jdk解压到这个文件夹,sudo tar -zxvf jdk-8u181-linux-x64.tar.gz -C /softwares
现在可以将共享文件夹里的jdk删了。然后配置环境变量 sudo gedit /etc/profile 追加:
export JAVA_HOME=/softwares/jdk1.8.0_121
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
终端里输入 source /etc/profile 使配置立即生效,然后输入 java -version检查是否装成功,嗯,我的好了。
(回来在这里标注一下,先完成更换镜像源、ssh配置和创建hadoop用户再克隆!!见后面的坑)
先把master关机。然后VMware最上方工具栏 虚拟机-->管理-->克隆,出来克隆向导。把克隆的第一台第二台起个名字放好。
克隆完第一台,会发现多出来一台虚拟机的选项卡。然后选中我们的master那台的选项卡,再克隆一台,如下右图。下左图是接上两图的,所以用红线分隔。
master开机,sudo apt-get update 更新一下,结果不行,显示 暂时不能解析域名“cn.archive.ubuntu.com”
于是按照前面修改DNS的方法又加了一行 nameserver 8.8.8.8 现在好了,可以 sudo apt-get update 了
呃,太慢了,换一个国内的源,清华的,阿里的,网易的,我换一个阿里的好了。
sudo gedit /etc/apt/sources.list
我把原文里所有未被注释的语句复制一遍在它下方,把复制的那句里网址前半部分cn.archive.ubuntu.com修改成阿里的mirrors.aliyun.com,后半部分不变,把上面那句再注释掉。例如第一句:
sudo apt-get update 一个字,快。
哎呀,Ubuntu说它需要更新了,好吧,让它更新一下。重启。
再 sudo apt-get install openssh-server 安装ssh server,输入y来继续安装
然后输入 ps -e | grep ssh 来检查,有sshd说明ssh服务已开启,没有开的话就 service ssh start 或者 sudo /etc/init.d/ssh start ,关闭是 service ssh stop 或者 sudo /etc/init.d/ssh stop
然后我连了一下master自己,终端里输入 ssh username@192.***.***.107 问继续连接吗选了yes,再输入密码。出来几段,如下。再输入 exit 断开连接。
创建一个具有root权限的用户叫hadoop, sudo adduser hadoop 根据提示设置密码
(sudo useradd hadoop 的话,需要再 sudo passwd hadoop 设置密码,且创建的用户没有/home目录下的用户主目录。用户删除是 sudo userdel -r hadoop)
授予hadoop用户root权限,sudo gedit /etc/sudoers 在 root ALL=(ALL) ALL 下面添一句 hadoop ALL=(ALL) ALL (hadoop和ALL之间是tab键)
另两台虚拟机开机,同上面master的方法,克隆的两台虚拟机从master分别修改为slave1,slave2,ip分别比master的加1加2,设为192.***.***.108和192.***.***.109(interfaces和hosts两处的ip)
sudo gedit /etc/network/interfaces
sudo gedit /etc/hostname
sudo gedit /etc/hosts
在master机子上 su hadoop 切换成hadoop用户
终端输入:ssh-keygen -t rsa
中间三次停下的地方敲回车。生成一个/home/hadoop/.ssh的文件夹,里面存放公钥id_rsa.pub和私钥id_rsa。
暂停一下,前面有坑要填一下(在复制虚拟机之前装好就不用再在这里重复了,忧伤)
首先,在master上sudo gedit /etc/hosts,再在192.***.***.107 master下面添两句:
192.***.***.108 slave1
192.***.***.109 slave2
其次,更换镜像源。。。不然装ssh又出问题。
然后,在slave1和slave2上安装ssh server,同上。
最后,在slave1和slave2上创建root权限新用户hadoop,同上。(不然你去拷贝公钥到slave1上时会要求输入hadoop@slave1的密码,可是此时slave1没有这个用户啊,你就拷贝不过去)
在master上:
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2
此时在master上可以不需要密码登录slave1和slave2了:
ssh slave1
exit注销连接
贴图多了有点长,分成两篇吧。安装Hadoop下篇写。
有些数字我也不知道能不能公开,就用淡紫色盖住了。
参考资料:
Hadoop大数据分析与挖掘实战
https://gitbook.cn/books/5954c9600326c7705af8a92a/index.html
https://blog.csdn.net/fanxin_i/article/details/80425461
设置静态ip:https://www.linuxidc.com/Linux/2017-02/140135.htm
装了openjdk和Oracle的jdk两种可以切换:https://www.linuxidc.com/Linux/2017-11/148695.htm
Ubuntu图形界面设置静态IP:https://blog.csdn.net/liumiao1128/article/details/52449683
DNS:https://www.cnblogs.com/zjdeblog/p/6128461.html
修改hostname:https://www.jb51.net/article/115258.htm
添加用户:https://blog.csdn.net/qq_32166627/article/details/51942715
adduser和useradd:https://www.linuxidc.com/Linux/2012-06/62985.htm
三种root权限的授予方法:https://blog.csdn.net/u012995201/article/details/70598588
免密码登录:http://www.cnblogs.com/yixue2017/p/7559970.html