
Hive on Spark
KevinZwx
这个作者很懒,什么都没留下…
展开
-
Hive on Spark源码分析(一)—— SparkTask
之所以首先分析SparkTask的源码的原因,是根据Hive on Spark的运行模式和任务提交流程的出来的。首先我们看一下Hive on Spark运行模式: Hive on Spark(HOS)目前支持两种运行模式:本地(local)和远程(remote)。当用户把Spark Master URL设置为local时,采用本地模式;其余情况则采用远程模式。本地模式下,Spark原创 2016-08-17 00:52:17 · 3537 阅读 · 0 评论 -
Hive on Spark源码分析(二)—— SparkSession与HiveSparkClient
在Hive on Spark源码分析(一)—— SparkTask中已经介绍到,SparkSession是HOS任务提交的起点。在HOS的代码实现中,SparkSession是一个接口,具体的实现类是SparkSessionImpl,因此我们直接进入到SparkSessionImpl内部进行分析。首先是初始化://通过makeSessionId,随机生成一个id就可以初始化一个sp原创 2016-08-17 00:54:35 · 4138 阅读 · 0 评论 -
Hive on Spark源码分析(四)—— SparkClilent与SparkClientImpl(下)
SparkClientImpl提交任务的方法是submit方法,在HiveSparkClient中被调用,提交SparkSession需要提交的任务,其内部其实是调用了内部类ClientProtocol的submit方法: @Override public T extends Serializable> JobHandleT> submit(JobT> job) {原创 2016-08-17 01:04:00 · 2418 阅读 · 0 评论 -
Hive on Spark源码分析(六)—— RemoteSparkJobMonitor与JobHandle
RemoteSparkJobMonitor负责监控一个RSC远程任务的执行状态。它会循环获取任务的执行情况,直到任务完成/失败/kill掉,并将当前任务的状态打印到console。RemoteSparkJobMonitor中主要的方法就是startMonitor,它会根据任务执行的不同情况修改返回码,调用过程是:SparkTask.execute => rc=jobRef.monitorJ原创 2016-08-17 15:55:40 · 2356 阅读 · 0 评论 -
Hive on Spark源码分析(五)—— RemoteDriver
RemoteDriver与SparkClient进行任务交互,并向Spark集群提交任务的。SparkClientImpl中通过调用RemoteDriver.main在新进程中启动了RemoteDrivermain函数public static void main(String[] args) throws Exception { new RemoteDriver(a原创 2016-08-17 01:12:42 · 4345 阅读 · 1 评论 -
Hive on Spark源码分析(三)—— SparkClilent与SparkClientImpl(上)
SparkClient接口定义了远程Spark客户端的API// 提交一个异步执行的job,返回一个用于监控job的JobHandleT extends Serializable> JobHandleT> submit(JobT> job);// 请求远程context执行job。该方法忽视job队列,建议仅用于执行快速结束的任务。// 返回一个用于监控job的Future结果T exte原创 2016-08-17 00:59:26 · 3641 阅读 · 0 评论