Hive 引擎
在启动hive执行引擎相关的微服务之前,请确保以上环境变量是已经设置的,如果没有设置的话,请先在/home/${USER}/.bash\_rc 或 linkis-ujes-spark-enginemanager/conf目录中的 linkis.properties配置文件中设置。如以下所示
- 1)、Eureka: 用于服务注册于发现。
- 3)、Linkis-publicService: 提供持久化、udf等基础功能。
- 4)、Linkis-ResourceManager:提供Linkis的资源管理功能。
正常使用hive,还需要启动HiveEntrance 和 HiveEngineManager。
HiveEntrance是hive作业的接受者,HiveEngineManager是HiveEngine的启动者。
启动之前,用户可以设置关于hive引擎的自定义参数。
下表有一些常用的参数,Hive引擎支持配置更多的参数以获得更好的性能,如您有调优需求,欢迎阅读调优手册。
1.5运行效果图
图2 Hive运行效果图2
Hive执行引擎的实现,是参照Linkis开发文档实现了Entrance、EngineManager和Engine三个模块的必要接口,其中Engine模块是最特殊的,Hive实现的方式也有自己的一套逻辑。
Linkis现在提供的Release版本基于的hadoop版本是2.7.2, hive版本是1.2.1,两者都是apache版本。
HiveEngineExecutor实现的executeLine接口中,Linkis通过使用的hive提供的CommandProcessorFactory类,传入本地的hive的配置信息,得到一个org.apache.hadoop.hive.ql.Driver类,Driver类提供了API帮助提交用户的脚本代码到集群中执行。
Driver在提交hive sql代码之后,有提供执行是否成功以及获取成功之后获取结果集的API。如果执行成功,借助Linkis提供的统一存储服务,将结果集存储到指定的目录当中以供用户查看。
另外,Driver在提交hive sql之后,如果产生了mapreduce任务,我们也可以通过HadoopJobExecHelper提供的killRunningJobs的API将已经提交的hive查询任务杀死,这就是用户前台kill任务的逻辑。