zoukankan      html  css  js  c++  java
  • hadoop优化之拙见

    map-reduce的优化:

    需要内存的地方:  map/reduce任务运行时内存、存放中间数据的内存缓存区、map输出数据排序内存,

    需要操作磁盘的地方: map输出数据缓冲区达到阀值的溢出写文件, map缓冲区满写磁盘,map最后输出写磁盘,  shuffle复制map输出的数据缓冲区阀值的溢出写文件,reduce读输入磁盘, 这些都是中间阶段对磁盘的操作。

    运行内存越大,运行速度越快; 中间数据越多,即缓冲区越大,读磁盘和写磁盘的次数越少,所以,这是个辩证的过程。如果运行需要的内存少,可以将缓冲区设置大一些。

    任务jvm重用,  当运行一个任务的时候,首先会先启动一个jvm,启动时间大概为一秒, 然后初始化,如果有一批运行时间比较短,数量又多的任务的话,在一个jvm中顺序执行这些任务,即jvm重用将会提高性能。  mapred.job.reuse.jvm.num.tasks, 默认值为1,则在各个独立的jvm中运行,如果设置为-1,则该作业的所有任务依次使用该jvm.

  • 相关阅读:
    TCP协议
    数据包以及数据传输
    网络模型
    Executors常见的线程池创建以及其问题
    线程池
    阻塞队列和死锁
    ConcurrentHashMap
    ReentrantLock,公平性锁和非公平性锁
    Lock
    jQuery如何获取table中每一行的数据并发送给后端?
  • 原文地址:https://www.cnblogs.com/kangls/p/3613438.html
Copyright © 2011-2022 走看看