在处理与YARN相关的操作和集群配置时,诸如将测试文件下载到本地、查看YARN页面、删除与分发文件等众多操作看似零散,实则每一步都至关重要。这些操作的具体步骤和注意事项必须细致掌握。
[atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/atguigu/output/part-r-00000 ./wcoutput/
[atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/atguigu/output
YARN浏览器页面查看的要点
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop101
[atguigu@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[atguigu@hadoop101 hadoop]$ vi mapred-site.xml
mapreduce.framework.name
yarn
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
YARN浏览器页面直观展示了YARN的运行状态,图2-35即为该页面的示例。页面上可能呈现程序的执行进度、资源分配等信息。通过查看此页面,我们能够及时发现运行中的问题。比如,在一家公司的数据处理项目中,通过此页面可以检测到某个复杂数据处理任务是否出现了资源使用超限的情况,进而及时调整任务设置。操作时,需准确解读页面上的各项指标,而不仅仅是忽视所看到的数字。
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
深入理解这些指标,有助于我们在处理复杂数据算法时,更有效地依据页面信息确保任务顺利完成。以算法运算量与YARN页面显示的可用资源为例,这种联系是我们需要在实践中不断探索的。
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input /user/atguigu/output
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*
文件删除的操作与意义
mapreduce.jobhistory.address
hadoop101:10020
mapreduce.jobhistory.webapp.address
hadoop101:19888
在这个体系中,我们必须对文件系统上的文件进行清理。举例来说,为了检查程序过往的运行状况,有时候删除某些文件是不可或缺的准备工作。绝不能随意保留无用的文件。以某公司的大数据挖掘项目为例,先前运行留下的众多日志文件已经占据了大量空间。通过删除这些已无用的文件,我们可以有效释放出更多空间。
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
[atguigu@hadoop101 hadoop-2.7.2]$ jps
若要查看程序过往的运行状况,随意添加或删除信息,很可能会打断数据序列。比如,2019年某机构就曾发生类似错误,误删文件使得历史运行数据无法进行对比分析。因此,在删除文件时必须格外小心,仔细权衡利弊得失。
日志聚集功能的使用
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
604800
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh stop historyserver
程序运行完毕后,会将日志信息上传至HDFS系统。这一做法使得查看程序运行细节变得轻松,便于开发和调试。启用日志聚集功能需遵循一系列步骤,比如在特定文件中添加相应配置。比如,在一家软件开发公司的测试阶段,新功能上线后程序常出现错误,而日志聚集功能能迅速帮助我们找到出错代码的具体行。
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
小型公司往往研发人员不多,因此常常会忽视对该功能的细致设置。但在大型项目或是需要不断迭代的项目中,这种忽视却可能带来灾难性的后果,问题可能难以被找出,产品发布也可能因此推迟。
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/atguigu/output
[atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input /user/atguigu/output
配置文件相关事项
配置文件有两种类型:默认配置和自定义配置。一般情况下,用户无需修改自定义配置文件,除非他们打算调整默认配置值。比如,core-site.xml、hdfs-site.xml、yarn-site.xml等四个配置文件都位于$/etc/路径下。企业会根据项目需求对配置进行修改。例如,在一家直播公司处理大数据订单的集群配置中,就需要根据订单数据量来调整配置文件中的内存分配设置。
在初学者群体中,配置文件的调整往往过于随意,甚至有人在不理解每一步操作意义的情况下就进行修改。这种情况可能会引发集群崩溃或运行效率降低等严重后果。例如,某大学实验室的学生因随意修改配置文件,导致整个集群在三天内无法正常运行。
文件分发操作和注意点
[atguigu@hadoop100 local]$ su root
密码:
[root@hadoop100 ~]$ cd /usr/local/bin
[root@hadoop100 bin]$ touch xsync
[root@hadoop100 bin]$ vi xsync
文件分发操作需将文件根据需求反复复制到各个集群节点的指定目录。此操作有固定的命令格式,例如:命令、选项、参数、要复制的文件路径/名称、目标用户@主机:目的路径/名称。比如,若要在/usr/bin目录下创建xsync文件,需编写代码并遵循特定模式进行文件分发。例如,将JDK或环境变量文件分发到集群时,存放文件的目录不同,其使用范围也会不同,如放置于/home/bin目录下,则仅限当前用户使用。
在集群规模扩大或节点迁移过程中,若文件分发出现失误,部分节点服务启动可能会失败。以某云计算公司的集群迁移项目为例,由于文件分发时的权限设置出现了问题,新节点上的部分服务便无法正常运作。
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=101; host<104; host++)); do
echo ------------------- hadoop$host --------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
[root@hadoop100 bin]$ chmod 777 xsync
时间服务器配置
[root@hadoop100 module]$ xsync hadoop-2.7.2
root用户需负责时间服务器的配置。存在两种操作:一是修改2,比如在集群或局域网内不依赖互联网时间;二是添加3,比如节点断网时,仍以本地时间为准同步集群内其他节点。在企业集群办公中,时间同步问题可能引发数据录入时间戳混乱等问题。2017年,某金融公司就因时间服务器配置失误,导致部分数据时间记录不准确,交易顺序无法核实。
[root@hadoop100 module]# xsync jdk1.8.0_144/
在进行这些操作的过程中,大家是否遇到过特别难以解决的问题?期待大家点赞、转发文章,并在评论区热烈讨论这个问题。
[root@hadoop100 module]# xsync /etc/profile
[root@hadoop100 hadoop]# xsync /usr/local/bin/xsync