我正在尝试使用Hbase rest API查询Mapr表。我使用./hbase-daemon.sh
启动了hbase rest服务并编写了一个小程序来查询我的表,但它似乎没有工作。但是当我使用curl工具从MapR表中获取数据时,它会给我正确的输出。
这是我正在使用的java代码:
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.HTableInterface;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.rest.client.Client;
import org.apache.hadoop.hbase.rest.client.Cluster;
import org.apache.hadoop.hbase.rest.client.RemoteHTable;
public class GetRequest
{
public static void main(String[] args) throws IOException
{
Cluster cluster = new Cluster();
cluster.add(hostname, 8081);
Client client = new Client(cluster);
RemoteHTable table = new RemoteHTable(client, "/mytesttable"); //Remove forward slash to query in hbase table
Get request = new Get(Bytes.toBytes("metric"));
request.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("c"));
Result result = table.get(request);
System.out.println("Output Returned from Table---> "+ Bytes.toString( result.getValue(Bytes.toBytes("cf"), Bytes.toBytes("c"))));
}
}
这是curl命令,它返回一个正确的输出..
curl -H "Accept: text/xml" http://hostname:8081/%2Fmytesttable/metric/cf:c
不确定这里有什么问题?任何猜测,任何人?
提前致谢。
答案 0 :(得分:1)
MapR将使用warden启动自己的hbase rest服务器,您不需要手动启动它。它将在8080端口(默认端口)运行。确保您的hbase休息服务;您可以检查映射器集群管理UI。
答案 1 :(得分:0)
我使用的命令是,
为userDetails =用户名+":&#34 +密码
" curl -k -u" + userDetails +" HTTPS://" + ip +":" + port +" / rest / table / create?path =" + path + tableName