2

残りの API を使用して、複数の列/行を hbase クラスターに投稿しようとしています。一度に 1 列ずつ問題なく投稿できますが、複数の列/行を受け入れることができないようです。

これはうまくいきます

データ:

{
   "Row":{
      "@key":"www.somesite.com",
      "Cell":{
         "@column":"ColFam:Col1",
         "$":"someData"
      }
   }
}

電話:

curl -v -X PUT -H "Content-Type: application/json" --data '{"Row": { "@key":"www.somesite.com", "Cell": { "@column":"ColFam:Col1", "$":"someData" } } }' http://somesite.com:8080/TestTable/www.somesite.com/ColFam:Col1

apiによると、複数の行/列を同時に投稿できるはずです。

複数列データ:

{
   "Row":
      {
         "key":"www.somesite.com",
         "Cell":[
            {
               "column":"ColFam:Col1",
               "$":"someData"
            },
            {
               "column":"ColFam:Col2",
               "$":"moreData"
            }
         ]
      }
}

複数行データ:

{
   "Row":[
      {
         "key":"www.somesite.com",
         "Cell":[
            {
               "column":"ColFam:Col1",
               "$":"someData"
            }
         ]
      },
      {
         "key":"www.someothersite.com",
         "Cell":[
            {
               "column":"ColFam:Col1",
               "$":"moreData"
            }
         ]
      }

   ]
}

次の URL を使用してみました。

http://somesite.com:8080/TestTable/www.somesite.com/ColFam:Col1
http://somesite.com:8080/TestTable/www.somesite.com/ColFam
http://somesite.com:8080/TestTable/www.somesite.com

無駄に。ドキュメントには false-row-key を使用するように記載されているため、次のことも試しました。

http://somesite.com:8080/TestTable/false-row-key

まだ運がありません。

毎回同じエラーが発生します:

upload completely sent off: 124 out of 124 bytes
HTTP/1.1 503 Service Unavailable

何か案は?

4

2 に答える 2

5

したがって、すべての json 値を base64 でエンコードするだけです。

{
   "Row":[
      {
         "key":"d3d3LnNvbWVzaXRlLmNvbQ==",
         "Cell":[
            {
               "column":"QXV0aG9yczp0ZXN0MQ==",
               "$":"c29tZURhdGE="
            },
            {
               "column":"QXV0aG9yczp0ZXN0Mg==",
               "$":"bW9yZURhdGE="
            }
         ]
      }
   ]
}

残りの API からの戻り値はすべて base64 でエンコードされているため、これは明らかなはずです。

于 2013-01-30T22:44:04.767 に答える