关于python利用thrift远程连接hive的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于python利用thrift远程连接hive的问题相关的知识,希望对你有一定的参考价值。

在服务开启,且相关hive服务器下路径已经复制到本地python路径中并加载后,利用thrift远程连接hive时,连接不上,是不是我远程连的时候,没有输入用户名密码的问题,只输入了ip和端口号啊?但是TSocket下没有可供输入的用户名和密码的参数啊,求大神指导

你起的thrift服务确定启好了吗 你先在服务器上看下IP端口是不是开了,而且IP不是Localhost的 如果好了远程肯定可以连上。追问

开启了,我是远程连接hive的,需要输入账户密码,但是貌似那个tsocket没有相关参数,我输入对应的ip和端口,连接时就提示错误,qq多少,要不加你吧

追答

没弄过,Hive不是一般数据库 应该不需要用户名密码

追问

我用secureCRT远程连接的时候,就需要密码啊

追答

我以为你说啥 SSH肯定需要,你是登陆人家机器操作的

追问

哦哦,那就是说只要那个服务开启了,只需要输入对应的ip和端口就可以访问了吧

参考技术A 不知所云,好吧!

Hive Beeline 官方文档学习

Beeline 是什么?

它是一个命令行形式的jdbc客户端。搞Java开发的同学,看到这里就应该知道这货是什么了 ── 它是一个连接数据库的工具。

只不过Beeline连接的数据库是HiveServer2。

 

Beeline 有两种工作模式:内嵌、远程。

内嵌模式中,会运行一个内嵌的Hive(类似于Hive CLI)。

远程模式中,通过Thrift协议连接到一个不同的HiveServer2。从Hive 0.14起,Beeline连接HiveServer2 时,还会将HiveServer2 执行查询的日志信息输出到STDERR。

-- 推荐在生产中使用远程模式,因为更安全,且无需 HDFS/metastore 的访问授权。

注意,在远程模式下,HiveServer2 只接受有效的Thrift 请求 -- 就算是在HTTP模式中,消息体也需要包含Thrift payload。

 

Beeline 的使用示例

[[email protected] ~]# beeline 
Beeline version 1.1.0-cdh5.6.0 by Apache Hive
beeline> help
!all                Execute the specified SQL against all the current connections
!autocommit         Set autocommit mode on or off
!batch              Start or execute a batch of statements
!brief              Set verbose mode off
!call               Execute a callable statement
!close              Close the current connection to the database
!closeall           Close all current open connections
!columns            List all the columns for the specified table
!commit             Commit the current transaction (if autocommit is off)
!connect            Open a new connection to the database.
!dbinfo             Give metadata information about the database
!describe           Describe a table
!dropall            Drop all tables in the current database
!exportedkeys       List all the exported keys for the specified table
!go                 Select the current connection
!help               Print a summary of command usage
!history            Display the command history
!importedkeys       List all the imported keys for the specified table
!indexes            List all the indexes for the specified table
!isolation          Set the transaction isolation for this connection
!list               List the current connections
!manual             Display the BeeLine manual
!metadata           Obtain metadata information
!nativesql          Show the native SQL for the specified statement
!nullemptystring    Set to true to get historic behavior of printing null as
                    empty string. Default is false.
!outputformat       Set the output format for displaying results
                    (table,vertical,csv2,dsv,tsv2,xmlattrs,xmlelements, and
                    deprecated formats(csv, tsv))
!primarykeys        List all the primary keys for the specified table
!procedures         List all the procedures
!properties         Connect to the database specified in the properties file(s)
!quit               Exits the program
!reconnect          Reconnect to the database
!record             Record all output to the specified file
!rehash             Fetch table and column names for command completion
!rollback           Roll back the current transaction (if autocommit is off)
!run                Run a script from the specified file
!save               Save the current variabes and aliases
!scan               Scan for installed JDBC drivers
!script             Start saving a script to a file
!set                Set a beeline variable
!sh                 Execute a shell command
!sql                Execute a SQL command
!tables             List all the tables in the database
!typeinfo           Display the type map for the current connection
!verbose            Set verbose mode on

Comments, bug reports, and patches go to ???
beeline> !connect jdbc:hive2://localhost:10000
beeline> !tables;
No current connection
beeline> !connect jdbc:hive2://elephant:10000
scan complete in 2ms
Connecting to jdbc:hive2://elephant:10000
Enter username for jdbc:hive2://elephant:10000: hive
Enter password for jdbc:hive2://elephant:10000: **********
Connected to: Apache Hive (version 1.1.0-cdh5.6.0)
Driver: Hive JDBC (version 1.1.0-cdh5.6.0)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://elephant:10000>

上面,通过help查询了Beeline 支持的命令,又通过 !connect jdbc:hive2://elephant:10000 连接到 elephant主机上的HiveServer2。

下面就来看看还能执行什么操作。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考:

https://cwiki.apache.org//confluence/display/Hive/HiveServer2+Clients

http://blog.csdn.net/huanggang028/article/details/44591663

以上是关于关于python利用thrift远程连接hive的问题的主要内容,如果未能解决你的问题,请参考以下文章

Hive Beeline 官方文档学习

hive jdbc连接不成功。。报错org.apache.thrift.transport.TTransportException: Invalid status -128

hive beeline详解

如何使用kettle连接hive和hive2

本地Spark连接远程集群Hive(Scala/Python)

hive metastore异常 org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin,