2013-07-23 42 views
0

问题主要是关于在我的项目中,我想创建一个3列家族的表。默认的复制数是3,但我想为centain列族更改此复制数,仅仅因为我们不需要太多的复制。如何在HBase中更改Column家族的复制

例如,表名table1,并且具有3列系列,f1,f2,f3。在这种情况下,我们要设置f3的复制号码为1。所以我如何设置这个配置?有没有解决方案而不更改源代码?

PS:通过hbase shell还是JAVA?

回答

0

我在这方面看起来很多。正如我所看到的那样 - 您无法为表格定义不同的复制,更不用说为列族。

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

+0

感谢您的申请〜但REPLICATION_SCOPE无法满足我们的要求,因为我们需要复制编号是在创建表时决定的。所以现在我们只是试图改变源代码,你知道..它对我们来说看起来很难。 – user2610066

0

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

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将关闭复制。