wjhdtx 发表于 2015-4-9 08:15 /opt/hadoop/bin/hadoop namenode -format |
本帖最后由 wjhdtx 于 2015-4-9 08:55 编辑 wjhdtx 发表于 2015-4-8 17:29 是 ./bin/hdfsnamenode –format 还是 datanode -format,大家通过cm安装完cdh,还得手动格式化? |
yongjian3311 发表于 2015-4-8 16:11 datanode -format 这个命令好像没有执行吧,都是在cm的web ui上操作。 另外,配了时间同步,也没用,在那一台跑作业的机器上,也只有map任务在跑,即只有一个YarnChild进程。 之前用apache hadoop2.5.1上,两台nodemanager上跑了几个YarnChild进程。 不知道cdh在哪设置了上限吗?醉了 |
本帖最后由 pig2 于 2015-4-8 18:57 编辑 wjhdtx 发表于 2015-4-8 16:17 试试这些吧: (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常见问题以及解决方案 |
langke93 发表于 2015-4-8 16:08 压缩、内存、cpu,以及其他map和reduce执行过程中的相关参数,了解mapreduce过程,然后调优,比如mapreduce.task.io.sort.mb、mapreduce.tasktracker.http.threads、mapreduce.reduce.shuffle.parallelcopies等等。 |
yongjian3311 发表于 2015-4-8 16:11 集群没问题,都启动了,作业也跑过。 |
1. 之前能成功启动整个集群吗? 2. 会不会是因为datanode -format 之后生成的任务ID跟子节点的版本不一样所以关联不上启动不成功? |
楼主可以说说怎么优化的,内存是怎么优化的,是否设置过边界测试。 可以设置足够小(比方接近为0),然后在慢慢调整,相信能有有收获 |