自学大数据第5天~hadoop集群搭建(二)

在这里插入图片描述

配置集群/分布式环境

1,修改文件workers

需要把所有节点数据节点的主机名写入该文件,每行一个,默认localhost(即把本机(namenode也作为数据节点),所以我们在伪分布式是没有配置该文件;
在进行分布式时需要删掉localhost(又可能文件中没有该配置,没有那就不用删了,配置一下数据节点

在这里插入图片描述

在这里插入图片描述

如果没有找到workers文件,请使用whereis 命令查找,呵呵

2,修改core-site.xml

vi /usr/local/hadoop-3.3.4/etc/hadoop/core-site.xml

在这里插入图片描述

3,修改hdfs-site.xml文件

对于hadoop的分布式文件系统hdfs来讲,一般都是采用冗余存储的,冗余通常为3,也就是说,一份数据有三分副本,所以存1G的数据需要3G的容量;

在这里插入图片描述

4,修改marped-site.xml文件

将解压后的hadoop下的etc/hadoop/marped-site.xml 修改;
在这里插入图片描述

5,修改yarn-site.xml文件

在mapred-site.xml同文件夹下修改yarn-site.xml文件
修改后的文件内容如下
在这里插入图片描述

配置完毕之后,需要将master节点上的hadoop-3.3.4文件夹复制到各个节点之上;

注意:在这里要先删除之前运行hadoop生成的临时文件;

[root@master hadoop-3.3.4]# rm -rf tmp/
[root@master hadoop-3.3.4]# rm -rf logs/
[root@master hadoop-3.3.4]# cd ../ 
[root@master local]#rm -rf hadoophadoop-3.3.4.tar.gz

将文件压缩,方便传输

tar -zcf hadoop-3.3.4.tar.gz  ./

压缩时间还是挺长的
在这里插入图片描述将slave*节点上的临时文件也给删除掉

[hadoop@slave3 .ssh]$ su root
Password: 
[root@slave3 .ssh]# cd /usr/local/hadoop-3.3.4/
[root@slave3 hadoop-3.3.4]# rm -rf tmp
[root@slave3 hadoop-3.3.4]# rm -rf logs
[root@slave3 hadoop-3.3.4]# cd ../
[root@slave3 local]# rm -rf hadoop-3.3.4.tar.gz 
#这里hadoop-3.3.4文件夹也要删除,因为要用master节点配置好的
[root@slave3 local]# rm -rf hadoop-3.3.4.tar.gz 
[root@slave3 local]# rm -rf hadoop-3.3.4
[root@slave3 local]# ls

从master节点传输hadoop的压缩文件传输到各个节点上

[hadoop@master local]$ scp hadoop-3.3.4.tar.gz hadoop@slave1:/usr/local
scp: /usr/local/hadoop-3.3.4.tar.gz: Permission denied

被拒绝了…
我的猜测是文件的权限不够,
于是修改文件所属为hadoop,授予文件700权限,还是不可以;

这说名不是源端文件问题,只能是目标端权限问题;

/usr/local文件权限不能随便改,于是我在local下建了一个 临时文件夹,传输完成后,将文件夹移来;

在这里插入图片描述
master节点执行scp操作:
在这里插入图片描述
操作成功,其他节点也一样操作即可~略
在这里插入图片描述

下面在master节点上初始化namenode和datenode节点所需要的文件夹

hdfs namenode -format

注意:首次启动hadoop时需要格式化namenode和datanode

在这里插入图片描述

hadoop的启动

启动hdfs 系统

start-dfs.sh

正常启动如下:
在这里插入图片描述

启动yarn~管理工具

start-yarn.sh

启动了资源节点管理以及节点管理
在这里插入图片描述

启动守护进程

[hadoop@master hadoop]$ mr-jobhistory-daemon.sh start historyserver
WARNING: Use of this script to start the MR JobHistory daemon is deprecated.
WARNING: Attempting to execute replacement "mapred --daemon start" instead.

此处提示该命令被废弃了(这个跟hadoop版本有关,按照提示,使用mapred --daemon start 代替上述命令

[hadoop@master sbin]$ mapred --daemon start historyserver
[hadoop@master sbin]$ 

查看启动的进程:

jps

在这里插入图片描述

过一会守护进程就退出了

另一个我们看一下最新的mapred --daemon 的命令:

该命令后只能跟start stop status
在这里插入图片描述
浏览器输入master节点IP:配置的端口号

本次配置的地址如下:
http://192.168.8.135:9001/
页面展示如下
在这里插入图片描述

执行分布式实例

创建HDFS分布式文件系统的用户目录

执行如下命令:

hdfs dfs -mkdir -p /usr/hadoop

HDFS中创建一个input目录,并把 hadoop配置文件复制到input目录中(整个过程就如之前伪分布式操作的一样)

还是不一样的,首先得学习一下hdfs系统的命令
之前不是建立一个 /usr/hadoop文件夹了吗,

在这里插入图片描述明白这点之后,再去执行hadoop命令

额发生了点小故障,待我瞧瞧如何解决;
在这里插入图片描述

2023-03-08 05:29:42,288 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at master/192.168.8.135:8032
2023-03-08 05:29:43,986 INFO ipc.Client: Retrying connect to server: master/192.168.8.135:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

说是链接8032端口超时,我们看一下哪里配置了8032端口(也许是该端口没有开放的缘故吧)

经过几天的查找资料,原来是网络配置上的连接方式不对,将所有节点的连接方式改为桥接模式

在这里插入图片描述每个节点的mac地址要不一样
在这里插入图片描述接着将桥接的网卡设置为本机的网卡(本次设置的为wifi网卡)
在这里插入图片描述其他节点也一样的操作;

随后重启虚拟机,修改节点的ip地址:

vi /etc/sysconfig/network-scripts/ifcfg-ens160

在这里插入图片描述然后重启虚拟机(其他节点也是一样操作)
重启后ping一下主机ip,看能否ping通,能ping通说明配置正确
在这里插入图片描述

最后各个节点的ip就改成了下面这般模样:
修改之后的具体配置如下

节点节点名ip
mastermaster192.168.126.135
slave1slave1192.168.126.136
slave2slave2192.168.126.137
slave3slave3192.168.126.138

ping 一下各个节点
(看前面文章的兄弟,在这里说一下抱歉,刚入门)

下面继续;
1,删除临时文件 tmp(所有节点上都要删除)

在这里插入图片描述

2,在master节点上重新格式化一下 hdfs 配置
在这里插入图片描述
3.启动hadoop组件
在这里插入图片描述启动之后查看 各个节点情况hdfs dfsadmin -report
在这里插入图片描述
接下来就是输入hadoop命令了:

[hadoop@master sbin]$ hdfs dfs -mkdir -p /user/hadoop
[hadoop@master sbin]$ hdfs dfs -mkdir input
[hadoop@master sbin]$ hdfs dfs -put /usr/local/hadoop-3.3.4/etc/hadoop/*.xml input

注意:建立层级文件夹时要有 -p,否则会失败

执行hadoop运行模板(其实就是一个写好的jar文件)

如果配置没有问题的话,可以看到mr的运行结果;
在这里插入图片描述

关闭集群

在这里插入图片描述或者使用stop-all.sh命令

问题排查

如果运行时出现错误,

  1. 检查一下各个需要的进程是否启动:

在这里插入图片描述

  1. 如果有些进程没有启动,那么可以查看日志去寻找错误

在这里插入图片描述

  1. 查看日志文件
    在这里插入图片描述

在这里插入图片描述

  1. 可能是jdk版本不对导致的有些进程无法正常启动

比如resourceManager进程启动时有些类无法初始化
建议使用jdk8

更新于 2023.03.11 14:14

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeMartain

祝:生活蒸蒸日上!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值