HBase创建表时需要制定column family才能创建成功,如果之后想添加column family呢,闭门造车尝试了一下三种方法,总算有一种是成功的。下面主要说一下成功的方法,纯属闭门造车的摸索,不见得是标准的方法。(假设我们现在已经创建了一张表,表中只存在一个column family,并存在一条数据,如下图)。

我们要添加的column family为cf2
翻了翻HBaseAdmin,也就modifyTable像是改表结构的方法,那么需要解决的就是两个参数tableName和HTableDescriptor了
public void modifyTable(final byte [] tableName, HTableDescriptor htd)
tableName好说,主要就是HTableDescriptor了,我尝试过一下,第一种是直接new HTableDescriptor(),让后调用addFamily,执行完后,cf2出现了,但是cf1的数据都没了。第二种就是从建好的table get一个HTabl

本文介绍了如何在HBase中添加新的Column Family。通过HBaseAdmin的modifyTable方法,使用HTableDescriptor深拷贝构造函数避免丢失已有数据的问题。在修改表结构时,必须先禁用表,修改后再启用。
最低0.47元/天 解锁文章
1241

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



