set_peer_namespaces
Определение
Добавляет все реплицируемые пространства имен к указанному отношению репликации (peer). Следует помнить о следующих ограничениях:
-
Флаг
REPLICATE_ALLдолжен иметь значениеfalseв конфигурации отношения репликации (set_peer_replicate_all). -
Установка пространства имен означает, что все таблицы в этом пространстве имен с флагом
REPLICATION_SCOPE!= 0 реплицируются. Если конфигурация peer уже содержит какую-либо таблицу (добавленную через append_peer_tableCFs или set_peer_tableCFs), то установка ее пространства имен с помощью этой команды не допускается. -
При необходимости очистить включенные пространства имен нужно запустить текущую команду с пустым массивом в качестве второго входного параметра. Вы также можете использовать команду remove_peer_namespaces.
|
ВНИМАНИЕ
Эта команда удаляет ранее определенные пространства имен из конфигурации peer (в отличие от append_peer_namespaces).
|
Использование
set_peer_namespaces '<peer_id>', <namespaces_array[]>
| Параметр | Описание |
|---|---|
peer_id |
Уникальный идентификатор отношения репликации (peer). Значение не должно содержать дефисов |
namespaces_array |
Массив строк, указанных в формате |
Примеры
Успешная установка пространства имен
hbase(main):054: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 ENABLED false ns1;ns2 default.articles;default.table10;default.temp1:cf1 0 1 row(s) Took 0.0090 seconds => #<Java::JavaUtil::ArrayList:0x51c008fd> hbase(main):055:0> set_peer_namespaces '1', ['ns1'] Took 0.0130 seconds hbase(main):056: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 ENABLED false ns1 default.articles;default.table10;default.temp1:cf1 0 1 row(s) Took 0.0084 seconds => #<Java::JavaUtil::ArrayList:0x3c98981e>
Неудачная настройка пространства имен
hbase(main):051: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 default.articles 0
1 row(s)
Took 0.0081 seconds
=> #<Java::JavaUtil::ArrayList:0x126af200>
hbase(main):052:0> set_peer_namespaces '1', ['default']
ERROR: java.io.IOException: Table-cfs articles is conflict with namespaces default in peer config
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: Table-cfs articles is conflict with namespaces default in peer config
at org.apache.hadoop.hbase.master.replication.ReplicationManager.checkNamespacesAndTableCfsConfigConflict(ReplicationManager.java:181)
at org.apache.hadoop.hbase.master.replication.ReplicationManager.checkPeerConfig(ReplicationManager.java:148)
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 replicable namespaces config for the specified peer.
1. The replicate_all flag need to be false when set the replicable namespaces.
2. Set a namespace in the peer config means that all tables in this namespace
will be replicated to the peer cluster. If peer config already has a table,
then not allow set this table's namespace to the peer config.
Examples:
# set namespaces config is null, then the table-cfs config decide
# which table to be replicated.
hbase> set_peer_namespaces '1', []
# set namespaces to be replicable for a peer.
# set a namespace in the peer config means that all tables in this
# namespace (with replication_scope != 0 ) will be replicated.
hbase> set_peer_namespaces '2', ["ns1", "ns2"]
Took 8.1730 seconds