本文从安装好新虚拟机开始介绍

1.基础环境配置

1.1静态ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO="static"

IPADDR="192.168.88.11"

GATEWAY="192.168.88.2"

NETMASK="255.255.255.0"

DNS="192.168.88.2"

1.2配置hosts

vim /etc/hosts

192.168.88.11 node1

192.168.88.12 node2

192.168.88.13 node3

1.3配置主机名

hostnamectl set-hostname node1

1.4关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

1.5关闭selinux

setenforce 0

vim /etc/sysconfig/selinux

改成

SELINUX=disabled

1.6配置ssh免密登录

ssh-keygen -t rsa

cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

基础配置详细(带截图)可以看我的Hadoop和hbase伪分布式模式配置一文。这里不再详细展开,接下来转到tabby连接上并上传jdk、hadoop和hbase,同样不再赘述。解压、改名,详见上一篇文章,这里只截取环境变量配置好的图片。

1.7jdk解压、改名

mkdir -p /export/server

解压jdk:

tar -zxvf /usr/local/jdk-8u401-linux-x64.tar.gz -C /export/server/

改名jdk:

mv /export/server/jdk1.8.0_401 /export/server/jdk

1.8配置并应用环境变量

vim /etc/profile

export JAVA_HOME=/export/server/jdk

export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

到此为止可以把这台虚拟机克隆两份了,分别叫node2和node3,注意要放到不同的文件夹下。

node3同理

2.克隆之后的修改(两台同时修改,不要弄混)

2.1改主机名(是几改几)

hostnamectl set-hostname node2

hostnamectl set-hostname node3

2.2修改静态ip

三台虚拟机的ip不能相同,最后一位改下就行,别忘了出来重启下网卡

vim /etc/sysconfig/network-scripts/ifcfg-ens33

systemctl restart network

3.hadoop完全分布式配置

3.1解压、改名和配置、应用环境变量

解压hadoop:

tar -zxvf /usr/local/hadoop-2.7.7.tar.gz -C /usr/local/

改名hadoop:

mv /usr/local/hadoop-2.7.7 /usr/local/hadoop

vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop

export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

source /etc/profile

别忘了把另外两台从机配置一下环境变量再应用一下,否则会出现命令不存在的问题

3.2配置hadoop-env.sh

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/export/server/jdk

3.3配置core-site.xml

vim /usr/local/hadoop/etc/hadoop/core-site.xml

 

  fs.defaultFS

  hdfs://node1:9000

 

 

  hadoop.tmp.dir

  /usr/local/hadoop/tmp

 

3.4配置hdfs-site.xml

vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml

  dfs.replication

  3

 

 

 

  dfs.namenode.secondary.http-address

  node3:50090

 

3.5配置mapred-env.sh

vim /usr/local/hadoop/etc/hadoop/mapred-env.sh

export JAVA_HOME=/export/server/jdk

3.6配置mapred-site.xml

配置前先复制一份(因为没有)

cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

vim /usr/local/hadoop/etc/hadoop/mapred-site.xml

  mapreduce.framework.name

  yarn

 

3.7配置yarn-env.sh

vim /usr/local/hadoop/etc/hadoop/yarn-env.sh

export JAVA_HOME=/export/server/jdk

3.8配置yarn-site.xml

vim /usr/local/hadoop/etc/hadoop/yarn-site.xml

  yarn.nodemanager.aux-services

  mapreduce_shuffle

 

 

  yarn.resourcemanager.hostname

  node2

 

3.9配置slaves

先把第一行的localhost删掉再输入node1到node3

vim /usr/local/hadoop/etc/hadoop/slaves

node1

node2

node3

3.10把主机上配好的内容分发到从机上

scp -r /usr/local/hadoop root@node2:/usr/local

scp -r /usr/local/hadoop root@node3:/usr/local

3.11格式化主机

只格式化主机node1,从机node2和node3不用格式化,格式化前可以打个快照保存一下,防止前面有地方配错了没查出来。

显示没有命令错误的问题在于环境变量没有配置好,要么去配置环境变量并应用,要么去hadoop下的bin目录下执行,前面加上(./)代表命令在当前目录下

hadoop namenode -format

3.12设置免密钥并授权给三台虚拟机

三台都要把下面的代码输一遍(从rsa到node3都要输一遍)

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub node1

ssh-copy-id -i ~/.ssh/id_rsa.pub node2

ssh-copy-id -i ~/.ssh/id_rsa.pub node3

只展示其中一个

3.13开启主机和从机验证

只在主机(node1)和其中一个从机(例如node2)输入命令,从机之二只开启不输命令,先启动主机再启动从机。

显示没有命令错误的问题在于环境变量没有配置好,要么去配置环境变量并应用,要么去hadoop下的sbin目录下执行,前面加上(./)代表命令在当前目录下

主机:

start-dfs.sh

从机:

start-yarn.sh

关闭同样是先关从机再关主机

从机:

stop-yarn.sh

主机:

stop-dfs.sh

至此,hadoop完全分布式配置完毕,别忘了打个快照保存一下

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: