当前在我们的开发环境中,我们已将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这样的配置文件一样。因此,当我们将代码升级到其他环境时,它将自动连接到正确的目标。这可能吗?
答案 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>