phoenix如何关掉namespace功能

apache phoenix如何关掉namespace功能

问题描述

apache phoenix开启namespace功能跟简单,但是开启了怎么关闭呢?

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

完成!

上一篇:PostgreSQL获取建表语句存储过程


下一篇:数据库(子查询和排序)