问题主要是关于在我的项目中,我想创建一个3列家族的表。默认的复制数是3,但我想为centain列族更改此复制数,仅仅因为我们不需要太多的复制。如何在HBase中更改Column家族的复制
例如,表名table1
,并且具有3列系列,f1
,f2
,f3
。在这种情况下,我们要设置f3
的复制号码为1
。所以我如何设置这个配置?有没有解决方案而不更改源代码?
PS:通过hbase shell还是JAVA?
问题主要是关于在我的项目中,我想创建一个3列家族的表。默认的复制数是3,但我想为centain列族更改此复制数,仅仅因为我们不需要太多的复制。如何在HBase中更改Column家族的复制
例如,表名table1
,并且具有3列系列,f1
,f2
,f3
。在这种情况下,我们要设置f3
的复制号码为1
。所以我如何设置这个配置?有没有解决方案而不更改源代码?
PS:通过hbase shell还是JAVA?
我在这方面看起来很多。正如我所看到的那样 - 您无法为表格定义不同的复制,更不用说为列族。
复制数量在整个表的hbase-site.xml中定义。 您可以使用REPLICATION_SCOPE定义是否要复制列族。
首先,我们应该指定术语复制有点重载。
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将关闭复制。
感谢您的申请〜但REPLICATION_SCOPE无法满足我们的要求,因为我们需要复制编号是在创建表时决定的。所以现在我们只是试图改变源代码,你知道..它对我们来说看起来很难。 – user2610066