hadoopYarn单节点性能调优

xiozqbni  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(286)

我在我的ubuntuvm上安装了hadoop2.5.2单模,即:4核,每核3ghz;4g内存。这个虚拟机不是为了生产,只是为了演示和学习。
然后,我使用python编写了一个简单的map-reduce应用程序,并使用这个应用程序处理49个xml。所有这些xml文件都很小,每一个都有数百行。所以,我期待一个快速的过程。但是,令我吃惊的是,完成这项工作花了20多分钟(工作的输出是正确的)。以下是输出指标:
2015年12月14日19:37:55 info client.rmproxy:连接到resourcemanager,地址为/0.0.0.0:8032
2015年12月14日19:37:57 info client.rmproxy:连接到resourcemanager,地址为/0.0.0.0:8032
14/12/15 19:38:03 info mapred.fileinputformat:要处理的总输入路径:49
14/12/15 19:38:06 info mapreduce.jobsubmitter:数量splits:49
14/12/15 19:38:08 info mapreduce.jobsubmitter:提交作业令牌:job\u 1418368500264\u 0005
2015年12月14日19:38:10 info impl.yarclientimpl:已提交申请\u 1418368500264 \u 0005
14/12/15 19:38:10 info mapreduce.job:正在运行作业:作业\u 1418368500264 \u 0005
14/12/15 19:38:59 info mapreduce.job:job job\u 1418368500264\u 0005在uber模式下运行:false
14/12/15 19:38:59 info mapreduce.job:Map0%减少0%
14/12/15 19:39:42 info mapreduce.job:Map2%减少0%
14/12/15 19:40:05 info mapreduce.job:Map4%减少0%
14/12/15 19:40:28 info mapreduce.job:Map6%减少0%
14/12/15 19:40:49 info mapreduce.job:Map8%减少0%
14/12/15 19:41:10 info mapreduce.job:Map10%减少0%
14/12/15 19:41:29 info mapreduce.job:Map12%减少0%
14/12/15 19:41:50 info mapreduce.job:Map14%减少0%
14/12/15 19:42:08 info mapreduce.job:Map16%减少0%
14/12/15 19:42:28 info mapreduce.job:Map18%减少0%
14/12/15 19:42:49 info mapreduce.job:Map20%减少0%
14/12/15 19:43:08 info mapreduce.job:Map22%减少0%
14/12/15 19:43:28 info mapreduce.job:Map24%减少0%
14/12/15 19:43:48 info mapreduce.job:Map27%减少0%
14/12/15 19:44:09 info mapreduce.job:Map29%减少0%
14/12/15 19:44:29 info mapreduce.job:Map31%减少0%
14/12/15 19:44:49 info mapreduce.job:Map33%减少0%
14/12/15 19:45:09 info mapreduce.job:Map35%减少0%
14/12/15 19:45:28 info mapreduce.job:Map37%减少0%
14/12/15 19:45:49 info mapreduce.job:Map39%减少0%
14/12/15 19:46:09 info mapreduce.job:Map41%减少0%
14/12/15 19:46:29 info mapreduce.job:Map43%减少0%
14/12/15 19:46:49 info mapreduce.job:Map45%减少0%
14/12/15 19:47:09 info mapreduce.job:Map47%减少0%
14/12/15 19:47:29 info mapreduce.job:Map49%减少0%
14/12/15 19:47:49 info mapreduce.job:Map51%减少0%
14/12/15 19:48:08 info mapreduce.job:Map53%减少0%
14/12/15 19:48:28 info mapreduce.job:Map55%减少0%
14/12/15 19:48:48 info mapreduce.job:Map57%减少0%
14/12/15 19:49:09 info mapreduce.job:Map59%减少0%
14/12/15 19:49:29 info mapreduce.job:Map61%减少0%
14/12/15 19:49:55 info mapreduce.job:Map63%减少0%
14/12/15 19:50:23 info mapreduce.job:Map65%减少0%
14/12/15 19:50:53 info mapreduce.job:Map67%减少0%
14/12/15 19:51:22 info mapreduce.job:Map69%减少0%
14/12/15 19:51:50 info mapreduce.job:Map71%减少0%
14/12/15 19:52:18 info mapreduce.job:Map73%减少0%
14/12/15 19:52:48 info mapreduce.job:Map76%减少0%
14/12/15 19:53:18 info mapreduce.job:Map78%减少0%
14/12/15 19:53:48 info mapreduce.job:Map80%减少0%
14/12/15 19:54:18 info mapreduce.job:Map82%减少0%
14/12/15 19:54:48 info mapreduce.job:Map84%减少0%
14/12/15 19:55:19 info mapreduce.job:Map86%减少0%
14/12/15 19:55:48 info mapreduce.job:Map88%减少0%
14/12/15 19:56:16 info mapreduce.job:Map90%减少0%
14/12/15 19:56:44 info mapreduce.job:Map92%减少0%
14/12/15 19:57:14 info mapreduce.job:Map94%减少0%
14/12/15 19:57:45 info mapreduce.job:Map96%减少0%
14/12/15 19:58:15 info mapreduce.job:Map98%减少0%
14/12/15 19:58:46 info mapreduce.job:Map100%减少0%
14/12/15 19:59:20 info mapreduce.job:Map100%减少100%
14/12/15 19:59:28 info mapreduce.job:作业\u 1418368500264 \u 0005成功完成
14/12/15 19:59:30 info mapreduce.job:计数器:49
文件系统计数器
文件:读取的字节数=17856
文件:写入的字节数=5086434
文件:读取操作数=0
文件:大读取操作数=0
文件:写入操作数=0
hdfs:读取的字节数=499030
hdfs:写入的字节数=10049
hdfs:读取操作数=150
hdfs:大读取操作数=0
hdfs:写入操作数=2
作业计数器
启动的Map任务=49
已启动任务=1
数据本地Map任务=49
所有Map在已占用插槽中花费的总时间(ms)=8854232
所有服务器在占用的插槽中花费的总时间(ms)=284672
所有map任务花费的总时间(毫秒)=1106779
所有reduce任务花费的总时间(ms)=35584
所有Map任务占用的vcore总秒数=1106779
所有reduce任务占用的vcore总秒数=35584
所有Map任务占用的总兆字节秒数=1133341696
所有reduce任务占用的总兆字节秒数=36438016
map-reduce框架
Map输入记录=9352
Map输出记录=296
Map输出字节=17258
Map输出物化字节数=18144
输入拆分字节=6772
合并输入记录=0
合并输出记录=0
减少输入组=53
减少无序字节数=18144
减少输入记录=296
减少输出记录=52
溢出记录=592
无序贴图=49
失败的洗牌=0
合并Map输出=49
gc运行时间(ms)=33590
cpu时间(毫秒)=191390
物理内存(字节)快照=13738057728
虚拟内存(字节)快照=66425016320
提交的堆使用总量(字节)=10799808512
洗牌错误
错误的\u id=0
连接=0
io\ U错误=0
错误的\u长度=0
错误的Map=0
错误的\u reduce=0
文件输入格式计数器
读取字节数=492258
文件输出格式计数器
写入字节数=10049
14/12/15 19:59:30 info streaming.streamjob:输出目录:/data\u output/sb50projs\u 1\u output
作为hadoop的新手,对于这种疯狂不合理的表现,我有几个问题:
如何配置hadoop/yarn/mapreduce使整个环境更方便试用?
我知道hadoop是为大数据和大文件设计的。但对于试用环境,我的文件很小,数据非常有限,我应该更改哪些默认配置项?我已经将hdfs-site.xml的“dfs.blocksize”更改为一个较小的值,以匹配我的小文件,但似乎没有大的增强。我知道yarn-site.xml和mapred-site.xml中有一些jvm配置项,但我不确定如何调整它们。
如何读取hadoop日志
在logs文件夹下,nodemanager/resourcemanager/namenode/datanode有单独的日志文件。我试着阅读这些文件来理解这20分钟是如何度过的,但对我这样的新手来说并不容易。所以我想知道是否有任何工具/ui可以帮助我分析日志。
基本性能调整工具
事实上,我在谷歌上搜索了这个问题,得到了一堆名字,比如ganglia/nagios/vaidya/ambari。我想知道,哪种工具是最好的分析问题的工具,比如,“为什么要花20分钟来做这么简单的工作?”。
大量hadoop进程
即使hadoop上没有运行任何作业,我在vm上也发现了大约100个hadoop进程,如下所示(我使用htop,并按内存对结果排序)。这对hadoop正常吗?或者我对某些环境配置不正确?

sy5wg1nm

sy5wg1nm1#

你不需要改变什么。
默认配置是针对小型环境进行的。如果你种植环境,你可以改变它。蚂蚁有很多参数和很多时间进行微调。
但我承认你的配置比平时测试的要小。
你必须阅读的日志不是服务日志,而是作业日志。在/var/log/hadoop/containers中找到它们/
如果您想更好地查看您的mr,请使用上的web界面 http://127.0.0.1:8088/ . 你将实时看到你的工作进展。
imo,basic tuning=使用hadoop web界面。本地有很多可用的。
我想你找到你的问题了。这可能是正常的,也可能不是。
但很快,您就可以使用所有可用的内存:
可用内存在yarn-site.xml中设置:yarn.nodemanager.resource.memory-mb(默认为8 gio)。
任务的内存由属性mapreduce.map.memory.mb(默认为1536 mio)在mapred-site.xml或任务本身中定义
所以:
更改nodemanager的可用内存(改为3gio,以便让系统使用1gio)
更改hadoop服务可用的内存(-xmx in hadoop-env.sh,yarn env.sh)(系统+每个hadoop服务(namenode/datanode/ressourcemanager/nodemanager)<1 gio)。
更改Map任务的内存(5.12亿?)。它越小,可以在同一时间执行更多的任务。
将yarn-site.xml中的yarn.scheduler.minimum-allocation-mb更改为512,以允许Map器的内存小于1 gio。
我希望这对你有帮助。

相关问题