如何在HBase中更改列族的复制

时间:2013-07-23 10:05:26

标签: java replication hbase column-family

问题主要在于,在我的项目中,我想创建一个包含3列族的表。默认的复制数是3.但我想更改centain列族的复制数,只是因为我们不需要这么多的复制。

例如,表名table1,并且有3个列系列,f1f2f3。在这种情况下,我们要将f3的复制数设置为1。那么如何设置此配置?有没有改变源代码的解决方案?

PS:通过hbase shell还是JAVA?

2 个答案:

答案 0 :(得分:1)

首先,我们应该指定术语复制有点过载。

HBase使用HDFS作为存储空间。 HDFS会将构成HBase生成的任何文件的块复制到多个DataNode。 (参见http://hadoop.apache.org/docs/stable/hdfs_design.html#Data+Replication)此列不能按列族或表进行配置。它只能在每台服务器上配置。 (见http://hbase.apache.org/book.html#hdfs_client_conf

如果这是您想要更改的内容,那么我建议您提交请求新功能的jira。

HBase还能够将编辑从一个HBase群集复制到另一个群集。此复制是每个预写日志,并且可按列系列进行配置。将REPLICATION_SCOPE设置为1将告诉HBase将此区域服务器的编辑应用到另一个群集。将此值设置为0将关闭复制。

答案 1 :(得分:0)

我在这看了很多。正如我所看到的 - 你不能为表定义不同的复制,更不用说为列族。

复制次数在hbase-site.xml中定义,该表用于整个表。 您可以使用REPLICATION_SCOPE定义是否要复制列族。