Failure Creating a Phoenix Schema

Mapping a Phoenix schema to a HBase namespace enables multitenancy. Before running a Phoenix job you must verify that namespace mapping is enabled in the HBase safety valve. Once enabled, tables that are created with the Phoenix schema are mapped to the HBase namespace.

The following example shows a stack track error report that was generated after running a Phoenix job. It shows that the phoenix schema namespace mapping property is not enabled:

Role Log
	at org.apache.phoenix.shaded.org.eclipse.jetty.util.thread.strategy.ExecuteProduceCon
sume.executeProduceConsume(ExecuteProduceConsume.java:303)
	at org.apache.phoenix.shaded.org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
	at org.apache.phoenix.shaded.org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
	at org.apache.phoenix.shaded.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
	at org.apache.phoenix.shaded.org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: ERROR 725 (43M08): Cannot create schema because config phoenix.schema.isNamespaceMappingEnabled for enabling name space mapping isn't enabled. schemaName=SIGMA_DB

Solution:

Add the following property in the HBase safety valve:
<property><name>phoenix.schema.isNamespaceMappingEnabled</name><value>true</value></property>

After adding the property, redeploy the client configurations and restart HBase and the dependent services.