问题主要在于,在我的项目中,我想创建一个包含3列族的表。默认的复制数是3.但我想更改centain列族的复制数,只是因为我们不需要这么多的复制。
例如,表名table1
,并且有3个列系列,f1
,f2
,f3
。在这种情况下,我们要将f3
的复制数设置为1
。那么如何设置此配置?有没有改变源代码的解决方案?
PS:通过hbase shell还是JAVA?
答案 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定义是否要复制列族。