hive3.1核心源码思路

系列文章目录

大数据主要组件核心源码解析

文章目录


前言

提示:这里可以添加本文要记录的大概内容:

对大数据几个核心组件的源码,记录一下生命线


提示:以下是本篇文章正文内容,下面案例可供参考

一、HQL转化为MR 核心思路

二、核心代码

1. 入口类,生命线

c 复制代码
CliDriver.main
    run()
	 executeDriver()
	   cli.processLine(ss.execString);--hive -e 和 hive读取命令

CliDriver.processLine()
       List<String> commands = splitSemiColon(line);
	   processCmd(command);
	     processLocalCmd(cmd, proc, ss)
		   if (proc instanceof IDriver) 
		      IDriver qp = (IDriver) proc;
		      qp.run(cmd)
			   Driver.run()
			    runInternal(command, alreadyCompiled:false);
				  compileInternal(command, true); --关键代码1:编译sql
				  execute();                      --关键代码2: 执行hql

2. 编译代码

c 复制代码
--关键代码1:编译sql
   Driver.compileInternal(command, true); 
      compile(command, true, deferClose);  
	    ASTNode tree = ParseUtils.parse(command, ctx);  --解析器工作
		 // Do semantic analysis and plan generation
	    BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(queryState, tree); --编译器、优化器工作
		sem.analyze(tree, ctx);
		      // get the output schema
        schema = getSchema(sem, conf);
        plan = new QueryPlan(queryStr, sem, perfLogger.getStartTime(PerfLogger.DRIVER_RUN), queryId, queryState.getHiveOperation(), schema);
		   

3. 执行代码

c 复制代码
	 --关键代码2: 执行hql		   
   Driver.execute(); 
      TaskRunner runner = launchTask(task, queryId, noName, jobname, jobs, driverCxt);
         TaskRunner tskRun = new TaskRunner(tsk);
         tskRun.start();
           TaskRunner.run()
            runSequential()
               tsk.executeTask(ss == null ? null : ss.getHiveHistory());
			   --tsk的各种实现类运行  ExecDriver(MR任务的driver类) 、CopyTask, DDLTask, MapRedTask等
                     int retval = execute(driverContext);	--不同的task实现执行
               
			   ExecDriver(MR任务的driver类) mr任务构造、提交

总结

提示:这里对文章进行总结:

对核心流程,生命线进行追踪。

学习源码:核心思路,抓大放小。

把上面的生命线抓住,需要分析具体问题再细看。

相关推荐
晟诺数字人3 分钟前
2026年海外直播变革:数字人如何改变游戏规则
大数据·人工智能·产品运营
vx_biyesheji00017 分钟前
豆瓣电影推荐系统 | Python Django 协同过滤 Echarts可视化 深度学习 大数据 毕业设计源码
大数据·爬虫·python·深度学习·django·毕业设计·echarts
2501_9436953317 分钟前
高职大数据与会计专业,考CDA证后能转纯数据分析岗吗?
大数据·数据挖掘·数据分析
实时数据33 分钟前
通过大数据的深度分析与精准营销策略,企业能够有效实现精准引流
大数据
子榆.1 小时前
CANN 性能分析与调优实战:使用 msprof 定位瓶颈,榨干硬件每一分算力
大数据·网络·人工智能
新芒1 小时前
暖通行业两位数下滑,未来靠什么赢?
大数据·人工智能
忆~遂愿2 小时前
CANN ATVOSS 算子库深度解析:基于 Ascend C 模板的 Vector 算子子程序化建模与融合优化机制
大数据·人工智能
艾莉丝努力练剑3 小时前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
lili-felicity4 小时前
CANN异步推理实战:从Stream管理到流水线优化
大数据·人工智能
2501_933670794 小时前
2026 高职大数据专业考什么证书对就业有帮助?
大数据