在VM上搭建Hadoop,是一件鸡冻又痛苦的事情。说到鸡冻,是想一睹Linux的芳容,一睹Hadoop的神奇,不过这个过程也是有不少各种坑的,一不小心就掉坑里面了,半天还起不来。咱也来炫耀一回,把整个过程的要点记录下来;
1. 下载一个VM工具
有VMWare或者VirtualBox(Oracle的免费的)
下载一个操作系统的ISO文件,例如centos,ubuntu,免费的
这里以VMWare为例,按照windows的习惯,一路Next下去。
2. 创建新的虚拟机
下面有几个步骤没有截图,直接Next,详情自己很容易摸索的。
在菜单栏,点击编辑按钮---->虚拟网络编辑器
配置网络这步很容易出错,经常卡在这里。Vmnet8即为nat的网卡 ,在这里主要设置子网IP,子网掩码和网关(后面配置网络需要用到)
3. 启动配置VM
话说现在就可以开始开启虚拟机了(那个三角的红箭头你一定看到了)。
基本上是一路Next下去,个别的可以看看,其实原理和安装Windows差不多,不要说你Windows没有装过,NND,现在买的电脑都是已经装好的。
简单配置
装好了CentOS重启后,配置下IP (带下划线为Linux命令)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:E1:33:B3
TYPE=Ethernet
UUID=5aaf2ef2-4986-4533-8d1e-85bdcad97c2c
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.137.128
NETMASK=255.255.255.0
GATEWAY=192.168.137.2
DNS1=201.***.***.***
service network restart
ping www.baidu.com 能够ping通就OK了
然后你就可以使用各种终端工具连接你的CentOS.
上传JDK,Hadoop等
配置环境变量
cd /root/tools
tar –zxvf jdk-7u79-linux-x64.tar.gz –C /usr/local
tar –zxvf hadoop-2.6.0.tar.gz –C /usr/local
vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.7.0_79
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
javac -version 能够看到信息就OK了
CentOS7 修改主机名
hostnamectl set-hostname vm11
手动更新/etc/hosts
vim /etc/hosts
127.0.0.1 vm11 myvm11
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain
::1 localhost localhost.localdomain localhost6 localhost6.localdomain
无密码登陆
Master要实现不需要输入密码即无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对(id_rsa id_rsa.pub),包括一个公钥(id_rsa.pub)和一个私钥(id_rsa),而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。
通常情况下,无密码登陆通常指的是由Master到任意一个Slave的无验证的单向登陆,意思就是只能从Master登陆到Slave是不需要密码的。
1) 在MASTER主机生成密钥对
ssh-keygen -t rsa
这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。
2) 将公钥添加到远程主机的 authorized_keys 文件中
将文件上传到Slave主机中
scp ~/.ssh/id_rsa.pub hadoop@192.168.137.129:/home/hadoop/
SSH到登陆到远程主机192.168.137.129,将公钥追加到 authorized_keys 文件中
cat /home/hadoop/id_rsa.pub >> /hadoop/.ssh/authorized_keys
或直接运行命令:
cat ~/.ssh/id_dsa.pub|ssh hadoop@192.168.137.129 'sh -c "cat - >>~/.ssh/authorized_keys"'
3) 重启 open-ssh 服务,或者重启机器
4) MASTER本地测试登录SLAVE
ssh hadoop@192.168.137.129
ssh localhost的时候要注意:
~/.ssh需要是700权限
authorized_keys需要是644权限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
整个过程还是需要点时间的,一般会遇到各种不同的问题,需要搜索下,找到解决的办法。
主要问题提示:
支持否(64/32, BIOS - VT。。。)
版本(jdk,hadoop,ssh。。。)
命令(写错了,Not found,路径。。。)
网络是否连通(端口)
主机名称配置是否正确
重要的是要理清思路,知道每一步都是干什么的,做了之后能不能马上验证下是否成功。不同版本的系统操作可能有各种差异,网上的资料或者有帮助或者是误导,总之是各种坑。
最后祝你好运。