7. Hadoop完全分布式运行模式

Hadoop完全分布式运行模式

  1. 准备3台客户机(关闭防火墙、静态IP、主机名称)
  2. 安装JDK
  3. 配置环境变量
  4. 安装Hadoop
  5. 配置环境变量
  6. 配置集群
  7. 单点启动
  8. 配置ssh
  9. 群起并测试集群

在前面的已经配置好三台客户机(通过scp、rsync、xsync配置),所以直接配置集群,然后通过xsync集群分发脚本把配置分发到另外两台客户机上面就可以了。

1. 集群部署规划
hadoophadoop101hadoop102
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
YARNNodeManagerResourceManager NodeManagerNodeManager
2. 配置集群(要烂熟于心)
2.1 核心配置文件core-site.xml

配置HDFSNameNode----fs.defaultFS

配置Hadoop运行时产生文件的存储目录(DataNode)----hadoop.tmp.dir

<!-- 指定HDFS中NameNode的地址 -->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
2.2 HDFS配置文件
hadoop-env.sh

配置这个文件的时候其实在伪分布式运行模式下已经配置好了,现在查看一下配置是否正确

在这里插入图片描述

hdfs-site.xml

配置HDFS副本数量(默认是三个)----dfs.replication

指定Hadoop辅助名称节点主机配置(就是SecondaryNameNode)----dfs.namenode.secondary.http-address

<!-- 指定HDFS副本的数量 -->
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop102:50090</value>
</property>
2.3 Yarn的配置文件
yarn-env.sh

配置这个文件的时候其实在伪分布式运行模式下已经配置好了,现在查看一下配置是否正确

在这里插入图片描述

yarn-site.xml

Reducer获取数据的方式----yarn.nodemanager.aux-services

指定YARN的ResourceManager的地址----yarn.resourcemanager.hostname

配置日志聚集功能使能----yarn.log-aggregation-enable

日志保留时间设置----yarn.log-aggregation.retain-seconds

<!-- Reducer获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop101</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>
2.4 MapReduce配置文件
mapred-env.sh

配置这个文件的时候其实在伪分布式运行模式下已经配置好了,现在查看一下配置是否正确

在这里插入图片描述

mapred-site.xml

指定MR运行在YARN上----mapreduce.framework.name

历史服务器端地址----mapreduce.jobhistory.address

历史服务器web端地址---mapreduce.jobhistory.webapp.address

<!-- 指定MR运行在YARN上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop:19888</value>
</property>
2.5 集群上分发配置好的Hadoop配置文件

tips:已经提前把将xsync从/home/atguigu/bin目录下移动到/usr/local/bin目录下

在这里插入图片描述

#在/opt/modulehadoop-2.7.2/etc/目录下,执行以下命令
xsync hadoop/
3. 集群单点启动
#如果集群是第一次启动,需要格式化NameNode
hadoop namenode -format
#在hadoop上启动NameNode
sbin/hadoop-daemon.sh start namenode
#分别在hadoop、hadoop101、hadoop102上启动DataNode
sbin/hadoop-daemon.sh start datanode

思考:每次都一个一个节点启动,如果节点数增加到1000个怎么办?

4. SSH无密登录配置

群起集群做准备

ssh IP地址/IP映射
#在hadoop上使用ssh,连接hadoop101
ssh hadoop101
SSH免密登录原理

在这里插入图片描述

#在hadoop的atguigu上执行以下命令,进入到atguigu的家目录,如果是root用户,则进入的是/root 目录
cd ~

#执行下面的命令,会出现隐藏目录.ssh,进入到.ssh目录
ls -la

#执行下面的命令,然后敲(三个回车)会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
ssh-keygen -t rsa

#根据上面的原理,我们需要将公钥拷贝到要免密登录的目标机器上(hadoop本机也需要配置)
ssh-copy-id hadoop
ssh-copy-id hadoop101
ssh-copy-id hadoop102

还需要在hadoop上采用root账号,配置一下无密登录到hadoop、hadoop101、hadoop102;以及在hadoop101上采用atguigu账号配置一下无密登录到hadoop、hadoop101、hadoop102服务器上(因为ResourceManager在hadoop101机器上)。

.ssh文件夹下的文件功能解释
known_hosts记录ssh访问过计算机的公钥(public key)
id_rsa生成的私钥
id_rsa.pub生成的公钥
authorized_keys存放授权过得无密登录服务器公钥
5. 群起集群
5.1配置slaves
vi /opt/module/hadoop-2.7.2/etc/hadoop/slaves

#在该文件中增加如下内容
#注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
hadoop
hadoop101
hadoop102
#同步所有节点配置文件
xsync slaves
5.2 启动集群

如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)

#格式化NameNode
bin/hdfs namenode -format	
启动HDFS
#在hadoop机器上的目录结构中
sbin/start-dfs.sh
启动Yarn
#在hadoop101机器上的目录结构中
sbin/start-yarn.sh
#注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。

Web端查看SecondaryNameNode http://hadoop102:50090/status.html

在这里插入图片描述

5.3 集群的基本测试
上传文件到集群
#在hdfs中创建以下目录
hdfs dfs -mkdir -p /user/atguigu/input

#上传小文件wc.input
hdfs dfs -put wcinput/wc.input /user/atguigu/input

#上传大文件hadoop-2.7.2.tar.gz
bin/hadoop fs -put /opt/software/hadoop-2.7.2.tar.gz  /user/atguigu/input

在这里插入图片描述

上传文件后查看文件存放在什么位置
#上传文件后查看文件存放的位置
/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-400670385-192.168.68.136-1592987736870/current/finalized/subdir0/subdir0

在这里插入图片描述

6. 集群启动/停止方式总结
6.1 各个服务组件逐一启动/停止
#分别启动/停止HDFS组件
sbin/hadoop-daemon.sh  start/stop  namenode/datanode/secondarynamenode
#启动/停止YARN
sbin/yarn-daemon.sh  start/stop  resourcemanager/nodemanager
6.2 各个模块分开启动/停止(配置ssh是前提)常用
#整体启动/停止HDFS
start-dfs.sh
stop-dfs.sh
#整体启动/停止YARN
start-yarn.sh 
stop-yarn.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值