项目场景:
在spark编写hudi的时候,运行程序把数据落在hive上,但是hudi无法加载到hive
报错:
org.apache.thrift.TApplicationException: Required field 'client_protocol' is unset!
问题描述
@Override
public void run() {
bytes = mmInStream.read(buffer);
mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
}
原因分析:
这个原因是jdbc的驱动与hive版本不符合
解决方案:
因为我是在idea上开发,jar冲突会导致spark无法运行
因为我是使用之前的代码,hive版本更改了,jdbc却没有更新
要更改一下依赖(pom.xml)
无法与元数据库链接就是jdbc的问题!
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.2.1</version>
<scope>${scope.type}</scope>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
把hive-jdbc的版本更换与hive一致就可以了!
数据落地到hive上面了