After copying data from column _0 to column 0 phoenix is able to read the data (didn't try the catalog trick).
I suppose this is the way Phoenix does the upgrade internally also (move data between columns)? On Wed, Jun 25, 2014 at 9:48 PM, Jeffrey Zhong <[email protected]> wrote: > > No, you have to create column family name 0 and copy the data from column > family "_0" to it or (personally I didn't try the following) you might > able to change meta data in system.catalog to use column family "_0" > instead. > > For normal upgrade, you should follow instructions at > http://phoenix.apache.org/upgrade_from_2_2.html > > On 6/25/14 7:11 AM, "Kristoffer Sjögren" <[email protected]> wrote: > >>Yes, the import worked after creating the column family and I can see >>all the rows when doing scans. >> >>But I got nothing when using Phoenix 4.0 client, so after comparing >>old and new tables I saw that 4.0 tables have column family name 0 >>instead of _0. >> >>Now as far as I know there is no way to rename a column qualifier, >>right? So I cant simply remove the 0 column and rename _0 to 0 right? >> >> >> >>On Wed, Jun 25, 2014 at 3:08 AM, Jeffrey Zhong <[email protected]> >>wrote: >>> >>> >>> You can try to use hbase shell to manually add "_0" column family into >>> your destination hbase table. Phoenix 4.0 from Apache can't work on >>> hbase0.96. You can check discussions in >>> https://issues.apache.org/jira/browse/PHOENIX-848 to see if your hbase >>>is >>> good for phoenix 4.0. >>> >>> Thanks, >>> -Jeffrey >>> >>> On 6/24/14 5:32 AM, "Kristoffer Sjögren" <[email protected]> wrote: >>> >>>>Hi >>>> >>>>We're currently running Phoenix 2.2 on HBase 0.94 CDH 4.4 and slowly >>>>preparing to move to Phoenix 4 and HBase 0.96 CDH 5. >>>> >>>>For my first tests I wanted to simply copy data from 0.94 to 0.96, >>>>which works fine for regular hbase table using the following commands: >>>> >>>>$ hbase org.apache.hadoop.hbase.mapreduce.Export table /tmp/table >>>>$ hadoop distcp hftp://hbase94:50070/tmp/table hdfs://hbase96/tmp/table >>>>$ hbase -Dhbase.import.version=0.94 >>>>org.apache.hadoop.hbase.mapreduce.Import table /tmp/table >>>> >>>>This approach fail on the import for for phoenix tables tough (see >>>>below) - where I create an identical table in 0.96 using phoenix 4.0 >>>>sqlline and then do the commands mentioned above. As I understand, the >>>>_0 column family was used to allow hbase empty rows. >>>> >>>>Are there any tricks that can be made to allow copy data between these >>>>two installations? >>>> >>>>Cheers, >>>>-Kristoffer >>>> >>>> >>>>2014-06-18 13:31:09,633 INFO [main] mapreduce.Job: Task Id : >>>>attempt_1403015236309_0015_m_000004_1, Status : FAILED >>>>Error: >>>>org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: >>>>Failed 6900 actions: >>>>org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: >>>>Column family _0 does not exist in region >>>>TABLE,\x1F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x >>>>00 >>>>\x00\x00\x00\x00\x00\x00,1403090967713.51a3eefa9b92568a87223aff7878cdcf. >>>>in table 'TABLE', {TABLE_ATTRIBUTES => {coprocessor$1 => >>>>'|org.apache.phoenix.coprocessor.ScanRegionObserver|1|', coprocessor$2 >>>>=> >>>>'|org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver|1|', >>>>coprocessor$3 => >>>>'|org.apache.phoenix.coprocessor.GroupedAggregateRegionObserver|1|', >>>>coprocessor$4 => >>>>'|org.apache.phoenix.coprocessor.ServerCachingEndpointImpl|1|', >>>>coprocessor$5 => >>>>'|org.apache.phoenix.hbase.index.Indexer|1073741823|index.builder=org.ap >>>>ac >>>>he.phoenix.index.PhoenixIndexBuilder,org.apache.hadoop.hbase.index.codec >>>>.c >>>>lass=org.apache.phoenix.index.PhoenixIndexCodec'}, >>>>{NAME => '0', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => >>>>'false', KEEP_DELETED_CELLS => 'true', DATA_BLOCK_ENCODING => >>>>'FAST_DIFF', COMPRESSION => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => >>>>'0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => >>>>'0'} >>>>at >>>>org.apache.hadoop.hbase.regionserver.HRegionServer.doBatchOp(HRegionServ >>>>er >>>>.java:4056) >>>>at >>>>org.apache.hadoop.hbase.regionserver.HRegionServer.doNonAtomicRegionMuta >>>>ti >>>>on(HRegionServer.java:3361) >>>>at >>>>org.apache.hadoop.hbase.regionserver.HRegionServer.multi(HRegionServer.j >>>>av >>>>a:3265) >>>>at >>>>org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2. >>>>ca >>>>llBlockingMethod(ClientProtos.java:26935) >>>>at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2175) >>>>at >>>>org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1879) >>>>: 6900 times, >>>>at >>>>org.apache.hadoop.hbase.client.AsyncProcess$BatchErrors.makeException(As >>>>yn >>>>cProcess.java:187) >>>>at >>>>org.apache.hadoop.hbase.client.AsyncProcess$BatchErrors.access$500(Async >>>>Pr >>>>ocess.java:171) >>>>at >>>>org.apache.hadoop.hbase.client.AsyncProcess.getErrors(AsyncProcess.java: >>>>88 >>>>2) >>>>at >>>>org.apache.hadoop.hbase.client.HTable.backgroundFlushCommits(HTable.java >>>>:9 >>>>40) >>>>at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:903) >>>>at org.apache.hadoop.hbase.client.HTable.put(HTable.java:864) >>>>at >>>>org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.wr >>>>it >>>>e(TableOutputFormat.java:126) >>>>at >>>>org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.wr >>>>it >>>>e(TableOutputFormat.java:87) >>>>at >>>>org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask. >>>>ja >>>>va:635) >>>>at >>>>org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskIn >>>>pu >>>>tOutputContextImpl.java:89) >>>>at >>>>org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedM >>>>ap >>>>per.java:112) >>>>at >>>>org.apache.hadoop.hbase.mapreduce.Import$Importer.writeResult(Import.jav >>>>a: >>>>167) >>>>at >>>>org.apache.hadoop.hbase.mapreduce.Import$Importer.map(Import.java:136) >>>>at >>>>org.apache.hadoop.hbase.mapreduce.Import$Importer.map(Import.java:118) >>>>at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) >>>>at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) >>>>at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340) >>>>at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) >>>>at java.security.AccessController.doPrivileged(Native Method) >>>>at javax.security.auth.Subject.doAs(Subject.java:422) >>>>at >>>>org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformatio >>>>n. >>>>java:1548) >>>>at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163) >>> >>> >>> >>> -- >>> CONFIDENTIALITY NOTICE >>> NOTICE: This message is intended for the use of the individual or >>>entity to >>> which it is addressed and may contain information that is confidential, >>> privileged and exempt from disclosure under applicable law. If the >>>reader >>> of this message is not the intended recipient, you are hereby notified >>>that >>> any printing, copying, dissemination, distribution, disclosure or >>> forwarding of this communication is strictly prohibited. If you have >>> received this communication in error, please contact the sender >>>immediately >>> and delete it from your system. Thank You. > > > > -- > CONFIDENTIALITY NOTICE > NOTICE: This message is intended for the use of the individual or entity to > which it is addressed and may contain information that is confidential, > privileged and exempt from disclosure under applicable law. If the reader > of this message is not the intended recipient, you are hereby notified that > any printing, copying, dissemination, distribution, disclosure or > forwarding of this communication is strictly prohibited. If you have > received this communication in error, please contact the sender immediately > and delete it from your system. Thank You.
