Hi Jesse,

I ran the following code to test the existence of the classes you asked me
to check. I initialized the two constants to the following values.

=======
public static final String INDEX_WAL_EDIT_CODEC_CLASS_NAME =
"org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec";

public static final String WAL_EDIT_CODEC_CLASS_KEY =
"hbase.regionserver.wal.codec";
======

Then I ran the following code and got the error "Not found" in the equality
test.

====
        if
(INDEX_WAL_EDIT_CODEC_CLASS_NAME.equals(conf.get(WAL_EDIT_CODEC_CLASS_KEY,
null))) {
            // its installed, and it can handle compression and
non-compression cases
            System.out.println("True");
            return true;
        }
        System.out.println("Not Found");
====

I am not sure, if I initialized the values for the constants correctly. If
I did, then I think some jars are missing or I have incorrect version.
We use CDH 4.7 which has the Hbase version of 0.94.15 and Phoenix version
of 3.0

Can you tell me how to make this work? Your assistance is greatly
appreciated.

Regards,
Saravanan.A

Full code
==========
public static void main(String[] args) {
        Configuration config=new Configuration();
        isWALEditCodecSet(config);

    }
    public static boolean isWALEditCodecSet(Configuration conf) {
        // check to see if the WALEditCodec is installed
        try {
            // Use reflection to load the IndexedWALEditCodec, since it may
not load with an older version
            // of HBase
            Class.forName(INDEX_WAL_EDIT_CODEC_CLASS_NAME);
            System.out.println("Found");
        } catch (Throwable t) {
            System.out.println("Error");
            return false;
        }
        if
(INDEX_WAL_EDIT_CODEC_CLASS_NAME.equals(conf.get(WAL_EDIT_CODEC_CLASS_KEY,
null))) {
            // its installed, and it can handle compression and
non-compression cases
            System.out.println("True");
            return true;
        }
        System.out.println("Not Found");
        return false;
    }



On Sat, Aug 9, 2014 at 12:02 AM, Jesse Yates <[email protected]>
wrote:

> This error is thrown when on the server-side, the following code returns
> false (IndexManagementUtil#isWALEditCodecSet):
>
>     public static boolean isWALEditCodecSet(Configuration conf) {
>>         // check to see if the WALEditCodec is installed
>>         try {
>>             // Use reflection to load the IndexedWALEditCodec, since it
>> may not load with an older version
>>             // of HBase
>>             Class.forName(INDEX_WAL_EDIT_CODEC_CLASS_NAME);
>>         } catch (Throwable t) {
>>             return false;
>>         }
>>         if
>> (INDEX_WAL_EDIT_CODEC_CLASS_NAME.equals(conf.get(WAL_EDIT_CODEC_CLASS_KEY,
>> null))) {
>>             // its installed, and it can handle compression and
>> non-compression cases
>>             return true;
>>         }
>>         return false;
>>     }
>>
>
>  You could just put this into a main method in a java class, put that in
> the classpath of your HBase install on one of the machines on your cluster
> and run it from the HBase command line to make sure that it passes.
> Otherwise, you might not have the actual right configs (copy-paste error?)
> or missing the right jars.
>
>
> Also, FWIW, this property:
>
>  <property>
>>      <name>hbase.region.server.rpc.scheduler.factory.class</name>
>>
>>  
>> <value>org.apache.phoenix.hbase.index.ipc.PhoenixIndexRpcSchedulerFactory</value>
>>      <description>Factory to create the Phoenix RPC Scheduler that knows
>> to put index updates into index queues</description>
>>
> </property>
>>
>
>  is only valid in HBase 0.98.4+ (as pointed out in the section "Advanced
> Setup - Removing Index Deadlocks (0.98.4+)"). However, it should still be
> fine to have in older versions.
>
>
>
>
> -------------------
> Jesse Yates
> @jesse_yates
> jyates.github.com
>
>
> On Fri, Aug 8, 2014 at 2:18 AM, Saravanan A <[email protected]>
> wrote:
>
>> This is my Hbase-site.xml file...
>>
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!--Autogenerated by Cloudera CM on 2014-06-16T11:10:16.319Z-->
>> <configuration>
>>
>>  <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.phoenix.hbase.index.ipc.PhoenixIndexRpcSchedulerFactory</value>
>>      <description>Factory to create the Phoenix RPC Scheduler that knows
>> to put index updates into index queues</description>
>>  </property>
>>
>>   <property>
>>     <name>hbase.rootdir</name>
>>     <value>hdfs://alpmas.alp.com:8020/hbase</value>
>>   </property>
>>   <property>
>>     <name>hbase.client.write.buffer</name>
>>     <value>2097152</value>
>>   </property>
>>   <property>
>>     <name>hbase.client.pause</name>
>>     <value>1000</value>
>>   </property>
>>   <property>
>>     <name>hbase.client.retries.number</name>
>>     <value>10</value>
>>   </property>
>>   <property>
>>     <name>hbase.client.scanner.caching</name>
>>     <value>1000</value>
>>   </property>
>>   <property>
>>     <name>hbase.client.keyvalue.maxsize</name>
>>     <value>20971520</value>
>>   </property>
>>   <property>
>>     <name>hbase.rpc.timeout</name>
>>     <value>1200000</value>
>>   </property>
>>   <property>
>>     <name>hbase.security.authentication</name>
>>     <value>simple</value>
>>   </property>
>>   <property>
>>     <name>zookeeper.session.timeout</name>
>>     <value>240000</value>
>>   </property>
>>   <property>
>>     <name>zookeeper.retries</name>
>>     <value>5</value>
>>   </property>
>>   <property>
>>     <name>zookeeper.pause</name>
>>     <value>5000</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>zk3.alp.com,zk2.alp.com,zk1.alp.com</value>
>>   </property>
>>   <property>
>>     <name>hbase.zookeeper.property.clientPort</name>
>>     <value>2181</value>
>>   </property>
>> </configuration>
>>
>>
>>
>> On Fri, Aug 8, 2014 at 2:46 PM, Saravanan A <[email protected]>
>> wrote:
>>
>>> I already included this property in hbase-site.xml in all region
>>> servers..but still am getting that error...If i define my view as
>>> IMMUTABLE_ROWS = true, then i can able to create view..but i want to create
>>> index for mutable..
>>>
>>>
>>> On Fri, Aug 8, 2014 at 2:10 PM, Abhilash L L <[email protected]
>>> > wrote:
>>>
>>>> Really sorry, shared the wrong config
>>>>
>>>>
>>>>
>>>> <property>
>>>>   <name>hbase.regionserver.wal.codec</name>
>>>>   
>>>> <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
>>>> </property>
>>>>
>>>>
>>>>
>>>> Regards,
>>>> Abhilash L L
>>>> Capillary Technologies
>>>> M:919886208262
>>>> [email protected] | www.capillarytech.com
>>>>
>>>> Email from people at capillarytech.com may not represent official
>>>> policy of  Capillary Technologies unless explicitly stated. Please see our
>>>> Corporate-Email-Policy
>>>> <http://support.capillary.co.in/policy-public/Corporate-Email-Policy.pdf>
>>>> for details. Contents of this email are confidential. Please contact the
>>>> Sender if you have received this email in error.
>>>>
>>>>
>>>>
>>>> On Fri, Aug 8, 2014 at 1:07 PM, Saravanan A <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Abhilash,
>>>>>
>>>>> Thanks for the replay...i included above property and restarted the
>>>>> region servers but still am getting the same error...
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Aug 8, 2014 at 12:39 PM, Abhilash L L <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Saravanan,
>>>>>>
>>>>>>     Please check the Setup section here
>>>>>>
>>>>>> http://phoenix.apache.org/secondary_indexing.html
>>>>>>
>>>>>>    You will need to add this config to all Region Servers in
>>>>>> hbase-site. xml, as the error says as well (You will need to restart the
>>>>>> servers after the change)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> <property>
>>>>>>   <name>hbase.region.server.rpc.scheduler.factory.class</name>
>>>>>>   
>>>>>> <value>org.apache.phoenix.hbase.index.ipc.PhoenixIndexRpcSchedulerFactory</value>
>>>>>>   <description>Factory to create the Phoenix RPC Scheduler that knows to 
>>>>>> put index updates into index queues</description>
>>>>>> </property>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Abhilash L L
>>>>>> Capillary Technologies
>>>>>> M:919886208262
>>>>>> [email protected] | www.capillarytech.com
>>>>>>
>>>>>> Email from people at capillarytech.com may not represent official
>>>>>> policy of  Capillary Technologies unless explicitly stated. Please see 
>>>>>> our
>>>>>> Corporate-Email-Policy
>>>>>> <http://support.capillary.co.in/policy-public/Corporate-Email-Policy.pdf>
>>>>>> for details. Contents of this email are confidential. Please contact the
>>>>>> Sender if you have received this email in error.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Aug 8, 2014 at 12:22 PM, Saravanan A <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>>     I have a table in hbase and created view in phoenix and try to
>>>>>>> create index on a column on the view..but i got following error..
>>>>>>>
>>>>>>> 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=tab2_col4
>>>>>>> (state=42Y88,code=1029)
>>>>>>>
>>>>>>>
>>>>>>> but i have added the hbase.regionserver.wal.codec property in all my
>>>>>>> region server...i can able to create IMMUTABLE index for that...
>>>>>>>
>>>>>>> Am using Hbase ---0.94.15-cdh4.7.0
>>>>>>>             Phoenix---3.0
>>>>>>>
>>>>>>>
>>>>>>> am i missing something???
>>>>>>> thanks in advance...
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>> Saravanan
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> Email from people at capillarytech.com may not represent official
>>>>>> policy of Capillary Technologies unless explicitly stated. Please see our
>>>>>> Corporate-Email-Policy for details.Contents of this email are 
>>>>>> confidential.
>>>>>> Please contact the Sender if you have received this email in error.
>>>>>>
>>>>>
>>>>>
>>>>
>>>> Email from people at capillarytech.com may not represent official
>>>> policy of Capillary Technologies unless explicitly stated. Please see our
>>>> Corporate-Email-Policy for details.Contents of this email are confidential.
>>>> Please contact the Sender if you have received this email in error.
>>>>
>>>
>>>
>>
>

Reply via email to