DBeaver連線Phoenix

xiao兒發表於2020-10-31

DBeaver連線Phoenix

1. 下載安裝好DBerver之後,選擇Apache Phoenix連線

2. 編輯Phoenix連線的設定引數

驅動只需要新增phoenix-4.15.0-HBase-1.5.jar即可,圖中/hbase可以在HBase的Web頁面上找到。

需要注意的是在選擇phoenix-4.15.0-HBase-1.5.jar之前,將HBase目錄中conf目錄下的hbase-site.xml壓縮到jar包中,如果和我一樣使用的是高可用的hadoop叢集,那麼還需要將hdfs-site.xmlcore-site.xml也同時壓縮到jar包中。

同時將Phoenix安裝包下的phoenix-core-4.15.0-HBase-1.5.jarphoenix-server-4.15.0-HBase-1.5.jar放到HBase的安裝目錄下的lib目錄中。

主機位置寫伺服器中任意一個Zookeeper節點的IP地址即可。點選測試連線即可連線成功。

3. 常見錯誤
1. 測試成功後庫中的表顯示不出來

在驅動屬性中增加以下屬性:

phoenix.schema.isNamespaceMappingEnabled  true
phoenix.schema.mapSystemTablesToNamespace  true

需要注意的是,同時也要在HBase的配置檔案hbase-site.xml中配置如下資訊:

<property>
    <name>phoenix.schema.isNamespaceMappingEnabled</name>
    <value>true</value>
</property>
<property>
    <name>phoenix.schema.mapSystemTablesToNamespace</name>
    <value>true</value>
</property>
2. 報如下錯誤
Unexpected driver error occurred while connecting to the database
  java.lang.RuntimeException: class org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback not org.apache.hadoop.security.GroupMappingServiceProvider
  java.lang.RuntimeException: class org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback not org.apache.hadoop.security.GroupMappingServiceProvider
    class org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback not org.apache.hadoop.security.GroupMappingServiceProvider
    class org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback not org.apache.hadoop.security.GroupMappingServiceProvider

ERROR 103 (08004): Unable to establish connection.
  java.lang.reflect.InvocationTargetException
  java.lang.reflect.InvocationTargetException
    
    java.lang.reflect.InvocationTargetException
      'void sun.misc.Unsafe.putLong(java.lang.Object, int, long)'
      'void sun.misc.Unsafe.putLong(java.lang.Object, int, long)'
org.apache.hadoop.hbase.DoNotRetryIOException: Unable to load configured region split policy 'org.apache.phoenix.schema.MetaDataSplitPolicy' for table 'SYSTEM:CATALOG' Set hbase.table.sanity.checks to false at conf or table descriptor if you want to bypass sanity checks
	at org.apache.hadoop.hbase.master.HMaster.warnOrThrowExceptionForFailure(HMaster.java:2051)
	at org.apache.hadoop.hbase.master.HMaster.sanityCheckTableDescriptor(HMaster.java:1897)
	at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1799)
	at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:487)
	at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2399)
	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)

報以上兩種錯誤可以嘗試修改DBeaver安裝路徑中的dbeaver.ini檔案,新增自己JDK的路徑:

-vm
C:\Program Files\Java\jdk1.8.0_201\bin

相關文章