java - 如何更改 HBase 中列族的复制

标签 java replication hbase column-family

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

例如,表名称为table1,并且有3个列族,f1f2f3 。本例中,我们希望将f3的复制数设置为1。那么我该如何设置这个配置呢?有没有不改源代码的解决方案?

PS:通过 hbase shell 还是 JAVA?

最佳答案

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

HBase 使用 HDFS 作为存储。 HDFS 会将构成 HBase 生成的任何文件的 block 复制到多个 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 将关闭复制。

关于java - 如何更改 HBase 中列族的复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17807127/

相关文章:

MySQL 主从复制

MySQL 复制 - 连接到主服务器时出错

configuration - 如何针对远程集群运行 HBase shell

java - 结果显示图像上有衬里

java - 用shellscript编译java代码,包括几个文件(.jars .class)

mysql - 监控 MySQL slave 状态

java - 从Zookeeper znode获取数据

hadoop - Hbase Major Compacting之后如何验证HFile?

java - 在 Java 中实现数据透视表

java - 覆盖与分配/解除分配——效率