zoukankan      html  css  js  c++  java
  • HBase rest

    HBase Rest 是建立在HBase java 客户端基础之上的,提供的web 服务。它存在的目的是给开发者一个更多的选择。

    1.启动rest 服务

      (1)hbase rest start

          用默认的方式启动rest服务,端口是8080。

      (2)hbase rest start 8585

          这种方式以端口8585方式启动。

      (3)以daemon方式启动

          hbase-daemon.sh start rest -p 8585

          停止rest服务

          hbase-daemon.sh stop rest

    2.url

      (1)查看表

          http://hadoop0:8585/

       (2)查看表的schema

         http://hadoop0:8585/test/

       (3)HBase操作对于的HTTP请求方式

    Database Operations REST/HTTP Equivalents

    CREATE PUT
    READ GET
    UPDATE POST (update) or PUT (replace)
    DELETE DELETE

            

    Addressing for cell or row query (GET)

        path := '/' <table>
                '/' <row>
                ( '/' ( <column> ( ':' <qualifier> )?
                        ( ',' <column> ( ':' <qualifier> )? )+ )?
                    ( '/' ( <start-timestamp> ',' )? <end-timestamp> )? )?
        query := ( '?' 'v' '=' <num-versions> )?
    

    Addressing for single value store (PUT)

    Address with table, row, column (and optional qualifier), and optional timestamp.

        path := '/' <table> '/' <row> '/' <column> ( ':' <qualifier> )?
                  ( '/' <timestamp> )?
    

    Addressing for multiple (batched) value store (PUT)

        path := '/' <table> '/' <false-row-key>
    

    Addressing for row, column, or cell DELETE

        path := '/' <table> 
                '/' <row>
                ( '/' <column> ( ':' <qualifier> )?
                  ( '/' <timestamp> )? )?
    

    Addressing for table creation or schema update (PUT or POST), schema query(GET), or delete (DELETE)

        path := '/' <table> / 'schema'
    

    Addressing for scanner creation (POST)

        path := '/' <table> '/' 'scanner'
    

    Addressing for scanner next item (GET)

        path := '/' <table> '/' 'scanner' '/' <scanner-id>
    

    Addressing for scanner deletion (DELETE)

        path := '/' <table> '/' '%scanner' '/' <scanner-id>
    

            (4) 查询版本信息

           http://hadoop0:8585/version

            (5)查询集群信息

          http://hadoop0:8585/version/cluster      
           (6)查询集群状态
    
            http://hadoop0:8585/status/cluster
            (7)创建和更新表的schema
           put  /table/shcema
          Post  /table/schema
           (8)查询表元数据
            get /table/resions
           (9)删除表
            delete   /table/schema 
           (10)cell 查询
            
            GET /<table>/<row>/
               <column> ( : <qualifier> )?
             ( / <timestamp> )?
    (11)scan
    put/post /table/scanner

    返回的xml 结构
    <schema targetNamespace="StargateSchema" elementFormDefault="qualified" 
    xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="StargateSchema">
    
        <element name="CellSet" type="tns:CellSet"></element>
        
        <complexType name="CellSet">
          <sequence>
            <element name="row" type="tns:Row" maxOccurs="unbounded" minOccurs="1"></element>
          </sequence>
        </complexType>
    
        <complexType name="Row">
          <sequence>
            <element name="key" type="base64Binary"></element>
            <element name="cell" type="tns:Cell" maxOccurs="unbounded" minOccurs="1"></element>
          </sequence>
        </complexType>
    
        <complexType name="Cell">
          <sequence>
            <element name="value" maxOccurs="1" minOccurs="1"><simpleType><restriction base="base64Binary"></restriction></simpleType></element>
          </sequence>
          <attribute name="column" type="base64Binary" />
          <attribute name="timestamp" type="int" />
        </complexType>
    
        <element name="Version" type="tns:Version"></element>
        
        <complexType name="Version">
          <attribute name="Stargate" type="string"></attribute>
          <attribute name="JVM" type="string"></attribute>
          <attribute name="OS" type="string"></attribute>
          <attribute name="Server" type="string"></attribute>
          <attribute name="Jersey" type="string"></attribute>
        </complexType>
    
    
        <element name="TableList" type="tns:TableList"></element>
        
        <complexType name="TableList">
          <sequence>
            <element name="table" type="tns:Table" maxOccurs="unbounded" minOccurs="1"></element>
          </sequence>
        </complexType>
    
        <complexType name="Table">
          <sequence>
            <element name="name" type="string"></element>
          </sequence>
        </complexType>
    
        <element name="TableInfo" type="tns:TableInfo"></element>
        
        <complexType name="TableInfo">
          <sequence>
            <element name="region" type="tns:TableRegion" maxOccurs="unbounded" minOccurs="1"></element>
          </sequence>
          <attribute name="name" type="string"></attribute>
        </complexType>
    
        <complexType name="TableRegion">
          <attribute name="name" type="string"></attribute>
          <attribute name="id" type="int"></attribute>
          <attribute name="startKey" type="base64Binary"></attribute>
          <attribute name="endKey" type="base64Binary"></attribute>
          <attribute name="location" type="string"></attribute>
        </complexType>
    
        <element name="TableSchema" type="tns:TableSchema"></element>
        
        <complexType name="TableSchema">
          <sequence>
            <element name="column" type="tns:ColumnSchema" maxOccurs="unbounded" minOccurs="1"></element>
          </sequence>
          <attribute name="name" type="string"></attribute>
          <anyAttribute></anyAttribute>
        </complexType>
    
        <complexType name="ColumnSchema">
          <attribute name="name" type="string"></attribute>
          <anyAttribute></anyAttribute>
        </complexType>
    
        <element name="Scanner" type="tns:Scanner"></element>
        
        <complexType name="Scanner">
          <attribute name="startRow" type="base64Binary"></attribute>
          <attribute name="endRow" type="base64Binary"></attribute>
          <attribute name="columns" type="base64Binary"></attribute>
          <attribute name="batch" type="int"></attribute>
          <attribute name="startTime" type="int"></attribute>
          <attribute name="endTime" type="int"></attribute>
        </complexType>
    
        <element name="StorageClusterVersion"
          type="tns:StorageClusterVersion">
        </element>
        
        <complexType name="StorageClusterVersion">
          <attribute name="version" type="string"></attribute>
        </complexType>
    
        <element name="StorageClusterStatus"
          type="tns:StorageClusterStatus">
        </element>
        
        <complexType name="StorageClusterStatus">
          <sequence>
            <element name="liveNode" type="tns:Node"
              maxOccurs="unbounded" minOccurs="0">
            </element>
            <element name="deadNode" type="string" maxOccurs="unbounded"
              minOccurs="0">
            </element>
          </sequence>
          <attribute name="regions" type="int"></attribute>
          <attribute name="requests" type="int"></attribute>
          <attribute name="averageLoad" type="float"></attribute>
        </complexType>
    
        <complexType name="Node">
          <sequence>
            <element name="region" type="tns:Region" maxOccurs="unbounded" minOccurs="0"></element>
          </sequence>
          <attribute name="name" type="string"></attribute>
          <attribute name="startCode" type="int"></attribute>
          <attribute name="requests" type="int"></attribute>
          <attribute name="heapSizeMB" type="int"></attribute>
          <attribute name="maxHeapSizeMB" type="int"></attribute>
        </complexType>
    
        <complexType name="Region">
          <attribute name="name" type="base64Binary"></attribute>
          <attribute name="stores" type="int"></attribute>
          <attribute name="storefiles" type="int"></attribute>
          <attribute name="storefileSizeMB" type="int"></attribute>
          <attribute name="memstoreSizeMB" type="int"></attribute>
          <attribute name="storefileIndexSizeMB" type="int"></attribute>
        </complexType>
    返回的protobuf schema
    message Version {
      optional string stargateVersion = 1;
      optional string jvmVersion = 2;
      optional string osVersion = 3;
      optional string serverVersion = 4;
      optional string jerseyVersion = 5;
    }
    
    message StorageClusterStatus {
      message Region {
        required bytes name = 1;
        optional int32 stores = 2;
        optional int32 storefiles = 3;
        optional int32 storefileSizeMB = 4;
        optional int32 memstoreSizeMB = 5;
        optional int32 storefileIndexSizeMB = 6;
      }
      message Node {
        required string name = 1;    // name:port
        optional int64 startCode = 2;
        optional int32 requests = 3;
        optional int32 heapSizeMB = 4;
        optional int32 maxHeapSizeMB = 5;
        repeated Region regions = 6;
      }
      // node status
      repeated Node liveNodes = 1;
      repeated string deadNodes = 2;
      // summary statistics
      optional int32 regions = 3; 
      optional int32 requests = 4; 
      optional double averageLoad = 5;
    }
    
    message TableList {
      repeated string name = 1;
    }
    
    message TableInfo {
      required string name = 1;
      message Region {
        required string name = 1;
        optional bytes startKey = 2;
        optional bytes endKey = 3;
        optional int64 id = 4;
        optional string location = 5;
      }
      repeated Region regions = 2;
    }
    
    message TableSchema {
      optional string name = 1;
      message Attribute {
        required string name = 1;
        required string value = 2;
      }  
      repeated Attribute attrs = 2;
      repeated ColumnSchema columns = 3;
      // optional helpful encodings of commonly used attributes
      optional bool inMemory = 4;
      optional bool readOnly = 5;
    }
    
    message ColumnSchema {
      optional string name = 1;
      message Attribute {
        required string name = 1;
        required string value = 2;
      }
      repeated Attribute attrs = 2;
      // optional helpful encodings of commonly used attributes
      optional int32 ttl = 3;
      optional int32 maxVersions = 4;
      optional string compression = 5;
    }
    
    message Cell {
      optional bytes row = 1;       // unused if Cell is in a CellSet
      optional bytes column = 2;
      optional int64 timestamp = 3;
      optional bytes data = 4;
    }
    
    message CellSet {
      message Row {
        required bytes key = 1;
        repeated Cell values = 2;
      }
      repeated Row rows = 1;
    }
    
    message Scanner {
      optional bytes startRow = 1;
      optional bytes endRow = 2;
      repeated bytes columns = 3;
      optional int32 batch = 4;
      optional int64 startTime = 5;
      optional int64 endTime = 6;
    }











  • 相关阅读:
    chmod
    How to Mount an NTFS Filesystem
    关于三层架构和AJAX的一点联系
    Visual Studio开启.NET Framework源代码调试(Debug the Source Code for the .NET Framework Libraries)
    SQL语句中的子查询应用
    .NET中总共有多少种类型、多少个命名空间呢?
    Visual Studio中的《C# 语言规范》
    Visual Studio “类视图”和“对象浏览器”图标含义
    .NET程序员必备参考图片
    Microsoft Visual Studio Learning Pack 2.0
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205118.html
Copyright © 2011-2022 走看看