私は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>