赞
踩
此处一共设置三台服务器用于hadoop完全分布式搭建
设置为:
192.168.31.112 hadoop01
192.168.31.227 hadoop02
192.168.31.180 hadoop03
以192.168.31.112作为namenode为例
同伪分布式搭建步骤基本类似,多出一个时间同步
A.工作环境准备(三台主机都修改):
工具:
JDK:从oracle官网下载
Hadoop:Apache Hadoop官网下载
1.配置IP地址
一般情况下在安装虚拟机的时候会打开网络自动分配IP
如果地址变更了,需要更改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
2.修改hostname主机名
几种方法:
1)使用命令
hostnamectl set-hostname hadoop01
重启后,可以通过/etc/hostname 查看修改结果
2)修改配置文件
/etc/hostname
直接写入hadoop01
3)修改配置文件(centos7可能不生效)
/etc/sysconfig/network
HOSTNAME=hadoop01
重新启动主机,使主机名修改生效
重启命令:reboot、init 6
3.主机映射
/etc/hosts
192.168.31.112 hadoop01
192.168.31.227 hadoop02
192.168.31.180 hadoop03
将hadoop01的hosts修改文件发送到其余两台主机
scp /etc/hosts hadoop02:/etc/
scp /etc/hosts hadoop03:/etc/
4.关闭防火墙和selinux
开机禁用 : systemctl disable firewalld
关闭服务:systemctl stop firewalld.service
禁用selinux
/etc/selinux/config
SELINUX=disabled
5.修改启动级别为3,多用户级别
命令修改:
systemctl set-default multi-user.target
配置文件修改(centos7不支持):
/etc/inittab
6.新建普通用户hadoop.并添加sudo权限
useradd hadoop #新建用户
passwd hadoop #修改密码
sudo权限 /etc/sudoers
#Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL #新添加hadoop
7.配置免密登录
三台主机都生成免登陆秘钥,实现相互免登
ssh-keygen #生成秘钥
ssh-copy-id hadoop01 #将公钥发送给主机名为hadoop01的服务器
ssh-copy-id hadoop02 #将公钥发送给主机名为hadoop02的服务器
ssh-copy-id hadoop03 #将公钥发送给主机名为hadoop03的服务器
8.配置JDK
如果系统自带JDK的rpm,则卸载系统的
rpm -qa|grep jdk #查找
rpm -e 包名 --nodeps #卸载
存放位置:/opt/jdk1.8.0_281/
配置JDK环境变量:/etc/profile
export JAVA_HOME=/opt/jdk1.8.0_281
export PATH=$PATH:$JAVA_HOME/bin
#配置生效
source /etc/profile
9.时间同步
1)同步某一权威时间
yum install ntpdate
ntpdate time.ntp.org #同步一个统一的时间(阿里的都可以)
2)统一设置时间
date -s "20140225 20:16:00"
B.修改hadoop配置文件(只修改hadoop01,scp远程复制到其他主机):
主机节点分布:
1.配置hadoop环境变量
/etc/profile
export HADOOP_HOME=/home/hadoop/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#配置生效
source /etc/profile
环境变量远程同步复制到从节点
scp /etc/profilehadoop02:/etc/
scp /etc/profilehadoop03:/etc/
2.修改配置文件:
位置:安装目录(/home/hadoop/hadoop-3.3.0/etc/hadoop):
hadoop-env.sh修改JAVA_HOME
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/opt/jdk1.8.0_281
core-site.xml在configuration添加如下配置
此处需要设置hdfs主节点
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata/tmp</value>
</property>
hdfs-site.xml中configuration添加配置
设置副本数量、namenode数据存储目录、datanode数据存储目录、secondary访问地址(即指定secondarynamenode)
<property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/data/hadoopdata/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/data/hadoopdata/datanode</value> </property> <property> <name>dfs.namenode.secondary.http-address</name>#此处与之前版本写法不一样 <value>hadoop02:50090</value> </property>
yarn-site.xml中configuration添加配置
指定hadoop03为resourcemanager主节点
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop03</value>
</property>
mapred-site.xml中configuration添加配置
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
workers添加从节点
[hadoop@hadoop02 hadoop]$ cat workers
hadoop01
hadoop02
hadoop03
(最新版本中没有slaves文件)
3.namenode格式化
执行命令:
hdfs namenode -format #新版本格式化命令
hadoop namenode -format #历史版本格式化命令
启动的命令:
/sbin:
start-dfs.sh
start-yarn.sh
不建议使用这种:
start-all.sh
stop-all.sh
4.验证
jps命令查看启动进程
此处要与之前计划的主机节点一致
[hadoop@hadoop01 sbin]$ jps 2450 Jps 1795 DataNode 2246 ResourceManager 1959 SecondaryNameNode 1691 NameNode 2350 NodeManager hadoop@hadoop02 hadoop]$ jps 19169 Jps 18754 DataNode 18834 SecondaryNameNode 18957 NodeManager [hadoop@hadoop03 sbin]$ jps 19730 NodeManager 19428 DataNode 19604 ResourceManager 20088 Jps
hdfs相关进程:NameNode、SecondaryNameNode、DataNode
yarn:相关进程ResourceManager、NodeManager
登录网址验证:
本地主机最好配置hosts,不用麻烦输入ip
192.168.31.112 hadoop01
192.168.31.227 hadoop02
192.168.31.180 hadoop03
yarn
ResourceManager :http://hadoop03:8088/
hdfs
NameNode - http://hadoop01:9870/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。