【问题标题】:Hive CLI and Hiveserver2 Inconsistent MetastoreHive CLI 和 Hiveserver2 元存储不一致
【发布时间】:2015-11-25 13:05:41
【问题描述】:

我正在尝试修改现有 Azure HDInsight 群集以指向现有 Hive 元存储(托管在 MSSQL 实例上)。我已将 hive-site.xml 中的以下参数更改为指向现有的 Metastore:

"javax.jdo.option.ConnectionDriverName" : "com.microsoft.sqlserver.jdbc.SQLServerDriver", 
"javax.jdo.option.ConnectionUserName" : "<<user>>",     
"javax.jdo.option.ConnectionPassword" : "<<password>>",   
"javax.jdo.option.ConnectionURL" : "jdbc:sqlserver://<<server>>.database.windows.net:1433;database=HiveMetaStoreEast;user=<<user>>;password=<<password>>;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;" 

这个似乎有点用,因为我可以通过 Beeline 访问 Hive CLI 和 Hiveserver2。奇怪的是show databases; 根据所使用的客户端输出不同的结果。我读到,从 Hive 0.14(我正在运行)开始,使用 hiveserver2-site.xml 等可以为 Hive/Hiveserver2 提供更精细的配置。我尝试在 hiveserver2-site.xml 中设置 hive.metastore.uris 参数以匹配它在 @ 中显示的内容987654326@ 但仍然得到同样奇怪的结果。

总之,我如何确定 Hiveserver2 和 Hive CLI 进程指向相同(且正确)的 Metastore URI?

【问题讨论】:

    标签: azure hadoop hive azure-hdinsight ambari


    【解决方案1】:

    刚发完这篇文章,我在 Hortonworks 网站上发现了一个类似的帖子:http://hortonworks.com/community/forums/topic/configuration-of-hiveserver2-to-use-a-remote-metastore-server/#post-81960

    似乎startHiveserver2.sh.j2 启动脚本,驻留在此处(在我的 Hive 节点上)/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/templates/ 包含 hive.metastore.uris 参数的空字符串 CLI 覆盖,我相信它会强制 Hiveserver2 以本地元存储模式启动,因此创建不一致Hive CLI(使用远程 URI)和 Beeline(使用本地)之间的视图。

    请参阅以下解决不一致问题的补丁:

    --- startHiveserver2.sh.j2  2015-11-25 04:06:15.357996439 +0000
    +++ /var/lib/ambari-server/resources/common-services/HIVE/0.12.0.2.0/package/templates/startHiveserver2.sh.j2   2015-11-25 03:43:29.837452851 +0000
    @@ -20,5 +20,6 @@
    #
    
    HIVE_SERVER2_OPTS=" -hiveconf hive.log.file=hiveserver2.log -hiveconf hive.log.dir=$5"
    -HIVE_CONF_DIR=$4 {{hive_bin}}/hiveserver2 -hiveconf hive.metastore.uris=" " ${HIVE_SERVER2_OPTS} > $1 2> $2 &
    +#HIVE_CONF_DIR=$4 {{hive_bin}}/hiveserver2 -hiveconf hive.metastore.uris=" " ${HIVE_SERVER2_OPTS} > $1 2> $2 &
    +HIVE_CONF_DIR=$4 {{hive_bin}}/hiveserver2 ${HIVE_SERVER2_OPTS} > $1 2> $2 &
    echo $!|cat>$3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 2015-01-17
      • 1970-01-01
      • 2019-08-15
      • 2016-04-24
      • 1970-01-01
      相关资源
      最近更新 更多