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删除表同时也会删除可能存在的二级索引。

阅读 871

rumenz.com

53 声望
3 粉丝
0 条评论
你知道吗?

rumenz.com

53 声望
3 粉丝
宣传栏