-1

MapR DB 的 MapR REST API 看起来无法正常工作。我只是尝试将列族的列表命令作为过滤器,但它没有给我正确的输出,但它与 maprcli 选项完美配合。这是我所做的操作列表。

使用 maprcli 命令

maprcli table cf list -path /user/hbase/testShashi

readperm appendperm inmemory versionperm cfname writeperm compressionperm memoryperm compression ttl maxversions minversions u:mapr u:mapr false u:mapr f1 u:mapr u:mapr u:mapr off 2147483647 1 0 u:mapr u:mapr false u:mapr f2 u:mapr u:mapr u:mapr 关闭 2147483647 1 0

maprcli table cf list -path /user/hbase/testShashi -cfname f1

readperm appendperm inmemory versionperm cfname writeperm compressionperm memoryperm compression ttl maxversions minversions u:mapr u:mapr false u:mapr f1 u:mapr u:mapr u:mapr off 2147483647 1 0

当我将 cfname 作为 f1 传递时,使用 maprcli 选项,它只给我一条记录,但 REST API 似乎不会发生

使用 REST API 应用过滤器之前

curl -k -u mapr:mapr https://hostname:8443/rest/table/cf/list?path=/user/hbase/testShashi

在此处输入图像描述

以 cfname 作为选项

curl -k -u mapr:mapr https://hostname:8443/rest/table/cf/list?path=/user/hbase/testShashi&cfname=f1

在此处输入图像描述

如果我在这里犯了任何错误,请告诉我。

4

1 回答 1

1

沙市,

我不知道您是否粘贴了确切的命令行,但如果您粘贴了,您可能需要在 url 周围添加引号,以便 & 不会被 shell 解释。

在 MapR 4.1 这对我有用:

[mapr@ip-172-16-2-19 ~]$ curl -k -u mapr:mapr 'https://ip-172-16-2-17:8443/rest/table/cf/list?path=/tmp/mytable&cfname=cf1' | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   345  100   345    0     0   1638      0 --:--:-- --:--:-- --:--:--  1642
{
  "timestamp": 1436384780597,
  "timeofday": "2015-07-08 07:46:20.597 GMT+0000",
  "status": "OK",
  "total": 1,
  "data": [
    {
      "cfname": "cf1",
      "maxversions": 1,
      "minversions": 0,
      "ttl": 2147483647,
      "inmemory": false,
      "compression": "lz4",
      "appendperm": "u:mapr",
      "compressionperm": "u:mapr",
      "memoryperm": "u:mapr",
      "readperm": "u:mapr",
      "versionperm": "u:mapr",
      "writeperm": "u:mapr"
    }
  ]
}

但是,如果我在您的示例中删除引号,请查看 cfname 参数似乎被忽略了 - 这是因为当 shell 到达 & 时,它将命令置于后台,并且服务器从不考虑 cfname 参数因为它没有到达那里;所以maprcli列出了所有的cfs:

[mapr@ip-172-16-2-19 ~]$ curl -k -u mapr:mapr https://ip-172-16-2-17:8443/rest/table/cf/list?path=/tmp/mytable&cfname=cf1 | jq .
[1] 18868
[mapr@ip-172-16-2-19 ~]$ {"timestamp":1436384975909,"timeofday":"2015-07-08 07:49:35.909 GMT+0000","status":"OK","total":2,"data":[{"cfname":"cf1","maxversions":1,"minversions":0,"ttl":2147483647,"inmemory":false,"compression":"lz4","appendperm":"u:mapr","compressionperm":"u:mapr","memoryperm":"u:mapr","readperm":"u:mapr","versionperm":"u:mapr","writeperm":"u:mapr"},{"cfname":"cf2","maxversions":1,"minversions":0,"ttl":2147483647,"inmemory":false,"compression":"lz4","appendperm":"u:mapr","compressionperm":"u:mapr","memoryperm":"u:mapr","readperm":"u:mapr","versionperm":"u:mapr","writeperm":"u:mapr"}]}
于 2015-07-08T19:53:11.017 回答