Hbase表数据的导入和导出
2017-03-10 07:07
204 查看
Hbase没有提供类似于hive根据已有表的建表建表语句,如在hive中创建一个和已有表表结构完全一样的表可执行SQL:create
table tbl_test1 like tbl_test,在hbase只能采用笨办法,将其表结构拷贝出来建表。如:
![](http://img.blog.csdn.net/20170310070532121?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamF2YWp4ejAwOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
稍作整理:
create 'solrHbase2', {NAME => 'f1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'SNAPPY', MIN_VERSIONS =>
'0',KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
需要将原表结构中的TTL => 'FOREVER'去掉才能建。
1. 导出数据
使用hbase org.apache.hadoop.hbase.mapreduce.Driver export tablename hdfspath
或hbase org.apache.hadoop.hbase.mapreduce.Export tablename hdfspath
eg:hbase org.apache.hadoop.hbase.mapreduce.Driver export solrHbase /home/hdfs/export
此命令可加参数:
![](http://img.blog.csdn.net/20170310070607234?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamF2YWp4ejAwOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
解释如下:
Usage: Export [-D <property=value>]* <tablename> <outputdir> [<versions> [<starttime> [<endtime>]] [^[regex pattern] or [Prefix] to filter]]
Note: -D properties will be applied to the conf used.
For example:
-D mapred.output.compress=true 输出压缩
-D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec 压缩方式
-D mapred.output.compression.type=BLOCK 按块压缩
Additionally, the following SCAN properties can be specified
to control/limit what is exported..
-D hbase.mapreduce.scan.column.family=<familyName> 列簇
-D hbase.mapreduce.include.deleted.rows=true
-D hbase.mapreduce.scan.row.start=<ROWSTART> 开始rowkey
-D hbase.mapreduce.scan.row.stop=<ROWSTOP> 终止rowkey
For performance consider the following properties:
-Dhbase.client.scanner.caching=100 客户端缓存条数
-Dmapred.map.tasks.speculative.execution=false
-Dmapred.reduce.tasks.speculative.execution=false
For tables with very wide rows consider setting the batch size as below:
-Dhbase.export.scanner.batch=10 批次大小
输入命令后会生成mapreduce作业,不想全部将表数据导出,可采用参数-D
hbase.mapreduce.scan.row.start=<ROWSTART>和-D hbase.mapreduce.scan.row.stop=<ROWSTOP>指定rowkey范围导出数据。如导出指定rowkey范围的数据:
hbase org.apache.hadoop.hbase.mapreduce.Export -D hbase.mapreduce.scan.row.start=00
-D hbase.mapreduce.scan.row.stop=0d solrHbase /home/hdfs/export
这里的开始rowkey 00和结束rowkey 0d是rowkey的开头部分,该表是做过预分区的,在hbase的控制台上看:
![](http://img.blog.csdn.net/20170310070650545?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamF2YWp4ejAwOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1. 导入数据
hbase org.apache.hadoop.hbase.mapreduce.Driver import tablename hdfspath
或hbase org.apache.hadoop.hbase.mapreduce.Import tablename hdfspath
Import也有一些使用说明:
![](http://img.blog.csdn.net/20170310070712530?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamF2YWp4ejAwOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
将刚刚导出的数据导入新表中:
hbase org.apache.hadoop.hbase.mapreduce.Import solrHbase2 /home/hdfs/export
输入命令生成mapreduce作业,完成后可查看新表数据是否导入成功。
table tbl_test1 like tbl_test,在hbase只能采用笨办法,将其表结构拷贝出来建表。如:
稍作整理:
create 'solrHbase2', {NAME => 'f1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'SNAPPY', MIN_VERSIONS =>
'0',KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
需要将原表结构中的TTL => 'FOREVER'去掉才能建。
1. 导出数据
使用hbase org.apache.hadoop.hbase.mapreduce.Driver export tablename hdfspath
或hbase org.apache.hadoop.hbase.mapreduce.Export tablename hdfspath
eg:hbase org.apache.hadoop.hbase.mapreduce.Driver export solrHbase /home/hdfs/export
此命令可加参数:
解释如下:
Usage: Export [-D <property=value>]* <tablename> <outputdir> [<versions> [<starttime> [<endtime>]] [^[regex pattern] or [Prefix] to filter]]
Note: -D properties will be applied to the conf used.
For example:
-D mapred.output.compress=true 输出压缩
-D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec 压缩方式
-D mapred.output.compression.type=BLOCK 按块压缩
Additionally, the following SCAN properties can be specified
to control/limit what is exported..
-D hbase.mapreduce.scan.column.family=<familyName> 列簇
-D hbase.mapreduce.include.deleted.rows=true
-D hbase.mapreduce.scan.row.start=<ROWSTART> 开始rowkey
-D hbase.mapreduce.scan.row.stop=<ROWSTOP> 终止rowkey
For performance consider the following properties:
-Dhbase.client.scanner.caching=100 客户端缓存条数
-Dmapred.map.tasks.speculative.execution=false
-Dmapred.reduce.tasks.speculative.execution=false
For tables with very wide rows consider setting the batch size as below:
-Dhbase.export.scanner.batch=10 批次大小
输入命令后会生成mapreduce作业,不想全部将表数据导出,可采用参数-D
hbase.mapreduce.scan.row.start=<ROWSTART>和-D hbase.mapreduce.scan.row.stop=<ROWSTOP>指定rowkey范围导出数据。如导出指定rowkey范围的数据:
hbase org.apache.hadoop.hbase.mapreduce.Export -D hbase.mapreduce.scan.row.start=00
-D hbase.mapreduce.scan.row.stop=0d solrHbase /home/hdfs/export
这里的开始rowkey 00和结束rowkey 0d是rowkey的开头部分,该表是做过预分区的,在hbase的控制台上看:
1. 导入数据
hbase org.apache.hadoop.hbase.mapreduce.Driver import tablename hdfspath
或hbase org.apache.hadoop.hbase.mapreduce.Import tablename hdfspath
Import也有一些使用说明:
将刚刚导出的数据导入新表中:
hbase org.apache.hadoop.hbase.mapreduce.Import solrHbase2 /home/hdfs/export
输入命令生成mapreduce作业,完成后可查看新表数据是否导入成功。
相关文章推荐
- Hbase导入导出数据
- HBase数据的导入和导出
- 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- HBase数据的导入和导出
- 大规模数据导入和导出(hive和hbase)
- 大数据基础(二)hadoop, mave, hbase, hive, sqoop在ubuntu 14.04.04下的安装和sqoop与hdfs,hive,mysql导入导出
- HBase数据的导入和导出
- hbase导入导出数据
- Hbase数据导入导出
- Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- HBase数据的导入导出
- Hbase数据导入导出
- hive的数据导入与数据导出:(本地,云hdfs,hbase),列分隔符的设置,以及hdfs上传给pig如何处理
- hadoop2.6数据导入elasticsearch2.2(解析hbase导出数据)
- hbase数据的导入与导出
- Sqoop_详细总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- Hbase数据备份导入导出
- HBase 数据表导出,导入
- HBase 表数据 导入导出
- Hbase学习笔记2@数据导入导出