set_peer_replicate_all
Определение
Устанавливает флаг REPLICATE_ALL в значение true или false для указанного отношения репликации (peer).
Следует помнить о следующих ограничениях:
-
Перед установкой флага
REPLICATE_ALLв значениеtrueнеобходимо удалить ранее добавленные пространства имен и таблицы/семейства столбцов из конфигурации отношения репликации. Для этих целей используются команды remove_peer_namespaces и remove_peer_tableCFs. В противном случае будут выводиться ошибки. -
Если флаг
REPLICATE_ALLравенtrue, то реплицируются все пользовательские таблицы с флагомREPLICATION_SCOPE!= 0. Также можно использовать команды set_peer_exclude_namespaces и set_peer_exclude_tableCFs, чтобы исключить некоторые пространства имен и таблицы/семейства столбцов из процесса репликации. -
Перед установкой флага
REPLICATE_ALLв значениеfalseнеобходимо удалить ранее исключенные пространства имен и таблицы/семейства столбцов из конфигурации отношения репликации. Для этой цели используются команды set_peer_exclude_namespaces и set_peer_exclude_tableCFs с пустым вторым параметром. В противном случае будут выводиться ошибки. -
Если флаг
REPLICATE_ALLравенfalse, реплицируются только выбранные таблицы. Чтобы выбрать реплицируемые пространства имен, используйте команды set_peer_namespaces и append_peer_namespaces. Чтобы выбрать реплицируемые таблицы семейства столбцов, используйте set_peer_tableCFs и append_peer_tableCFs.
Использование
set_peer_replicate_all <flag_value>
| Параметр | Описание |
|---|---|
flag_value |
Новое значение флага |
Примеры
Установка true
hbase(main):039:0> list_peers
PEER_ID CLUSTER_KEY ENDPOINT_CLASSNAME STATE REPLICATE_ALL NAMESPACES TABLE_CFS BANDWIDTH
1 serov-adh-1.ru-central1.internal,serov-adh-2.ru-central1.internal,serov-adh-3.ru-central1.internal:2181:/hbase DISABLED false ns1;ns2 default.articles 0
1 row(s)
Took 0.0108 seconds
=> #<Java::JavaUtil::ArrayList:0x2633d09c>
hbase(main):040:0> set_peer_replicate_all '1', true
ERROR: java.io.IOException: Need clean namespaces or table-cfs config firstly when replicate_all flag is true
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:472)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
Caused by: org.apache.hadoop.hbase.replication.ReplicationException: Need clean namespaces or table-cfs config firstly when replicate_all flag is true
at org.apache.hadoop.hbase.master.replication.ReplicationManager.checkPeerConfig(ReplicationManager.java:134)
at org.apache.hadoop.hbase.master.replication.ReplicationManager.updatePeerConfig(ReplicationManager.java:103)
at org.apache.hadoop.hbase.master.HMaster.updateReplicationPeerConfig(HMaster.java:3535)
at org.apache.hadoop.hbase.master.MasterRpcServices.updateReplicationPeerConfig(MasterRpcServices.java:1943)
at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
... 3 more
Set the replicate_all flag to true or false for the specified peer.
If replicate_all flag is true, then all user tables (REPLICATION_SCOPE != 0)
will be replicate to peer cluster. But you can use 'set_peer_exclude_namespaces'
to set which namespaces can't be replicated to peer cluster. And you can use
'set_peer_exclude_tableCFs' to set which tables can't be replicated to peer
cluster.
If replicate_all flag is false, then all user tables cannot be replicate to
peer cluster. Then you can use 'set_peer_namespaces' or 'append_peer_namespaces'
to set which namespaces will be replicated to peer cluster. And you can use
'set_peer_tableCFs' or 'append_peer_tableCFs' to set which tables will be
replicated to peer cluster.
Notice: When you want to change a peer's replicate_all flag from false to true,
you need clean the peer's NAMESPACES and TABLECFS config firstly.
When you want to change a peer's replicate_all flag from true to false,
you need clean the peer's EXCLUDE_NAMESPACES and EXCLUDE_TABLECFS
config firstly.
Examples:
# set replicate_all flag to true
hbase> set_peer_replicate_all '1', true
# set replicate_all flag to false
hbase> set_peer_replicate_all '1', false
Took 8.1956 seconds
hbase(main):042:0> remove_peer_namespaces '1', ['ns1', 'ns2']
Took 0.0100 seconds
hbase(main):043:0> remove_peer_tableCFs '1', {'articles' => []}
Took 0.0082 seconds
hbase(main):044:0> set_peer_replicate_all '1', true
Took 0.0081 seconds
hbase(main):045:0> list_peers
PEER_ID CLUSTER_KEY ENDPOINT_CLASSNAME STATE REPLICATE_ALL NAMESPACES TABLE_CFS BANDWIDTH
1 serov-adh-1.ru-central1.internal,serov-adh-2.ru-central1.internal,serov-adh-3.ru-central1.internal:2181:/hbase DISABLED true 0
1 row(s)
Took 0.0086 seconds
=> #<Java::JavaUtil::ArrayList:0x4f82248f>
Установка false
hbase(main):032:0> set_peer_replicate_all '1', false
ERROR: java.io.IOException: Need clean exclude-namespaces or exclude-table-cfs config firstly when replicate_all flag is false
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:472)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
Caused by: org.apache.hadoop.hbase.replication.ReplicationException: Need clean exclude-namespaces or exclude-table-cfs config firstly when replicate_all flag is false
at org.apache.hadoop.hbase.master.replication.ReplicationManager.checkPeerConfig(ReplicationManager.java:144)
at org.apache.hadoop.hbase.master.replication.ReplicationManager.updatePeerConfig(ReplicationManager.java:103)
at org.apache.hadoop.hbase.master.HMaster.updateReplicationPeerConfig(HMaster.java:3535)
at org.apache.hadoop.hbase.master.MasterRpcServices.updateReplicationPeerConfig(MasterRpcServices.java:1943)
at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
... 3 more
Set the replicate_all flag to true or false for the specified peer.
If replicate_all flag is true, then all user tables (REPLICATION_SCOPE != 0)
will be replicate to peer cluster. But you can use 'set_peer_exclude_namespaces'
to set which namespaces can't be replicated to peer cluster. And you can use
'set_peer_exclude_tableCFs' to set which tables can't be replicated to peer
cluster.
If replicate_all flag is false, then all user tables cannot be replicate to
peer cluster. Then you can use 'set_peer_namespaces' or 'append_peer_namespaces'
to set which namespaces will be replicated to peer cluster. And you can use
'set_peer_tableCFs' or 'append_peer_tableCFs' to set which tables will be
replicated to peer cluster.
Notice: When you want to change a peer's replicate_all flag from false to true,
you need clean the peer's NAMESPACES and TABLECFS config firstly.
When you want to change a peer's replicate_all flag from true to false,
you need clean the peer's EXCLUDE_NAMESPACES and EXCLUDE_TABLECFS
config firstly.
Examples:
# set replicate_all flag to true
hbase> set_peer_replicate_all '1', true
# set replicate_all flag to false
hbase> set_peer_replicate_all '1', false
Took 8.6671 seconds
hbase(main):033:0> set_peer_exclude_tableCFs '1', {}
Took 0.0110 seconds
hbase(main):034:0> set_peer_exclude_namespaces '1', []
Took 0.0080 seconds
hbase(main):035:0> set_peer_replicate_all '1', false
Took 0.0077 seconds
hbase(main):036:0> list_peers
PEER_ID CLUSTER_KEY ENDPOINT_CLASSNAME STATE REPLICATE_ALL NAMESPACES TABLE_CFS BANDWIDTH
1 serov-adh-1.ru-central1.internal,serov-adh-2.ru-central1.internal,serov-adh-3.ru-central1.internal:2181:/hbase DISABLED false 0
1 row(s)
Took 0.0052 seconds
=> #<Java::JavaUtil::ArrayList:0x3909a854>