运行ApachePhoenix命令时出现Python兼容性问题

运行ApachePhoenix命令时出现Python兼容性问题,python,hbase,phoenix,Python,Hbase,Phoenix,我成功安装了Hadoop、Pig、Hive、HBase和Zookeeper。 我安装了ApachePhoenix来访问HBase。下面是我的路径变量 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH="$PATH:$JAVA_HOME/bin" export PATH="/home/vijee/anaconda3/bin:$PATH" export HADOOP_HOME=/ho

我成功安装了Hadoop、Pig、Hive、HBase和Zookeeper。 我安装了ApachePhoenix来访问HBase。下面是我的路径变量

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH="$PATH:$JAVA_HOME/bin"
export PATH="/home/vijee/anaconda3/bin:$PATH"

export HADOOP_HOME=/home/vijee/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH="$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin"
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

export ZOOKEEPER_HOME=/home/vijee/apache-zookeeper-3.6.2-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

export HBASE_HOME=/home/vijee/hbase-1.4.13-bin
export PATH=$PATH:$HBASE_HOME/bin

export PHOENIX_HOME=/home/vijee/apache-phoenix-4.15.0-HBase-1.4-bin
export PATH=$PATH:$PHOENIX_HOME/bin
我将phoenix-4.15.0-HBase-1.4-client.jar、phoenix-4.15.0-HBase-1.4-server.jar、phoenix-core-4.15.0-HBase-1.4.jar复制到HBase lib目录,并重新启动HBase和zookeer。 当我运行bellowPhoenix命令时,它抛出了错误

(base) vijee@vijee-Lenovo-IdeaPad-S510p:~/apache-phoenix-4.15.0-HBase-1.4-bin/bin$ psql.py localhost $PHOENIX_HOME/examples/WEB_STAT.sql $PHOENIX_HOME/examples/WEB_STAT.csv $PHOENIX_HOME/examples/WEB_STAT_QUERIES.sql
Traceback (most recent call last):
  File "/home/vijee/apache-phoenix-4.15.0-HBase-1.4-bin/bin/psql.py", line 57, in <module>
    if hbase_env.has_key('JAVA_HOME'):
AttributeError: 'dict' object has no attribute 'has_key'
我知道这是Python兼容性问题,psql.py是为Python2.x编写的


如何解决此问题?

。如果在3.x中删除了密钥
,请使用中的


另请参见

简要搜索,HBase-1.4似乎是2017年推出的,而最新的稳定版本是2.2.5。。发行说明暗示它与Python3一起工作

考虑简单地使用较新的jar

在最新的ApachePhoenix代码中,至少有
psql.py
支持Python3,因此您应该能够获得比现有版本更新的版本,该版本可以使用它

这可以在最新的承诺中看到

  • 在GitHub上按文件提交历史记录:


如果必须使用1.4.x,则可以使用Python 2运行
psql.py
。大多数操作系统都会接受并行安装,尽管这可能会使某些依赖关系管理变得混乱,而且这不是一个可维护的解决方案。

我安装了hbase-2.2.6和apache-phoenix-5.0.0-hbase-2.0,然后再次抛出相同的错误。py来自ApachePhoenix/bin目录。psql.py和phoenix_utils.py中的python代码是python 2.x格式的。其中,我的Python版本是3.8。我是HBase新手,网络上没有太多关于这个问题的信息。@Green你能简单地使用Python 2吗?如果你安装了python2(方向取决于OS..for Debian衍生物),那么你可以作为
python2 psql.py
运行它。然而,需要做很多工作,最新版本应该可以与Python3一起使用,所以我怀疑这一点,于是去检查了一下。最新版本确实支持它,因此我鼓励您使用它,因为它将更易于维护(Python 2支持在今年年初结束,项目显然正在使用Python 3开发)@Green我已经编辑了我的答案,以包含这些信息,以及一些支持链接!太好了,我成功了,谢谢。。。。。。我对Phoenix bin文件夹中的python脚本文件进行了必要的更改,就像在Git中一样。
$ python --version
Python 3.8.3