我正在尝试使用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
有人见过这样的东西吗?提前谢谢..
答案 0 :(得分:2)
好的,我把它整理出来.. \ x0A是转义的十六进制换行符。相当于\ n .. 当我们使用base64编码时,会考虑\ n转义字符..所以当我们对rowkey,column和value进行base64编码时,我们需要传递一个“-n”。
例如:
echo -n MyName | base64
TXlOYW1l
echo MyName | base64
TXlOYW1lCg==
这两者之间有区别......那就是造成我问题的原因..