Hadoop 3.x|第二天|配置完全分布式运行模式(重点)

scp安全拷贝

scp 可以实现服务器与服务器之间的数据拷贝。

在102上 将102的JDK拷贝到103

scp -r /opt/module/jdk1.8.0_212 yjr@hadoop103:/opt/module

在103上 将102的hadoop拷贝到103

scp -r yjr@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/

在103上 将102的所有拷贝到104

scp -r yjr@hadoop102:/opt/module/* yjr@hadoop104:/opt/module

rsync 远程同步

rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。

在102中,同步102中的hadoop到103

rsync -av hadoop-3.1.3/ atguigu@hadoop103:/opt/module/hadoop-3.1.3/

编写集群分发脚本xsync

作用:把文件循环复制到所有节点的相同目录下
先打印环境变量,发现可以放在/home/username/bin里面,可以全局使用。
在这里插入图片描述

脚本内容

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
 echo Not Enough Arguement!
 exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
 echo ==================== $host ====================
 #3. 遍历所有目录,挨个发送
 for file in $@
 do
 #4. 判断文件是否存在
 if [ -e $file ]
 then
 #5. 获取父目录
 pdir=$(cd -P $(dirname $file); pwd)
 #6. 获取当前文件的名称
 fname=$(basename $file)
 ssh $host "mkdir -p $pdir"
 rsync -av $pdir/$fname $host:$pdir
 else
 echo $file does not exists!
 fi
 done
done

脚本权限

chmod +x xsync

测试

在这里插入图片描述
然后把my_env.sh分发到103,104即可

sudo ./bin/xsync /etc/profile.d/my_env.sh

在这里插入图片描述

SSH无密登陆

生成公钥和私钥

ssh-keygen -t rsa

在这里插入图片描述

拷贝公钥(拷贝的目标可以对它无密登陆)

[yjr@hadoop102 .ssh]$ ssh-copy-id hadoop102
[yjr@hadoop102 .ssh]$ ssh-copy-id hadoop103
[yjr@hadoop102 .ssh]$ ssh-copy-id hadoop104

集群配置

规划

注意两点:

  1. NameNode和SecondaryNameNode不要安装在同一台服务器上。
  2. ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在同一台机器上。
    最后规划如下:在这里插入图片描述

常用的配置文件

3.x
core-site.xml用于配置hadoop集群的特性,它作用于全部进程及客户端
hdfs-site.xml配置hdfs集群的工作属性
mapred-site.xsml配置mapreduce集群的工作属性
yarn-site.xml
workers

2.x
slaves

修改core-site.xml配置文件

文件包含了NameNode主机地址,监听端口等信息,对于伪分布式模型来说,其主机地址为localhost,NameNode默认使用的端口为8020
首先到它的目录

> cd /opt/module/hadoop-3.1.3/etc/hadoop

修改为

<configuration>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <!-- 指定 NameNode 的地址 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop102:8020</value>
        </property>
        <!-- 指定 hadoop 数据的存储目录 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/module/hadoop-3.1.3/data</value>
        </property>
        <!-- 配置 HDFS 网页登录使用的静态用户为 atguigu -->
        <property>
                <name>hadoop.http.staticuser.user</name>
                <value>yjr</value>
        </property>
</configuration>

修改hdfs-site配置文件

用于配置HDFS的相关属性,例如数据块的副本参数,NN和DN用于存储数据的目录。
同样去目录,将其修改为

<configuration>
        <!-- nn web 端访问地址-->
        <property>
                <name>dfs.namenode.http-address</name>
                <value>hadoop102:9870</value>
        </property>
        <!-- 2nn web 端访问地址-->
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop104:9868</value>
        </property>
</configuration>

修改yarn-site.xml配置文件

用于配置YARN进程及YARN相关属性。首先要指明ResourceManager守护进程的主机和监听的端口,对于伪分布式模型来讲。
其主机为localhost,默认端口为8032,其次需要指定ResourceManager使用的scheduler,一及NodeManager的辅助服务。

<configuration>

<!-- Site specific YARN configuration properties -->
        <!-- 指定 MR 走 shuffle -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <!-- 指定 ResourceManager 的地址-->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop103</value>
        </property>
        <!-- 环境变量的继承 -->
        <property>
                <name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
        </property>
</configuration>

修改yarn-site.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
	 <property>
 		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	 </property>
</configuration>

在102上集群分发已经配好的各类配置

xsync /opt/module/hadoop-3.1.3/etc/hadoop/

群起集群

配置workers

说明里面有几个节点就配置几个主机名称。配置完分发
在这里插入图片描述

启动集群

如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode(注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。)

hdfs namenode -format

在这里插入图片描述
初始化成功后,可以发现多了一个data文件夹和log文件夹
在这里插入图片描述

启动集群

sbin/start-dfs.sh

在这里插入图片描述
102:在这里插入图片描述
103:
在这里插入图片描述
104:
在这里插入图片描述

在配置了 ResourceManager 的节点(hadoop103)启动 YARN

在这里插入图片描述
在这里插入图片描述

查看相关网址

Web 端查看 HDFS 的 NameNode
(a)浏览器中输入:http://hadoop102:9870
(b)查看 HDFS 上存储的数据信息
Web 端查看 YARN 的 ResourceManager
(a)浏览器中输入:http://hadoop103:8088
(b)查看 YARN 上运行的 Job 信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值