• 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正则的属性可以被修改。

  • 相关阅读:
    c++ 学习笔记
    python 2048游戏控制器
    c++ 动态内存
    c++ 拷贝构造函数、拷贝运算符、析构函数
    c++ struct enum union加typedef与不加typedef
    c++ 动态内存2
    c++ 指针数组与指向数组的指针
    c++ TextQuery程序
    c++ virtual
    c++ 动态内存 动态数组
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/10848203.html
Copyright © 2020-2023  润新知