[b]hbase导入导出第一方案:[/b]
hbase已经自带了这个命令,下面就说一下怎么使用这个命令
(一)设置环境变量
在hadoop-0.20.2/conf/hadoop-env.sh 中添加
export HBASE_HOME=/home/rain/hbase/hbase-0.90.0
export HADOOP_CLASSPATH=$HBASE_HOME/hbase-0.90.0.jar:$HBASE_HOME:$HBASE_HOME/lib/zookeeper-3.3.2.jar:$HBASE_HOME/conf
(二)导出
1)输入命令hadoop-0.20.2/bin/hadoop jar /home/rain/hbase/hbase-0.90.0/hbase-0.90.0.jar export 表名 路径
eg:hadoop-0.20.2/bin/hadoop jar /home/rain/hbase/hbase-0.90.0/hbase-0.90.0.jar export CARREGISTER /home/rain/tableout
2)从hdfs拷出来
输入命令hadoop-0.20.2/bin/hadoop -copyToLocal /home/rain/tableout /somewhere/local
eg:hadoop-0.20.2/bin/hadoop -copyToLocal /home/rain/tableout /home/rain/tableout
查看/home/rain/tableout里是否有part-m-000000,这个就是这个表导出的内容
导入
1)把rt-m-000000导入hdfs
输入命令:hadoop-0.20.2/bin/hadoop -copyFromLocal /somewhere/local /import/your_table
eg.hadoop-0.20.2/bin/hadoop -copyFromLocal /somewhere/local /import/carregister
从hdfs导入到hbase
输入命令:hadoop-0.20.2/bin/hadoop jar /path/to/hbase-0.90.0.jar 表名 hdfs路径
eg。doop-0.20.2/bin/hadoop jar /path/to/hbase-0.90.0.jar CARREGISTER /import/carregister
详细资料参考http://www.sethcall.com/blog/2010/04/10/how-to-export-and-import-an-hbase-table/
[b]
hbase导入导出第二方案:[/b][size=large][/size]
把hbase中某个表第数据导出到Hadoop中:
>hbase org.apache.Hadoop.hbase.mapreduce.Driver export table1 table1
hbase中首先要有table1这个表才能导出成功。导出的表,在Hadoop文件系统的当前用户目录下,table1文件夹中。例如,导出后在hadoop文件系统中的目录结构:
Hadoop fs -ls后,看到:
/user/blackwing/table1/part-r-00000
2.把这个表导入到另外一台机器第hbase中时,需要把part-r-00000先put到Hadoop中,假设put的路径也是:
/user/blackwing/table1/
而且,这个要导入的hbase要已经建有相同第表格。
那么从Hadoop中导入数据到hbase:
>hbase org.apache.Hadoop.hbase.mapreduce.Driver import table1 part-r-00000
这样,没有意外的话就能正常把hbase数据导入到另外一个hbase数据库。
hbase已经自带了这个命令,下面就说一下怎么使用这个命令
(一)设置环境变量
在hadoop-0.20.2/conf/hadoop-env.sh 中添加
export HBASE_HOME=/home/rain/hbase/hbase-0.90.0
export HADOOP_CLASSPATH=$HBASE_HOME/hbase-0.90.0.jar:$HBASE_HOME:$HBASE_HOME/lib/zookeeper-3.3.2.jar:$HBASE_HOME/conf
(二)导出
1)输入命令hadoop-0.20.2/bin/hadoop jar /home/rain/hbase/hbase-0.90.0/hbase-0.90.0.jar export 表名 路径
eg:hadoop-0.20.2/bin/hadoop jar /home/rain/hbase/hbase-0.90.0/hbase-0.90.0.jar export CARREGISTER /home/rain/tableout
2)从hdfs拷出来
输入命令hadoop-0.20.2/bin/hadoop -copyToLocal /home/rain/tableout /somewhere/local
eg:hadoop-0.20.2/bin/hadoop -copyToLocal /home/rain/tableout /home/rain/tableout
查看/home/rain/tableout里是否有part-m-000000,这个就是这个表导出的内容
导入
1)把rt-m-000000导入hdfs
输入命令:hadoop-0.20.2/bin/hadoop -copyFromLocal /somewhere/local /import/your_table
eg.hadoop-0.20.2/bin/hadoop -copyFromLocal /somewhere/local /import/carregister
从hdfs导入到hbase
输入命令:hadoop-0.20.2/bin/hadoop jar /path/to/hbase-0.90.0.jar 表名 hdfs路径
eg。doop-0.20.2/bin/hadoop jar /path/to/hbase-0.90.0.jar CARREGISTER /import/carregister
详细资料参考http://www.sethcall.com/blog/2010/04/10/how-to-export-and-import-an-hbase-table/
[b]
hbase导入导出第二方案:[/b][size=large][/size]
把hbase中某个表第数据导出到Hadoop中:
>hbase org.apache.Hadoop.hbase.mapreduce.Driver export table1 table1
hbase中首先要有table1这个表才能导出成功。导出的表,在Hadoop文件系统的当前用户目录下,table1文件夹中。例如,导出后在hadoop文件系统中的目录结构:
Hadoop fs -ls后,看到:
/user/blackwing/table1/part-r-00000
2.把这个表导入到另外一台机器第hbase中时,需要把part-r-00000先put到Hadoop中,假设put的路径也是:
/user/blackwing/table1/
而且,这个要导入的hbase要已经建有相同第表格。
那么从Hadoop中导入数据到hbase:
>hbase org.apache.Hadoop.hbase.mapreduce.Driver import table1 part-r-00000
这样,没有意外的话就能正常把hbase数据导入到另外一个hbase数据库。