如何设置beeline以在连接字符串中使用变量

时间:2019-07-02 20:36:50

标签: hive hql apache-zookeeper beeline

当前在我们的开发环境中,我们已将beeline连接字符串硬编码为类似

     beeline -u 'jdbc:hive2://zk0-hi-clu.3qy32mhqlj1ubaea5iyw5joamf.ax.internal.cloudapp.net:2181,zk1-hi-clu.3qy32mhqlj1ubaea5iyw5joamf.ax.internal.cloudapp.net:2181,zk6-hi-clu.3qy32mhqlj1ubaea5iyw5joamf.ax.internal.cloudapp.net:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2' --hivevar date=20190101 -f test.hql

我正在尝试查看是否有一些方法可以使连接动态化,就像它将查找odbc.ini这样的配置文件一样。因此,当我们将代码升级到其他环境时,它将自动连接到正确的目标。这可能吗?

1 个答案:

答案 0 :(得分:0)

并非完全符合您的情况:我的shell中需要一些默认值,并使用alias的{​​{1}}功能。

bash

键入export BEELINE_CONNECTION_STRING='jdbc:hive2://myzookeeper1:2181,myzookeeper2:2181,myzookeeper3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;' alias beeline='beeline -u ${BEELINE_CONNECTION_STRING}' 后,将导致以下情况:

直线 连接到jdbc:hive2:// myzookeeper1:2181,myzookeeper2:2181,myzookeeper3:2181 /; serviceDiscoveryMode = zooKeeper; zooKeeperNamespace = hiveserver2; 已连接到:Apache Hive(1.2.1000.2.6.5.0-292版) 驱动程序:Hive JDBC(1.2.1000.2.6.5.0-292版) 事务隔离:TRANSACTION_REPEATABLE_READ Apache Hive的Beeline版本1.2.1000.2.6.5.0-292 0:jdbc:hive2:// myhive>