Configure Apache Phoenix
To configure Phoenix, complete the following steps:
- Add the following property to the - /etc/hbase/hbase-site.xmlfile on all HBase nodes, the MasterServer, and all RegionServers to prevent deadlocks from occurring during maintenance on global indexes:- <property> <name>hbase.regionserver.wal.codec</name> <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> </property> 
- To enable user-defined functions, configure the following property in - /etc/hbase/confon all Hbase nodes.- <property> <name>phoenix.functions.allowUserDefinedFunctions</name> <value>true</value> <description>enable UDF functions</description> </property> 
- Ensure the client side hbase-site.xml matches the server side configuration. 
- (Optional) To use local indexing, set the following three properties. These properties ensure collocation of data table and local index regions: ![[Note]](../common/images/admon/note.png) - Note - The local indexing feature is a technical preview and considered under development. Do not use this feature in your production systems. If you have questions regarding this feature, contact Support by logging a case on our Hortonworks Support Portal at http://hortonworks.com/services/support/. - Add the following two properties, if they do not already exist, to the master side configurations: - <property> <name>hbase.master.loadbalancer.class</name> <value>org.apache.phoenix.hbase.index.balancer.IndexLoadBalancer</value> </property>  <property> <name>hbase.coprocessor.master.classes</name> <value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value> </property> - Add the following, if it does not already exist, to the RegionServer side configurations: - <property> <name>hbase.coprocessor.regionserver.classes</name> <value>org.apache.hadoop.hbase.regionserver.LocalIndexMerger</value> </property> 
- If the folder specified in - hbase.tmp.dirproperty on- hbase-site.xmldoes not exist, create that directory with adequate permissions.
- Set the following porperty in the hbase-site.xml file for all RegionServers, but not on the client side: - <property> <name>hbase.rpc.controllerfactory.class</name> <value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value> </property> 
- Restart the HBase Master and RegionServers. 
Configuring Phoenix to Run in a Secure Cluster
Perform the following additional steps to configure Phoenix to run in a secure Hadoop cluster:
- To link the HBase configuration file with the Phoenix libraries: - ln -sf HBASE_CONFIG_DIR/hbase-site.xml PHOENIX_HOME/bin/hbase-site.xml
- To link the Hadoop configuration file with the Phoenix libraries: - ln -sf HADOOP_CONFIG_DIR/core-site.xml PHOENIX_HOME/bin/core-site.xml
| ![[Note]](../common/images/admon/note.png) | Note | 
|---|---|
| When running the pssql.py and sqlline.py Phoenix scripts in secure mode, you can safely ignore the following warnings. | 
14/04/19 00:56:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 14/04/19 00:56:24 WARN util.DynamicClassLoader: Failed to identify the fs of dir hdfs://<HOSTNAME>:8020/apps/hbase/data/lib, ignored java.io.IOException: No FileSystem for scheme: hdfs

