python - 使用 Stargate Rest 将数据插入 Hbase

标签 python rest insert hbase stargate

我正在使用curl 通过 REST 访问 Hbase。我在将数据插入 Hbase 时遇到问题。我遵循了 Stargate 文档,但是当我遵循相同的语法时,它给了我 400/405 错误请求和方法不允许错误。我已经粘贴了下面的命令。请告诉我哪里出错了。

星际之门文档说

POST /<table>/<row>/<column> (:qualifier)?/<timestamp>
curl -H "Content-Type: text/xml" --data '[...]' http://localhost:8000/test/testrow/test:testcolumn

我的curl命令如下:

curl -H "Content-Type: text/xml" --data '[<CellSet><Row key="111"><Cell column="f1">xyz</Cell></Row></CellSet>]' http://localhost:8080/mytable/row/fam

执行此操作的正确方法是什么?因为这给了我错误的请求错误。

此外,我在 Python 客户端中尝试相同的操作。它给了我 ColumnFamilyNotFoundException。我正在读取要从文件传递到星门服务器的 Xml 数据。代码如下。

url = 'http://localhost:8080/mytable/row/fam' f = open('example.xml', 'r') xmlData = f.read() r = requests.post(url, data=xmlData, headers=headers)

example.xml 具有以下内容:

<CellSet>
     <Row key="111">
   <Cell column="fam:column1">
             xyz
         </Cell>
     </Row>
 </CellSet>

最佳答案

这是一个非常简单的错误。 Hbase 期望每个值都采用 Base64 编码。键和 columnfamily:column 在输入 xml 之前必须进行 base64 编码。

关于python - 使用 Stargate Rest 将数据插入 Hbase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006452/

相关文章:

python - 对 'home' 进行反向操作,未找到参数 '()' 和关键字参数 '{}'。 0 个图案

java - Apache httpclient 在 5 或 6 小时后给出连接超时

mysql - 无法添加或更新子行 : a foreign key constraint fails when trying to add a new row

python - 在 python 中处理 SOAP 类型异常的最佳方法是什么

python - 在python中添加windows命令

rest - 记录保存,使用自定义 REST 适配器 promise 拒绝

angularjs - 矩形 POST 文件和数据

c++ - 我在 C++ 中的 Trie 程序有逻辑错误

c++ - BST插入、删除、搜索

python - 将函数名称列表连接到一系列嵌套函数调用中