尽管Spark相对于Hadoop而言具有较大优势,但Spark并不能完全替代Hadoop
Hadoop中的MR中每个map/reduce task都是一个java进程方式运行,好处在于进程之间是互相独立的,每个task独享进程资源,没有互相干扰,监控方便,但是问题在于task之间不方便共享数据,执行效率比较低。比如多个map task读取不同数据文件需要将数据源加载到每个map task中,造成重复加载和浪费内存。而基于线程的方式计算是为了数据共享和提高执行效率,Spark采用了线程的最小执行单位,但缺点是线程之期间会有资源竞争
三、常识扩展 线程是CPU的基本调度单位一个进程一般包含多个线程,一个进程下的多个线程共享进程的资源不同线程之间的线程相互不可见线程不能独立进行一个线程可以创建和撤销另外一个线程