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