1、查看要做测试的表test
报错java.lang.NoClassDefFoundError: com/google/common/collect/Multimap,找不到Hbase类
再次执行,还是报错
还是有报错,但是报错的信息与之前不一样了,说明复制的JAR包是正确的,这次是说找不到Zookeeper
复制Zookeeper的JAR包到Hadoop的lib目录中,再次执行
3、正式执行Hbase export表的操作
还是报错,真是麻烦啊,这次是protobuf包
复制缺少JAR包protobuf,再次执行export

5、执行import操作,导入test表
-
hbase(main):002:0> scan 'test'
-
ROW COLUMN+CELL
-
row-01 column=cf1:id, timestamp=1442020353563, value=1
-
row-01 column=cf1:name, timestamp=1442020382276, value=aaa
-
row-02 column=cf1:id, timestamp=1442020360143, value=2
-
row-02 column=cf1:name, timestamp=1442020388494, value=bbb
-
row-03 column=cf1:id, timestamp=1442020364496, value=3
-
row-03 column=cf1:name, timestamp=1442020393616, value=ccc
-
row-04 column=cf1:id, timestamp=1442020369002, value=4
-
row-04 column=cf1:name, timestamp=1442020398557, value=ddd
-
row-05 column=cf1:id, timestamp=1442020373493, value=5
-
row-05 column=cf1:name, timestamp=1442020404131, value=eee
- 5 row(s) in 0.7520 seconds
2、使用Hadoop的export功能导出test表
首先查看JAR表的有哪些帮助选项
-
grid@master1:~$ hadoop jar /usr/local/hbase/hbase-0.94.27.jar -h
-
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Multimap
-
at org.apache.hadoop.hbase.mapreduce.Driver.main(Driver.java:43)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-
at java.lang.reflect.Method.invoke(Method.java:606)
-
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
-
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Multimap
-
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
-
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
-
at java.security.AccessController.doPrivileged(Native Method)
-
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
-
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
-
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
- ... 6 more
- grid@master1:~$ cp /usr/local/hbase/lib/guava-11.0.2.jar /usr/local/hadoop/lib
-
grid@master1:~$ hadoop jar /usr/local/hbase/hbase-0.94.27.jar -h
-
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/zookeeper/KeeperException
-
at java.lang.Class.getDeclaredMethods0(Native Method)
-
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
-
at java.lang.Class.getMethod0(Class.java:2856)
-
at java.lang.Class.getMethod(Class.java:1668)
-
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.<init>(ProgramDriver.java:56)
-
at org.apache.hadoop.util.ProgramDriver.addClass(ProgramDriver.java:99)
-
at org.apache.hadoop.hbase.mapreduce.Driver.main(Driver.java:47)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-
at java.lang.reflect.Method.invoke(Method.java:606)
-
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
-
Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.KeeperException
-
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
-
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
-
at java.security.AccessController.doPrivileged(Native Method)
-
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
-
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
-
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
- ... 12 more
- grid@master1:~$ cp /usr/local/zookeeper/zookeeper-3.4.5.jar /usr/local/hadoop/lib
-
grid@master1:~$ hadoop jar /usr/local/hbase/hbase-0.94.27.jar -h
-
Unknown program '-h' chosen.
-
Valid program names are:
-
CellCounter: Count cells in HBase table
-
completebulkload: Complete a bulk data load.
-
copytable: Export a table from local cluster to peer cluster
-
export: Write table data to HDFS.
-
import: Import data written by Export.
-
importtsv: Import data in TSV format.
-
rowcounter: Count rows in HBase table
- verifyrep: Compare the data from tables in two different clusters. WARNING: It doesn't work for incrementColumnValues'd cells since the timestamp is changed after being appended to the log.
-
grid@master1:~$ hadoop jar /usr/local/hbase/hbase-0.94.27.jar export -D mapred.output.compress=true -D mapred.output.compression.condec=org.apache.hadoop.io.compress.BZip2Codec -D mapred.output.compression.type=BLOCK test /backup/test 2147483647
-
15/09/13 01:35:49 INFO mapreduce.Export: versions=2147483647, starttime=0, endtime=9223372036854775807, keepDeletedCells=false
-
Exception in thread "main" java.lang.reflect.InvocationTargetException
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-
at java.lang.reflect.Method.invoke(Method.java:606)
-
at org.apache.hadoop.hbase.mapreduce.Driver.main(Driver.java:51)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-
at java.lang.reflect.Method.invoke(Method.java:606)
-
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
-
Caused by: java.lang.NoClassDefFoundError: com/google/protobuf/Message
-
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addHBaseDependencyJars(TableMapReduceUtil.java:657)
-
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:694)
-
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableMapperJob(TableMapReduceUtil.java:151)
-
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableMapperJob(TableMapReduceUtil.java:228)
-
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.initTableMapperJob(TableMapReduceUtil.java:94)
-
at org.apache.hadoop.hbase.mapreduce.Export.createSubmittableJob(Export.java:95)
-
at org.apache.hadoop.hbase.mapreduce.Export.main(Export.java:188)
-
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
-
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-
at java.lang.reflect.Method.invoke(Method.java:606)
-
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
-
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
-
... 10 more
-
Caused by: java.lang.ClassNotFoundException: com.google.protobuf.Message
-
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
-
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
-
at java.security.AccessController.doPrivileged(Native Method)
-
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
-
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
-
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
- ... 23 more
- grid@master1:~$ cp /usr/local/hbase/lib/protobuf-java-2.4.0a.jar /usr/local/hadoop/lib
-
grid@master1:~$ hadoop jar /usr/local/hbase/hbase-0.94.27.jar export -D mapred.output.compress=true -D mapred.output.compression.condec=org.apache.hadoop.io.compress.BZip2Codec -D mapred.output.compression.type=BLOCK test /backup/test 2147483647
-
.....................................................
-
15/09/13 01:48:57 INFO mapred.JobClient: Running job: job_201509122338_0002
-
15/09/13 01:48:58 INFO mapred.JobClient: map 0% reduce 0%
-
15/09/13 01:49:18 INFO mapred.JobClient: map 100% reduce 0%
-
15/09/13 01:49:23 INFO mapred.JobClient: Job complete: job_201509122338_0002
-
15/09/13 01:49:23 INFO mapred.JobClient: Counters: 29
- .....................................................
查看MR的UI,可以看到有一个job,是执行了export_test操作
4、为import操作做准备,truncate表test,此操作,是先disable表,在drop表,最后create表
-
hbase(main):004:0> truncate 'test'
-
Truncating 'test' table (it may take a while):
-
- Disabling table...
-
- Dropping table...
-
- Creating table...
-
0 row(s) in 3.5160 seconds
-
-
hbase(main):005:0> scan 'test'
-
ROW COLUMN+CELL
- 0 row(s) in 0.0270 seconds
-
grid@master1:~/sh$ hadoop jar /usr/local/hbase/hbase-0.94.27.jar import test /backup/test
-
.....................................................................
-
15/09/13 02:01:14 INFO mapreduce.TableOutputFormat: Created table instance for test
-
15/09/13 02:01:14 INFO input.FileInputFormat: Total input paths to process : 1
-
15/09/13 02:01:15 INFO mapred.JobClient: Running job: job_201509122338_0003
-
15/09/13 02:01:16 INFO mapred.JobClient: map 0% reduce 0%
-
15/09/13 02:01:36 INFO mapred.JobClient: map 100% reduce 0%
-
15/09/13 02:01:41 INFO mapred.JobClient: Job complete: job_201509122338_0003
- ..................................................................
UI中多了一个import_test的job
6、查看test测试表,记录都找回来了
-
hbase(main):006:0> scan 'test'
-
ROW COLUMN+CELL
-
row-01 column=cf1:id, timestamp=1442020353563, value=1
-
row-01 column=cf1:name, timestamp=1442020382276, value=aaa
-
row-02 column=cf1:id, timestamp=1442020360143, value=2
-
row-02 column=cf1:name, timestamp=1442020388494, value=bbb
-
row-03 column=cf1:id, timestamp=1442020364496, value=3
-
row-03 column=cf1:name, timestamp=1442020393616, value=ccc
-
row-04 column=cf1:id, timestamp=1442020369002, value=4
-
row-04 column=cf1:name, timestamp=1442020398557, value=ddd
-
row-05 column=cf1:id, timestamp=1442020373493, value=5
-
row-05 column=cf1:name, timestamp=1442020404131, value=eee
- 5 row(s) in 0.0680 seconds
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12219480/viewspace-1799128/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12219480/viewspace-1799128/
HBase 数据迁移全流程实操
4957

被折叠的 条评论
为什么被折叠?



