1、环境准备
VMWare8 Debian6 JDK7 Hadoop2.7.1(这个是第一次部署时用的版本) *如果要看后续文章,建议使用(hadoop-2.5.2 hbase-1.1.2 hive-1.2.1 spark-2.0.0)
2、安装虚拟机,安装VMTools
su apt-get install gcc apt-get install linux-headers-$(uname -r) apt-get install build-essential ./vmware-install.pl
设置共享目录,将需要的文件拷贝到虚拟机。
当然也可以设置好虚拟的的ssh后,用scp或winscp将文件拷贝到虚拟机。
3.网络配置为NAT,网卡设置为dhcp
修改配置文件/etc/network/interfaces
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
根据需要(一般用不到),修改配置文件/etc/resolv.conf
nameserver xxx.xxx.xxx.xxx
重启网卡
su ifconfig eth0 down ifconfig eth0 up
3、安装hadoop需要的软件
su apt-get install openssh-server apt-get install ssh apt-get install rsync mkdir /usr/java cd /usr/java tar -zxvf /home/neohope/Desktop/jdk-7u79-linux-x64.gz
4、新建用户hadoop
sudo adduser hadoop -home /home/hadoop
5、设置环境变量
修改文件/etc/profile,增加下面的内容
export JAVA_HOME=/usr/java/jdk1.7.0_79 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH export HADOOP_HOME=/home/hadoop/hadoop-2.7.1 export PATH=$PATH:$HADOOP_HOME/lib
测试一下
source /etc/profile cd $JAVA_HOME echo $HADOOP_HOME
5、切换到用户hadoop,并实现ssh免密码认证
5.1RSA方式
#Ubuntu16.04以后,默认不支持dsa #rsa证书生成 su hadoop ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh localhost
5.2DSA方式
#Ubuntu16.04以后,默认不支持dsa,要手工开启dsa支持 #编辑文件 sudo vi /etc/ssh/sshd_config #添加下面几行 PermitRootLogin no PermitEmptyPasswords no PasswordAuthentication yes PubkeyAuthentication yes ChallengeResponseAuthentication no PubkeyAcceptedKeyTypes=+ssh-dss #重启sshd systemctl reload sshd #dsa证书生成 su hadoop ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys ssh localhost
6、拷贝两份虚拟机,设置这三个虚拟机的名称及固定ip(NAT),修改后配置为
机器名 | IP |
hadoop-master | 10.10.10.3 |
hadoop-slave01 | 10.10.10.4 |
hadoop-slave02 | 10.10.10.5 |
主机 | 10.10.10.1 |
网关 | 10.10.10.2 |
以hadoop-master为例,其配置为
#/etc/network/interfaes auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.10.10.3 netmask 255.0.0.0 gateway 10.10.10.2 #dns-nameservers 114.114.114.114
#/etc/hosts 127.0.0.1 localhost 10.10.10.3 hadoop-master 10.10.10.4 hadoop-slave01 10.10.10.5 hadoop-slave02
#/etc/hostname hadoop-master
7、三台虚拟机都开启后,就可以相互用ssh直接访问了
su hadoop ssh hadoop-master ssh hadoop-slave01 ssh hadoop-slave02
8、Hadoop要求的ssh免密码登录范围(IP和主机名):
1) NameNode能免密码登录所有的DataNode
2) SecondaryNameNode能免密码登录所有的DataNode
3) NameNode能免密码登录自己
4) SecondaryNameNode能免密码登录自己
5) NameNode能免密码登录SecondaryNameNode
6) SecondaryNameNode能免密码登录NameNode
7) DataNode能免密码登录自己
8) DataNode不需要配置免密码登录NameNode、SecondaryNameNode和其它DataNode