Azure 配置单元CLI和配置单元服务器2元存储不一致
我正在尝试修改现有的Azure HDInsight群集,以指向现有的配置单元元存储(托管在MSSQL实例上)。我已更改了hive-site.xml中的以下参数,以指向现有的元存储:Azure 配置单元CLI和配置单元服务器2元存储不一致,azure,hadoop,hive,azure-hdinsight,ambari,Azure,Hadoop,Hive,Azure Hdinsight,Ambari,我正在尝试修改现有的Azure HDInsight群集,以指向现有的配置单元元存储(托管在MSSQL实例上)。我已更改了hive-site.xml中的以下参数,以指向现有的元存储: "javax.jdo.option.ConnectionDriverName" : "com.microsoft.sqlserver.jdbc.SQLServerDriver", "javax.jdo.option.ConnectionUserName" : "<<user>>",
"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;"
“javax.jdo.option.ConnectionDriverName”:“com.microsoft.sqlserver.jdbc.SQLServerDriver”,
“javax.jdo.option.ConnectionUserName”:”,
“javax.jdo.option.ConnectionPassword”:”,
“javax.jdo.option.ConnectionURL”:“jdbc:sqlserver://.database.windows.net:1433;database=HiveMetaStoreEast;user=;password=;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;”
这似乎有些奏效,因为我能够通过直线访问Hive CLI和Hiveserver2。奇怪的是显示数据库代码>根据所使用的客户端输出不同的结果。我了解到,在启动Hive 0.14(我正在运行)时,可以使用Hiveserver2 site.xml为Hive/Hiveserver2提供更细粒度的配置,等等。我尝试在hiveserver2 site.xml
中设置hive.metastore.uris
参数,以匹配它在hive site.xml
中显示的内容,但仍然得到相同的奇怪结果
总之,我如何确定Hiveserver2和Hive CLI进程指向相同(且正确)的Metastore URI?发布此消息后,我在Hortonworks网站上发现了一个类似的线程:
此时会出现驻留在此处(在我的配置单元节点上)的startHiveserver2.sh.j2
start脚本/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