Scala
liam08
博主/大数据与AI技术爱好者
展开
-
Spark Core解析 2:Scheduler 调度体系
Spark Core解析 2:Scheduler 调度体系Overview调度系统,是贯穿整个Spark应用的主心骨,从调度系统开始入手了解Spark Core,比较容易理清头绪。Spark的资源调度采用的是常见的两层调度,底层资源的管理和分配是第一层调度,交给YARN、Mesos或者Spark的Standalone集群处理,Application从第一层调度拿到资源后,还要进行内部的任务...原创 2019-12-12 23:41:15 · 1266 阅读 · 0 评论 -
Scala并发编程实战 - 2:Lock 锁
synchronized作为内置锁,使用简单,不易出错,然鹅确有相当的局限性,例如,无法从等待获取锁的阻塞中中断,无法设置获取锁的超时。所以JUC提供了另一种更灵活的加锁方式,即Lock。LockLock接口定义如下public interface Lock { void lock(); void lockInterruptibly() throws Interru...原创 2019-11-16 14:29:14 · 2230 阅读 · 0 评论 -
Scala并发编程实战:Monitor与synchronized
Java并发编程最常用和易用的技术莫过于synchronized关键字,而Scala的并发编程之旅也可以从synchronized开始。而synchronized的背后其实是monitor技术。什么是MonitorMonitor是解决并发编程问题的一种常用技术,可以有效解决互斥和同步两大常见问题,通常翻译为‘监视器’或‘管程’。个人认为‘管程‘更能表达monitor的含义,指的是管理共享变量以...原创 2019-11-11 17:05:53 · 1736 阅读 · 0 评论 -
Spark Core 解析:RDD
引言Spark Core是Spark的核心部分,是Spark SQL,Spark Streaming,Spark MLlib等等其他模块的基础, Spark Core提供了开发分布式应用的脚手架,使得其他模块或应用的开发者不必关心复杂的分布式计算如何实现,只需使用Spark Core提供的分布式数据结构RDD及丰富的算子API,以类似开发单机应用的方式来进行开发。图中最下面那个就是Spark...原创 2019-10-28 21:04:53 · 1628 阅读 · 0 评论 -
Scala并发编程实战:Executor线程池
创建线程是一个重量级操作,因为需要调用操作系统内核的API,所以最好不要频繁的创建和销毁线程,为了能够复用创建的线程,常用的办法的就是创建线程池。Executorjava.util.concurren包中提供了若干接口和类来实现线程池,最常用的有Executor,ExecutorService,ThreadPoolExecutor。Executor接口很简单定义如下:public inte...原创 2019-09-28 23:27:26 · 3785 阅读 · 0 评论 -
Scala implicit 隐式转换安全驾驶指南
这篇短文将结合实例对隐式转换的各种场景进行解释和总结,希望看完的人能够安全驶过隐式转换这个大坑。隐式转换函数隐式转换函数有两种作用场景。1 转换为期望类型:就是指一旦编译器看到X,但需要Y,就会检查从X到Y的隐式转换函数。2 转换方法的调用者:简单来说,如obj.f(),如果obj对象没有f方法,则尝试将obj转换为拥有f方法的类型。object ImpFunction exte...原创 2019-09-29 23:01:53 · 916 阅读 · 0 评论