cdh5 只有一台nodemanager跑作业,求高手

查看数: 43635 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-4-8 14:48

正文摘要:

使用三台虚拟机搭建的hadoop集群,一主两从。 使用cloudera的版本跑作业,只有一台从机器跑作业,另一台从机器作为ApplicationMater,没有跑作业,导致作业执行很慢。 而apache版本的就没有这个问题,两台机器都 ...

回复

nextuser 发表于 2015-4-9 12:18:57
wjhdtx 发表于 2015-4-9 08:15
是 ./bin/hdfsnamenode –format 还是 datanode -format,大家通过cm安装完cdh,还得手动格式化?

/opt/hadoop/bin/hadoop namenode -format
wjhdtx 发表于 2015-4-9 08:15:22
本帖最后由 wjhdtx 于 2015-4-9 08:55 编辑
wjhdtx 发表于 2015-4-8 17:29
datanode -format 这个命令好像没有执行吧,都是在cm的web ui上操作。

是 ./bin/hdfsnamenode –format 还是 datanode -format,大家通过cm安装完cdh,还得手动格式化?
wjhdtx 发表于 2015-4-8 17:29:38
yongjian3311 发表于 2015-4-8 16:11
1. 之前能成功启动整个集群吗?
2. 会不会是因为datanode -format 之后生成的任务ID跟子节点的版本不一样 ...

datanode -format 这个命令好像没有执行吧,都是在cm的web ui上操作。



另外,配了时间同步,也没用,在那一台跑作业的机器上,也只有map任务在跑,即只有一个YarnChild进程。

之前用apache hadoop2.5.1上,两台nodemanager上跑了几个YarnChild进程。


不知道cdh在哪设置了上限吗?醉了

点评

hyj
cloudera只是对hadoop的封装,命令都是一样的,安装的时候会有master选择,直接在Linux上执行格式化即可  发表于 2015-4-8 22:43
langke93 发表于 2015-4-8 16:20:20
本帖最后由 pig2 于 2015-4-8 18:57 编辑
wjhdtx 发表于 2015-4-8 16:17
压缩、内存、cpu,以及其他map和reduce执行过程中的相关参数,了解mapreduce过程,然后调优,比如mapredu ...




试试这些吧:

 (1) 默认情况下,各个节点的负载不均衡(任务数目不同),有的节点很多任务在跑,有的没有任务,怎样让各个节点任务数目尽可能均衡呢?

  答: 默认情况下,资源调度器处于批调度模式下,即一个心跳会尽可能多的分配任务,这样,优先发送心跳过来的节点将会把任务领光(前提:任务数目远小于集群可以同时运行的任务数量),为了避免该情况发生,可以按照以下说明配置参数:

  如果采用的是fair scheduler,可在yarn-site.xml中,将参数yarn.scheduler.fair.max.assign设置为1(默认是-1,)

  如果采用的是capacity scheduler(默认调度器),则不能配置,目前该调度器不带负载均衡之类的功能。

  当然,从hadoop集群利用率角度看,该问题不算问题,因为一般情况下,用户任务数目要远远大于集群的并发处理能力的,也就是说,通常情况下,集群时刻处于忙碌状态,没有节点一直空闲着。

  (2)某个节点上任务数目太多,资源利用率太高,怎么控制一个节点上的任务数目?

  答:一个节点上运行的任务数目主要由两个因素决定,一个是NodeManager可使用的资源总量,一个是单个任务的资源需求量,比如一个 NodeManager上可用资源为8 GB内存,8 cpu,单个任务资源需求量为1 GB内存,1cpu,则该节点最多运行8个任务。

  NodeManager上可用资源是由管理员在配置文件yarn-site.xml中配置的,相关参数如下:

  yarn.nodemanager.resource.memory-mb:总的可用物理内存量,默认是8096

  yarn.nodemanager.resource.cpu-vcores:总的可用CPU数目,默认是8

  对于MapReduce而言,每个作业的任务资源量可通过以下参数设置:

  mapreduce.map.memory.mb:物理内存量,默认是1024

  mapreduce.map.cpu.vcores:CPU数目,默认是1

  注:以上这些配置属性的详细介绍可参考文章:Hadoop YARN配置参数剖析(1)—RM与NM相关参数。

  默认情况,各个调度器只会对内存资源进行调度,不会考虑CPU资源,你需要在调度器配置文件中进行相关设置,具体可参考文章:Hadoop YARN配置参数剖析(4)—Fair Scheduler相关参数和Hadoop YARN配置参数剖析(5)—Capacity Scheduler相关参数。


Hadoop YARN常见问题以及解决方案
wjhdtx 发表于 2015-4-8 16:17:49
langke93 发表于 2015-4-8 16:08
楼主可以说说怎么优化的,内存是怎么优化的,是否设置过边界测试。
可以设置足够小(比方接近为0),然后 ...

压缩、内存、cpu,以及其他map和reduce执行过程中的相关参数,了解mapreduce过程,然后调优,比如mapreduce.task.io.sort.mb、mapreduce.tasktracker.http.threads、mapreduce.reduce.shuffle.parallelcopies等等。
wjhdtx 发表于 2015-4-8 16:15:48
yongjian3311 发表于 2015-4-8 16:11
1. 之前能成功启动整个集群吗?
2. 会不会是因为datanode -format 之后生成的任务ID跟子节点的版本不一样 ...

集群没问题,都启动了,作业也跑过。
yongjian3311 发表于 2015-4-8 16:11:40
1. 之前能成功启动整个集群吗?
2. 会不会是因为datanode -format 之后生成的任务ID跟子节点的版本不一样所以关联不上启动不成功?
langke93 发表于 2015-4-8 16:08:12
楼主可以说说怎么优化的,内存是怎么优化的,是否设置过边界测试。
可以设置足够小(比方接近为0),然后在慢慢调整,相信能有有收获
关闭

推荐上一条 /2 下一条