Hive 引擎
如果您希望在您的服务器上使用hive引擎,您需要保证以下的环境变量已经设置正确并且引擎的启动用户是有这些环境变量的。
强烈建议您在执行hive任务之前,检查下执行用户的这些环境变量。
表1-1 环境配置清单
Hive的版本是支持hive1.x和hive2.x,默认是支持hive on MapReduce,如果您想改成Hive on Tez,需要您按照此pr进行一下修改。
默认支持的hive版本是1.2.1,如果您想修改hive的版本,比如想要修改成2.3.3,您可以找到linkis-engineplugin-hive模块,将\<hive.version>标签进行改成2.3.3,然后单独编译此模块即可
2.2 hive engineConn部署和加载
如果您已经编译完了您的hive引擎的插件已经编译完成,那么您需要将新的插件放置到指定的位置中才能加载,具体可以参考下面这篇文章
Linkis1.X是通过标签来进行的,所以需要在我们数据库中插入数据,插入的方式如下文所示。
准备操作,队列设置
hive的MapReduce任务是需要用到yarn的资源,所以需要您在一开始就设置队列
图3-1 队列设置
您也可以通过在提交参数的StartUpMap里面添加队列的值:
Linkis提供了Java和Scala 的SDK向Linkis服务端提交任务. 具体可以参考 JAVA SDK Manual. 对于Hive任务你只需要修改Demo中的EngineConnType和CodeType参数即可:
3.2 通过Linkis-cli进行任务提交
Linkis 1.0后提供了cli的方式提交任务,我们只需要指定对应的EngineConn和CodeType标签类型即可,Hive的使用如下:
sh ./bin/linkis-cli -engineType hive-2.3.3 -codeType hql -code "show tables" -submitUser hadoop -proxyUser hadoop
具体使用可以参考: Linkis CLI Manual.
Scriptis的使用方式是最简单的,您可以直接进入Scriptis,右键目录然后新建hive脚本并编写hivesql代码
hive引擎的实现方式通过实例化hive的Driver实例,然后由Driver来提交任务,并获取结果集并展示。
图3-2 hivesql的执行效果截图
除了以上引擎配置,用户还可以进行自定义的设置,包括hive Driver进程的内存大小等。
图4-1 hive的用户自定义配置管理台
默认的日志界面是不显示application_id以及task完成数量的,用户可以根据需要输出该日志 引擎内的log4j2-engineconn.xml/log4j2.xml配置文件中需要修改的代码块如下 1.appenders组件下需要添加
2.root组件下需要添加
3.loggers组件下需要添加
进行如上相关修改后日志可以增加任务task进度信息,显示为如下样式
2022-04-08 11:06:50.248 INFO [Linkis-Default-Scheduler-Thread-3] SessionState 1111 printInfo - Map 1: -/- Reducer 2: 0/1
2022-04-08 11:06:52.417 INFO [Linkis-Default-Scheduler-Thread-3] SessionState 1111 printInfo - Map 1: 0/1 Reducer 2: 0/1
2022-04-08 11:06:57.495 INFO [Linkis-Default-Scheduler-Thread-3] SessionState 1111 printInfo - Map 1: 1/1 Reducer 2: 0(+1)/1
2022-04-08 11:06:57.899 INFO [Linkis-Default-Scheduler-Thread-3] SessionState 1111 printInfo - Map 1: 1/1 Reducer 2: 1/1
完整xml配置文件范例如下: