python連接Phoenix


1、啟動Phoenix監聽端口

#啟動,端口:8765
[root@node1 ~]# /opt/phoenix-4.11.0/bin/queryserver.py start
starting Query Server, logging to /tmp/phoenix/root-queryserver.log

[root@node1 ~]# netstat -ntlp |grep 8765
tcp6       0      0 :::8765                 :::*                    LISTEN      50094/java


2、phoenixdb

安裝包

#phoenixdb包的版本要和phoenix對應,參考官網:
https://python-phoenixdb.readthedocs.io/en/latest/versions.html#version-0-7

#我的Phoenix是4.11,所以要安裝0.7版本
>pip3 install phoenixdb==0.7


python腳本:

#!/usr/bin/env python
# encoding: utf-8

"""
@author:  'Administrator'
@contact:  
@time: 
"""
import phoenixdb
import phoenixdb.cursor


database_url = 'http://node1:8765/'
conn = phoenixdb.connect(database_url, autocommit=True)

cursor = conn.cursor()
cursor.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, username VARCHAR)")
cursor.execute("UPSERT INTO users VALUES (?, ?)", (1, 'admin'))
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())


但是我的腳本執行后,會報錯,如下:

因為初學乍練,沒有解決掉,希望知道解決辦法的朋友給我留個言,多謝

Traceback (most recent call last):
  File "D:/pycharm2018/oldboy-code/day58/test/phoenixdemo.py", line 23, in <module>
    conn = phoenixdb.connect(database_url, autocommit=True)
  File "D:\python36\lib\site-packages\phoenixdb\__init__.py", line 67, in connect
    return Connection(client, **kwargs)
  File "D:\python36\lib\site-packages\phoenixdb\connection.py", line 56, in __init__
    self.open()
  File "D:\python36\lib\site-packages\phoenixdb\connection.py", line 73, in open
    self._client.open_connection(self._id, info=self._connection_args)
  File "D:\python36\lib\site-packages\phoenixdb\avatica.py", line 329, in open_connection
    response_data = self._apply(request)
  File "D:\python36\lib\site-packages\phoenixdb\avatica.py", line 216, in _apply
    parse_error_protobuf(response_body)
  File "D:\python36\lib\site-packages\phoenixdb\avatica.py", line 127, in parse_error_protobuf
    parse_and_raise_sql_error(err.error_message)
  File "D:\python36\lib\site-packages\phoenixdb\avatica.py", line 108, in parse_and_raise_sql_error
    raise_sql_error(int(code), sqlstate, message)
  File "D:\python36\lib\site-packages\phoenixdb\avatica.py", line 101, in raise_sql_error
    raise error_class(message, code, sqlstate)
phoenixdb.errors.OperationalError: ('Malformed connection url. :node1:2181,node2:2181,node3:2181:2181:/hbase;', 102, '08001', None)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM