apache phoenix如何关掉namespace功能
问题描述
apache phoenix开启namespace功能跟简单,但是开启了怎么关闭呢?
官网:设置phoenix.schema.isNamespaceMappingEnabled参数生效后,不能回滚,但是我必须得改回去呀,改不回去影响业务呀,于是有了下边的两种方法:
错误内容
启动phoenix client,会报如下错误
Error: ERROR 726 (43M10): Inconsistent namespace mapping properties.. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled (state=43M10,code=726)
解决方法
方案一: 保留元数据方式
1.修改bhase路径conf下hbase-site.xml文件
注释掉
phoenix.schema.isNamespaceMappingEnabled=true
并分发到其他节点
2.修改phoenix/bin下的hbase-site.xml文件
注释掉
phoenix.schema.isNamespaceMappingEnabled=true
3.重启hbase
4.修改hbase中表SYSTEM:CATALOG名为SYSTEM.CATALOG
disable 'SYSTEM:CATALOG'
snapshot 'SYSTEM:CATALOG', 'cata_tableSnapshot'
clone_snapshot 'cata_tableSnapshot', 'SYSTEM.CATALOG'
drop 'SYSTEM:CATALOG'
注意:
一定要在第三步最后删掉SYSTEM:CATALOG,并且保证你已经clone了一张SYSTEM.CATALOG
方案二: 暴力重置hbase
1.删除zookeeper中的数据
zkCli.sh进入zookeeper管理页面,删除hbase目录(rmr
/delete
命令)
delete /hbase
2.删除hdfs中的/hbase目录
hadoop fs -rm -r /hbase
3.重启hbase
完成!