You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Mohammad Adnan Raza <ad...@gmail.com> on 2016/03/09 13:25:11 UTC

Fwd: Problem with CDH 5.5 with enabling mutable index on table

I tried to enable secondry index on one of table but it fails with
following exception.


*0: jdbc:phoenix:v-in-sd-hack-03:2181> CREATE INDEX agent_id_idx ON
transactions (AGENT_ID);*
*Error: ERROR 1029 (42Y88): Mutable secondary indexes must have the
hbase.regionserver.wal.codec property set to
org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec in the
hbase-sites.xml of every region server tableName=AGENT_ID_IDX
(state=42Y88,code=1029)*
*java.sql.SQLException: ERROR 1029 (42Y88): Mutable secondary indexes must
have the hbase.regionserver.wal.codec property set to
org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec in the
hbase-sites.xml of every region server tableName=AGENT_ID_IDX*
*        at
org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:388)*
*        at
org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)*
*        at
org.apache.phoenix.schema.MetaDataClient.createIndex(MetaDataClient.java:1128)*
*        at
org.apache.phoenix.compile.CreateIndexCompiler$1.execute(CreateIndexCompiler.java:95)*
*        at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:320)*
*        at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:312)*
*        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)*
*        at
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:310)*
*        at
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1433)*
*        at sqlline.Commands.execute(Commands.java:822)*
*        at sqlline.Commands.sql(Commands.java:732)*
*        at sqlline.SqlLine.dispatch(SqlLine.java:808)*
*        at sqlline.SqlLine.begin(SqlLine.java:681)*
*        at sqlline.SqlLine.start(SqlLine.java:398)*
*        at sqlline.SqlLine.main(SqlLine.java:292)*


In every region and master server I made the configuration changes in
hbase-site.xml file (which is present at /etc/hbase/conf.cloudera.hbase)

*<?xml version="1.0" encoding="UTF-8"?>*

*<!--Autogenerated by Cloudera Manager-->*
*<configuration>*
*  <property>*
*    <name>hbase.rootdir</name>*
*    <value>hdfs://v-in-sd-hack-03.synygy.net:8020/hbase
<http://v-in-sd-hack-03.synygy.net:8020/hbase></value>*
*  </property>*
*  <property>*
*    <name>hbase.replication</name>*
*    <value>true</value>*
*  </property>*
*  <property>*
*    <name>hbase.client.write.buffer</name>*
*    <value>2097152</value>*
*  </property>*
*<property>*
*  <name>hbase.regionserver.wal.codec</name>*
*
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>*
*</property>*

*<property>*
*  <name>hbase.region.server.rpc.scheduler.factory.class</name>*
*  <value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>*
*  <description>Factory to create the Phoenix RPC Scheduler that uses
separate queues for index and metadata updates</description>*
*</property>*
*<property>*
*  <name>hbase.rpc.controllerfactory.class</name>*
*
<value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>*
*  <description>Factory to create the Phoenix RPC Scheduler that uses
separate queues for index and metadata updates</description>*
*</property>*


*<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>*

*<property>*
*  <name>hbase.coprocessor.regionserver.classes</name>*
*  <value>org.apache.hadoop.hbase.regionserver.LocalIndexMerger</value>*
*</property>*


*  <property>*
*    <name>hbase.client.pause</name>*
*    <value>100</value>*
*  </property>*
*  <property>*
*    <name>hbase.client.retries.number</name>*
*    <value>35</value>*
*  </property>*
*  <property>*
*    <name>hbase.client.scanner.caching</name>*
*    <value>100</value>*
*  </property>*
*  <property>*
*    <name>hbase.client.keyvalue.maxsize</name>*
*    <value>10485760</value>*
*  </property>*
*  <property>*
*    <name>hbase.ipc.client.allowsInterrupt</name>*
*    <value>true</value>*
*  </property>*
*  <property>*
*    <name>hbase.client.primaryCallTimeout.get</name>*
*    <value>10</value>*
*  </property>*
*  <property>*
*    <name>hbase.client.primaryCallTimeout.multiget</name>*
*    <value>10</value>*
*  </property>*
*  <property>*
*    <name>hbase.regionserver.thrift.http</name>*
*    <value>false</value>*
*  </property>*
*  <property>*
*    <name>hbase.thrift.support.proxyuser</name>*
*    <value>false</value>*
*  </property>*
*  <property>*
*    <name>hbase.rpc.timeout</name>*
*    <value>3600000</value>*
*  </property>*
*  <property>*
*    <name>hbase.snapshot.enabled</name>*
*    <value>true</value>*
*  </property>*
*  <property>*
*    <name>hbase.snapshot.master.timeoutMillis</name>*
*    <value>60000</value>*
*  </property>*
*  <property>*
*    <name>hbase.snapshot.region.timeout</name>*
*    <value>60000</value>*
*  </property>*
*  <property>*
*    <name>hbase.snapshot.master.timeout.millis</name>*
*    <value>60000</value>*
*  </property>*
*  <property>*
*    <name>hbase.security.authentication</name>*
*    <value>simple</value>*
*  </property>*
*  <property>*
*    <name>hbase.rpc.protection</name>*
*    <value>authentication</value>*
*  </property>*
*  <property>*
*    <name>zookeeper.session.timeout</name>*
*    <value>60000</value>*
*  </property>*
*  <property>*
*    <name>zookeeper.znode.parent</name>*
*    <value>/hbase</value>*
*  </property>*
*  <property>*
*    <name>zookeeper.znode.rootserver</name>*
*    <value>root-region-server</value>*
*  </property>*
*  <property>*
*    <name>hbase.zookeeper.quorum</name>*
*    <value>v-in-sd-hack-03.synygy.net
<http://v-in-sd-hack-03.synygy.net></value>*
*  </property>*
*  <property>*
*    <name>hbase.zookeeper.property.clientPort</name>*
*    <value>2181</value>*
*  </property>*
*  <property>*
*    <name>hbase.rest.ssl.enabled</name>*
*    <value>false</value>*
*  </property>*
*</configuration>*

Also every /opt/cloudera/parcels/CDH-5.5.2-1.cdh5.5.2.p0.4/lib/hbase/lib
location I
have phoenix-4.6.0-cdh5.5.1-client.jar, phoenix-4.6.0-cdh5.5.1-server.jar
and phoenix-core-4.6.0-cdh5.5.1.jar copied.
I am able to fire normal queries but unable to create indexes which is much
needed.
I tried searching over net found several link talking about this but no
link with solution. I highly appreciate if one can quickly look into this.
Please let me know if more details needed.


-- 

*With Best Regards,*

*       Mohd Adnan*

*       Feature Development Lead*
       *Mobile               +91-7498194516 *


*       Blog                   adnanfaizan.blogspot.in
<http://adnanfaizan.blogspot.in>*

Re: Problem with CDH 5.5 with enabling mutable index on table

Posted by Sergey Soldatov <se...@gmail.com>.
Hi Mohammad,

It seems that you are using parcels in your distribution. IIRC in this
case services doesn't use configuration files located  at /etc/...
They are for clients only. Try to add those parameters using Cloudera
Manager HBase safety valve.

Thanks,
Sergey