hbase导入导出数据

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012882134/article/details/52527469

网上误人子弟的文章太多了,毫无疑问,笔者这次又被坑了。于是自己写一篇博客详细记录导入导出数据的全过程

1.list



2.创建表,同时指明ColumnFamily name(参考官方文档:http://hbase.apache.org/book.html#quickstart),并插入一条数据



3.导出数据(导出到本地集群或者hdfs)

3.1导入到本地:

>hbase org.apache.hadoop.hbase.mapreduce.Export test file:///home/hadoop/test

(不同版本的hbase导出导入语句貌似有区别,建议查看上述的官方文档)


导入到本地集群时,一定要加file:///,之前貌似不需要file:///,但笔者现在的版本不加的话就会默认导入到hdfs上

3.2导入到hdfs

>hbase org.apache.hadoop.hbase.mapreduce.Export test /home/hadoop/test


4.导入数据

注意两点,第一,在在导入前,要确保hbase中有同名表,否则导入时,会报“找不到表“错误(这是最坑的,一直以为直接导入不存在的表可以的)

为了简单,我们只清除原表的数据做示例(然而这样是不对的):


结果导入时死活没数据。。。

后来我把原表删除,后重新建表


另外需要注意的是,同名表的ColumnFamily name也需要相同

再重新导入数据

从本地集群导入的话,需要先找到之前导出的数据在那几台机器上,然后从保存part-m-00000的文件夹导入


就行了

>hbase org.apache.hadoop.hbase.mapreduce.Import test file:///home/hadoop/test


可以看到已经有数据了:


展开阅读全文

没有更多推荐了,返回首页