hdp3.1 hive 3.0的使用记录

Posted huaxiaoyao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdp3.1 hive 3.0的使用记录相关的知识,希望对你有一定的参考价值。

近来在做项目中的技术调研,使用最新版的hdp3.1,其中使用spark2.3和hive 3.1.

遇到 一些问题,记录如下:

一,使用spark-sql client driver去访问hive创建的数据库,发现找不到,使用presto访问hive,只能读写外部表。

经过查询资料了解到,hive3.1默认对内部表支持事务和ACID特性,spark等外部工具无法直接读取ACID的表数据,

spark新版本正在跟进,但spark-sql本身也在和hive分离,走自己的路,已经和hive共用一个元数据库,但是使用不同的

catalog,存不同的元数据。

如果想使用spark-sql来处理hive的表数据,则需要做如下调整:

1.在advanced spark2-hive-site-override中配置metastore.catalog.default=hive之后重启spark2 服务,
这样就可以看到hive创建的数据库和表,但是只能访问外部表,无法访问内部表,原因上面已说明。

2.如果想使用presto,spark-sql来访问hive3.1的表,则需要做如下调整,放弃acid和事务特性。

 hive.strict.managed.tables=false
hive.create.as.insert.only=false
metastore.create.as.acid=false
这三个属性设置之后,重启hive server2,这样hive 放弃了事务,acid的特性,生成的表数据,spark-sql,presto
就可以读取了。
二,使用kylin生成cube报错,无法修改hive运行时属性xxxxx

* hive.security.authorization.sqlstd.confwhitelist
Kylin在执行作业的时候,需要做一些mapreduce的优化,set xxx=xxx,但报错,显示不能在运行时修改,
经查可以配置这个属性,符合这个java正则的属性可以被修改。

以上是关于hdp3.1 hive 3.0的使用记录的主要内容,如果未能解决你的问题,请参考以下文章

Spark无法读取hive 3.x的表数据

Ambari2.7.4+HDP3.1.4安装 Centos7离线安装

Ambari2.7.3 + HDP3.1.0 集群搭建

Ambari2.7.3 + HDP3.1.0 集群搭建

该文件不属于 hive 并且加载数据也不作为 hive 运行

「hive」hive2.3.0配置derby