Krishna, You should set auto flush to false to enable batch mode of operation and exception is being thrown because batch and results are not of the same size. Initialize results like this Object[] results = new Object[batch.size()]; and then pass it to table.batch(batch, results);
I hope that helps On Tue, Dec 20, 2011 at 11:26 AM, Vamshi Krishna <[email protected]>wrote: > Hi all, i am trying to copy rows from multiple tables to one table, > selecting rows by some criteria. > i am using batch of puts in to table i.e for every period=100 rows(each row > is of maximum 12 bytes), i am executing > ... > ... > > table.setAutoFlush(true); > table.batch(batch, results); > table.flushCommits(); > .... > > and i have declared before only like , > private long period=100,count=0; > List<Row> batch = new ArrayList<Row>(); > Object[] results = new Object[100]; > and > Scan s=new Scan(); > s.setCacheBlocks(false); > s.setCaching(100); > .... > > i am getting following exception.. > 11/12/20 11:32:48 INFO mapred.JobClient: Running job: job_201112200929_0001 > 11/12/20 11:32:49 INFO mapred.JobClient: map 0% reduce 0% > 11/12/20 11:33:01 INFO mapred.JobClient: Task Id : > attempt_201112200929_0001_m_000000_0, Status : FAILED > java.lang.IllegalArgumentException: argument results must be the same size > as argument list > at > > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1104) > at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:598) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:56) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:1) > at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) > at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305) > at org.apache.hadoop.mapred.Child.main(Child.java:170) > > 11/12/20 11:33:04 INFO mapred.JobClient: Task Id : > attempt_201112200929_0001_m_000001_0, Status : FAILED > java.lang.IllegalArgumentException: argument results must be the same size > as argument list > at > > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1104) > at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:598) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:56) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:1) > at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) > at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305) > at org.apache.hadoop.mapred.Child.main(Child.java:170) > > 11/12/20 11:33:10 INFO mapred.JobClient: Task Id : > attempt_201112200929_0001_m_000000_1, Status : FAILED > java.lang.IllegalArgumentException: argument results must be the same size > as argument list > at > > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1104) > at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:598) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:56) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:1) > at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) > at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305) > at org.apache.hadoop.mapred.Child.main(Child.java:170) > > 11/12/20 11:33:13 INFO mapred.JobClient: Task Id : > attempt_201112200929_0001_m_000001_1, Status : FAILED > java.lang.IllegalArgumentException: argument results must be the same size > as argument list > at > > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1104) > at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:598) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:56) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:1) > at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) > at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305) > at org.apache.hadoop.mapred.Child.main(Child.java:170) > > 11/12/20 11:33:16 INFO mapred.JobClient: Task Id : > attempt_201112200929_0001_m_000000_2, Status : FAILED > java.lang.IllegalArgumentException: argument results must be the same size > as argument list > at > > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1104) > at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:598) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:56) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:1) > at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) > at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305) > at org.apache.hadoop.mapred.Child.main(Child.java:170) > > 11/12/20 11:33:19 INFO mapred.JobClient: Task Id : > attempt_201112200929_0001_m_000001_2, Status : FAILED > java.lang.IllegalArgumentException: argument results must be the same size > as argument list > at > > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1104) > at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:598) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:56) > at Setunion.Setunion3$setunionMapper.map(Setunion3.java:1) > at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) > at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305) > at org.apache.hadoop.mapred.Child.main(Child.java:170) > > 11/12/20 11:33:25 INFO mapred.JobClient: Job complete: > job_201112200929_0001 > 11/12/20 11:33:25 INFO mapred.JobClient: Counters: 4 > 11/12/20 11:33:25 INFO mapred.JobClient: Job Counters > 11/12/20 11:33:25 INFO mapred.JobClient: Rack-local map tasks=4 > 11/12/20 11:33:25 INFO mapred.JobClient: Launched map tasks=8 > 11/12/20 11:33:25 INFO mapred.JobClient: Data-local map tasks=4 > 11/12/20 11:33:25 INFO mapred.JobClient: Failed map tasks=1 > hduser@vamshikrishna-desktop:/usr/local/hadoop-0.20.2$ > > > Actually some thousands of rows have to be inserted to the new table, but > only 200 rows i could see after above messages thrown on to console. > Please help me why it is happening like this..? please somebody help.. > -- > *Regards* > * > Vamshi Krishna > * > -- Regards Akhtar Muhammad Din
