导入并配置SpringBoot样例工程
操作场景
为了运行MRS产品Hive组件的SpringBoot接口样例代码,需要完成下面的操作。
该章节以在Windows环境下开发SpringBoot方式连接Hive服务的应用程序为例。
该章节内容适用于MRS 3.3.0及之后版本。
- 如果使用Kerberos认证,客户端需要提供开发用户的“user.keytab”和“krb5.conf”文件。
- 如果使用用户名密码认证,样例代码中需要提供用于进行认证的用户名和密码。
操作步骤
- 参考获取MRS应用开发样例工程,获取样例代码解压目录中“src\springboot\hive-examples”目录下的样例工程文件夹“hive-rest-client-example”。
- 如果使用Kerberos认证,需将准备MRS应用开发用户时得到的keytab文件“user.keytab”和“krb5.conf”文件放到样例工程的“hive-rest-client-example\src\main\resources”目录下。
- 进入客户端解压路径“FusionInsight_Cluster_1_Services_ClientConfig\Hive\config”,手动将“core-site.xml”、“hiveclient.properties”文件放到样例工程的“hive-jdbc-example\src\main\resources”目录下。
MRS 3.3.1及后续版本Hive支持JDBC连接串添加扩展标识,扩展标识添加后会在HiveServer审计日志中打印扩展标识用于区分SQL来源。若需要配置,可修改“hive-jdbc-example\src\main\resources\hiveclient.properties”文件,新增如下内容:
auditAddition=xxx
其中xxx为自定义标识内容,标识符长度不超过256字节,且仅允许由字母、数字、下划线(_)、逗号(,)或冒号(:),均为英文半角符号组成。
新增扩展标识并执行SQL后,HiveServer审计日志“/var/log/Bigdata/audit/hive/hiveserver/hive-audit.log”中会打印设置的扩展标识,例如:

- MRS 3.6.0-LTS及之后版本,如果Hive服务端开启了SSL通道加密功能(即Hive的“hive.server2.use.SSL”参数值为“true”),需要进入客户端解压路径“FusionInsight_Cluster_1_Services_ClientConfig_ConfigFiles”下,执行以下命令将证书(ca.crt)导入到Java的默认信任证书库中:
keytool -import -alias ca_hive_basic -file ca.crt -keystore 'D:\\sofrware\\install\\jdk\\jdk1.8.0_201\\jre\\lib\\security\\cacerts'
- 如果运行“hive-rest-client-example”样例的Linux节点中安装了MRS集群客户端,则无需执行此操作导入证书。
- 以上命令中Java的默认信任证书库路径需要根据实际情况修改。
- 导入样例工程到IntelliJ IDEA开发环境中。
- 在IntelliJ IDEA的菜单栏中,选择“File > Open...”,显示“Open File or Project”对话框。
- 在弹出窗口选择文件夹“hive-rest-client-example”,单击“OK”。Windows下要求该文件夹的完整路径不包含空格。
- 设置IntelliJ IDEA的文本文件编码格式,解决乱码显示问题。
- 在IntelliJ IDEA的菜单栏中,选择“File > Settings”,弹出“Settings”窗口。
- 在左边导航上选择“Editor > File Encodings”,在“Project Encoding”和“Global Encoding”区域,设置参数值为“UTF-8”,单击“Apply”后,单击“OK”,如图1所示。
- 设置工程JDK。
- 在IntelliJ IDEA的菜单栏中,选择“File > Settings”,弹出“Settings”窗口。
- 选择“Build, Execution, Deployment > Compiler > Java Compiler”,在“Project bytecode version”右侧的下拉菜单中,选择“8”。修改“hive-rest-client-example”的“Target bytecode version”为“8”。
图2 设置“Target bytecode version”
- 单击“Apply”后单击“OK”。
- 在IntelliJ IDEA的菜单栏中,选择“File > Project Structure...”,弹出“Project Structure”窗口。
- 选择“SDKs”,单击加号选择“JDK”。
图3 新增JDK
- 在弹出的“Select Home Directory for JDK”窗口,选择对应的JDK目录,然后单击“OK”。
- 完成JDK选择后,单击“Apply”。
- 选择“Project”,在“SDK”的下拉菜单中选择在“SDKs”中添加的JDK,在“language level”下的下拉菜单中选择“8 - Lambdas, type annotations etc.”。
图4 配置Project
- 单击“Apply”。
- 选择“Modules”,在“Source”页面,修改“Language level”为“8 - Lambdas, type annotations etc.”。
图5 配置Modules
在“Dependencies”页面,修改“Module SDK”为“SDKs”中添加的JDK。
图6 修改“Module SDK”
- 单击“Apply”,单击“OK”。
- 配置Maven。
- 参考配置华为开源镜像仓章节描述,增加开源镜像仓地址等配置信息到本地Maven的“setting.xml”配置文件。
- 修改完成后,在IntelliJ IDEA选择“File > Settings > Build, Execution, Deployment > Build Tools > Maven”,勾选“User settings file”右侧的“Override”,并修改“User settings file”的值为当前“settings.xml”文件放置目录,确保该目录为“<本地Maven安装目录>\conf\settings.xml”。
图7 “settings.xml”文件放置目录
- 单击“Maven home directory”右侧的下拉菜单,选择Maven的安装路径。
- 单击“Apply”并单击“OK”。
- 将代码中USER_NAME = "xxx"的"xxx"改成在准备MRS应用开发用户阶段创建的开发用户。
- MRS 3.6.0-LTS及之后版本,如果使用用户名密码进行认证,还需将代码中“HIVE_BASIC_AUTH_ENABLE”的值修改为“true”,将PASSWORD = "xxx"的xxx修改为用户密码。
