Hbase+Phoenix使用總結


1.Hbase中表名和列族名是大小寫敏感的

如果使用小寫的表名那么必須加上雙引號。表名和列族名是大寫則不需要雙引號
2.Phoenix查詢客戶端超時

Error: Operation timed out. (state=TIM01,code=6000)
java.sql.SQLTimeoutException: Operation timed out.

解決方案:修改apache-phoenix-5.0.0-HBase-2.0-bin/bin/hbase-site.xml,增加以下配置

<property>
  <name>phoenix.query.timeoutMs</name>
  <value>3600000</value> 
</property>

<property>
  <name>hbase.rpc.timeout</name>
  <value>3600000</value>
</property>

3.Phoenix二級索引表與源數據表保持同步的前提

數據源表的增刪改查必須通過Phoenix命令行或者客戶端才能保證二級索引表與源表同步。Phoenix提供的Bulk Loading同樣也能保證二級索引表與源數據表保持同步。

4.Phoenix Bulk Loading的使用

使用Loading via PSQL來導入大批量數據,要注意Loading via PSQL的文件必須是.csv后綴,不然程序無法識別到數據文件。

5.Phoenix表的管理維護

通過Phoenix創建的表,必須指定primary key(對應Hbase的rowkey),列最好指定列族名稱,列類型最好指定為varchar
如果使用了Phoenix操作Hbase,刪除表的話一定要使用Phoenix的api操作,如果直接用Hbase的api操作會導致Phoenix可以看見表但是操作表會報錯. 通過Phoenix的api刪除表同時也會刪除可能存在的二級索引。


免責聲明!

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



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