Hbase REST调用 - 获取垃圾字符“\ x0A”

时间:2015-07-22 20:36:06

标签: rest hadoop curl hbase

我正在尝试使用HBase REST API调用将值插入Hbase表中。以下是我正在使用的curl命令..

curl -v -XPUT 'http://localhost:8080/emp/1/pers:name' -H "Accept: application/json" -H "Content-Type: application/json" --data '{ "Row": [ { "Cell": [ { "column": "cGVyczpuYW1lCg==", "$": "TXlOYW1lCg==" } ], "key": "MQo=" } ] }'

调用工作正常,我得到一个“HTTP / 1.1 200 OK”..但是当我看到Hbase表,而不是更新行“1”中的值时,调用创建一个新行“1 \ x0A”并使用相同的垃圾字符插入新值..

1\x0A    column=pers:name\x0A, timestamp=1437596697507, value=MyName\x0A

有人见过这样的东西吗?提前谢谢..

1 个答案:

答案 0 :(得分:2)

好的,我把它整理出来.. \ x0A是转义的十六进制换行符。相当于\ n .. 当我们使用base64编码时,会考虑\ n转义字符..所以当我们对rowkey,column和value进行base64编码时,我们需要传递一个“-n”。

例如:

echo -n MyName | base64
TXlOYW1l
echo MyName | base64
TXlOYW1lCg==

这两者之间有区别......那就是造成我问题的原因..