HBase REST: объявить сопроцессор
У меня возникли трудности при создании таблицы HBase с сопроцессором через HBase REST.
hbase_table_ttt.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<TableSchema name="ttt" coprocessor="hdfs:///my_coprocessor-1.0.jar|com.mycompany.MyCoprocessor|1001|">
<ColumnSchema name="d" BLOCKCACHE="true" VERSIONS="1" IN_MEMORY="true"/>
</TableSchema>
с последующим вызовом для создания таблицы:
TARGET_HOST="hbase-instance-with-rest.amazonaws.com:8080"
curl -X PUT -H "Content-Type: text/xml" -H "Accept: text/xml" -d @hbase_table_ttt.xml http://$TARGET_HOST/ttt/schema/
в результате получается следующая схема с отключенным сопроцессором:
'ttt', {METHOD => 'table_att', CONFIG => {'coprocessor' => 'hdfs:///my_coprocessor-1.0.jar|com.mycompany.MyCoprocessor|1001|'}},
{NAME => 'd', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE',
MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536',
IN_MEMORY => 'true', ENCODE_ON_DISK => 'true', BLOCKCACHE=>'true'}
в то же время, hbase shell
команды:
create 'ttt', 'd'
disable 'ttt'
alter 'ttt', METHOD => 'table_att', 'coprocessor'=>'hdfs:///my_coprocessor-1.0.jar|com.mycompany.MyCoprocessor|1001|'
enable 'ttt'
В результате получается схема с включенным сопроцессором:
'ttt', {METHOD => 'table_att', coprocessor$1 => 'hdfs:///my_coprocessor-1.0.jar|com.mycompany.MyCoprocessor|1001|'},
{NAME => 'd', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE',
MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536',
IN_MEMORY => 'true', ENCODE_ON_DISK => 'true', BLOCKCACHE => 'true'}
Вопрос:
- Как правильно зарегистрировать сопроцессор в файле hbase_table_ttt.xml?