我正在尝试修改现有的azurehdinsight集群,以指向现有的配置单元元存储(托管在mssql示例上)。我已更改hive-site.xml中的以下参数,以指向现有的元存储:
"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访问hivecli和hiveserver2。奇怪的是 show databases;
根据所使用的客户端,输出不同的结果。我了解到,在启动hive0.14(我正在运行)时,hive/hiveserver2可以使用更细粒度的配置 hiveserver2-site.xml
等等。我试过设置 hive.metastore.uris
中的参数 hiveserver2-site.xml
以匹配 hive-site.xml
但仍然得到同样奇怪的结果。
总之,如何确定hiveserver2和hivecli进程指向相同(正确)的元存储uri?
1条答案
按热度按时间a0x5cqrl1#
发布后,我在hortonworks网站上发现了一个类似的帖子:http://hortonworks.com/community/forums/topic/configuration-of-hiveserver2-to-use-a-remote-metastore-server/#post-81960
看来
startHiveserver2.sh.j2
开始脚本,位于此处(在我的配置单元节点上)/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/templates/
包含对的空字符串cli重写hive.metastore.uris
参数强制hiveserver2以本地元存储模式启动,从而在hivecli(使用远程uri)和beeline(使用本地uri)之间创建不一致的视图。有关解决不一致的修补程序,请参见下面的内容: