您现在的位置是:首页 > 数据库 > 大数据

大数据学习第(2)话-Hadoop完全分布式

yuyong2019-02-25大数据

简介上一篇学习了Hadoop的安装以及本地模式、伪分布模式的配置,并在伪分布模式下运行了wordcount的示例,接下来将学习Hadoop完全分布式的配置,本篇教程共采用四台虚拟机,其中三台虚拟机是通过上一篇的伪分布的虚拟机完全克隆而来...

安装环境:

操作系统:CentOS7 x64   *  3

网络连接方式:NAT

Hadoop版本:3.1.2

Java版本:1.8

虚拟机IP规划:

主机类型主机名IP地址
Namenodennode101192.168.111.101
Datanodednode102192.168.111.102
Datanodednode103192.168.111.103
Datanodednode104192.168.111.104

虚拟机环境准备:

1. 修改主机名

#修改主机名
[root@hadoopsrv1 /]# vim /etc/hostname

#修改hosts
[root@hadoopsrv1 /]# vim /etc/hosts

#关闭虚拟机服务器
[root@hadoopsrv1 /]# shutdown now

image.png

2.克隆3台虚拟机

选中要克隆的虚拟机右键→管理→克隆→下一步→虚拟机当前状态→创建完整克隆

image.png

image.png

修改虚拟机名称及所在位置,点击完成,等待克隆完成。

image.png

开启克隆好的虚拟机,修改hostname及网卡配置

#修改主机名为dnode102
[root@hadoopsrv1 ~]# vim /etc/hostname

#修改网卡配置  修改IPADDR的IP为:192..168.111.102 并注释 HWADDR 和 UUID
[root@hadoopsrv1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736

#重启主机
[root@hadoopsrv1 ~]# reboot

#验证网络是否畅通
[root@dnode102 ~]# ping www.baidu.com 
[root@dnode102 ~]# ping 192.168.111.1

#关机
[root@dnode102 ~]# init 0

重复以上步骤,分别克隆出dnode102、dnode103、dnode104。

准备完全分布式主机的ssh:

#删除所有主机上的.ssh目录
rm -rf ~/.ssh/

#在 nnode101 主机生生成密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

#在dnode102、dnode103、dnode104主机下分别创建.ssh目录
mkdir  ~/.ssh

#将nnode101上生成的公钥文件id_rsa.pub复制到另外三台主机上(yes回车,输入目标主机的密码,开始复制)
scp  ~/.ssh/id_rsa.pub  root@nnode101:~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub root@dnode102:~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub root@dnode103:~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub root@dnode104:~/.ssh/authorized_keys

#分别登录验证ssh是否可用
ssh root@dnode102
ssh root@dnode103
ssh root@dnode104

image.png

完全分布式配置文件修改:

#切到指定目录下
cd /opt/hadoop/etc

#复制伪分布模式的目录pesudo命名为full,新目录将作为以后完全分布式的配置目录
cp -r pesudo full

#删除原来hadoop软连接,建立新的软连接
rm  -f  hadoop
ln  -s  full hadoop

#或者修改软连接的指向目录
ln  -snf  full  hadoop

#进入到软连接指定的目录,修改配置文件
cd  hadoop
vim core-site.xml
vim hdfs-site.xml
vim mapred-site.xml
vim yarn-site.xml
vim  workers

core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- HDFS资源路径 -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://nnode101</value>
  </property>
  <!-- Hadoop临时文件存放目录 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/data/tmp</value>
  </property>
</configuration>

hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- 副本数 -->
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <!-- namenode元数据存储路径 -->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/hadoop/data/namenode</value>
  </property>
  <!-- 数据存储路径 -->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/hadoop/data/datanode</value>
  </property>
</configuration>

mapred-site.xml不变

yarn-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- resourceManager所在主机 -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>nnode101</value>
  </property>
  <!-- 在nodemanager中运行mapreduce服务 -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <!-- 指定map的内存大小 -->
  <property>
    <name>mapreduce.map.memory.mb</name>
    <value>1024</value>
  </property>
  <property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx1024M</value>
  </property>
  <!-- 指定reduce task的内存大小,一般地,reduce设置为map的两倍 -->
  <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>2048</value>
  </property>
  <property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx2048M</value>
  </property>
  <!-- 任务每使用1MB物理内存,最多可使用虚拟内存量,默认2.1 -->
  <property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>3</value>
  </property>
</configuration>

workers

dnode102
dnode103
dnode104

配置文件修改好后,将full目录复制到另外三台虚拟机上

scp  -r  full  root@dnode102:/opt/hadoop/etc/
scp  -r  full  root@dnode103:/opt/hadoop/etc/
scp  -r  full  root@dnode104:/opt/hadoop/etc/

修改另外三台机器上/opt/hadoop/etc/目录下的hadoop软连接重新指向full目录

ssh dnode102 ln -snf /opt/hadoop/etc/full /opt/hadoop/etc/hadoop
ssh dnode103 ln -snf /opt/hadoop/etc/full /opt/hadoop/etc/hadoop
ssh dnode104 ln -snf /opt/hadoop/etc/full /opt/hadoop/etc/hadoop

删除临时目录

rm  -rf  /opt/hadoop/data/datanode/*
ssh  dnode102  rm  -rf  /opt/hadoop/data/datanode/*
ssh  dnode103  rm  -rf  /opt/hadoop/data/datanode/*
ssh  dnode104  rm  -rf  /opt/hadoop/data/datanode/*

rm  -rf  /opt/hadoop/data/namenode/*
ssh  dnode102  rm  -rf  /opt/hadoop/data/namenode/*
ssh  dnode103  rm  -rf  /opt/hadoop/data/namenode/*
ssh  dnode104  rm  -rf  /opt/hadoop/data/namenode/*

rm  -rf  /opt/hadoop/data/tmp/*
ssh  dnode102  rm  -rf  /opt/hadoop/data/tmp/*
ssh  dnode103  rm  -rf  /opt/hadoop/data/tmp/*
ssh  dnode104  rm  -rf  /opt/hadoop/data/tmp/*

删除hadoop日志

rm -rf /opt/hadoop/logs/*
ssh  dnode102   rm -rf /opt/hadoop/logs/*
ssh  dnode103  rm -rf /opt/hadoop/logs/*
ssh  dnode104  rm -rf /opt/hadoop/logs/*

格式化文件系统

hadoop namenode -format

启动hadoop服务

start-all.sh

访问http://nnode101:9870页面,检查服务是否运行正常

image.png

jps检查各节点java进程,名称节点存在三个进程,数据节点存在两个进程;

nnode101:NameNode、SecondaryNameNode、ResourceManager

dnode102/dnode103/dnode104:DataNode、NodeManager

执行上一篇的MapReduce任务。

至此,Hadoop的完全分布式就安装配置好了。


很赞哦! ()

文章排行

本栏推荐

栏目更新