被要求用hive -e连接远程hive数据库,因为之前很少用hive这个命令,转而用beeline,可以用下列命令成功连接远程数据库。

/opt/hive/bin/beeline -u jdbc:hive2://host:port/database -n username -p password -e "select * from table"

以下是交互命令

find / -name beeline    #找到结果 /opt/hive/bin/beeline
/opt/hive/bin/beeline    #进入到命令行
!connect jdbc:hive2://host:port #连接到缺省的schema 
!connect jdbc:hive2://host:port/database #连接到指定数据库 
0: jdbc:hive2://host-> select * from table; #查询表
!exit #断开连接并退出命令行

尝试过很多方法试图用hive -e 来连接远程数据库都失败,后来找到官方文档,发现hive CLI不支持连接远程数据库。详见下列链接。

https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.6.5/bk_data-access/content/beeline-vs-hive-cli.html

The Hive CLI, which connects directly to HDFS and the Hive Metastore, and can be used only on a host with access to those services.