2013年5月28日 星期二

Setup Stargate for Apache HBase

Reference

HBase Wiki: Stargate

Deployment

start daemon as root (port 51111 by BDCMS)
$ ./bin/hbase-daemon.sh start rest -p  

check process
$ ps -ef|grep org.apache.hadoop.hbase.rest.Main

Query

Query software version

curl -s -i http://0a908189.cht.local:51111/version

HTTP/1.1 200 OK
Content-Length: 135
Cache-Control: no-cache
Content-Type: text/plain

rest 0.0.2 [JVM: Sun Microsystems Inc. 1.6.0_33-20.8-b03] [OS: Linux 2.6.32-358.el6.x86_64 amd64] [Server: jetty/6.1.26] [Jersey: 1.8]

curl -s -i -H "Accept: text/xml" 0a908189.cht.local:51111/version
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: text/xml
Content-Length: 198

$ curl -s -i -H "Accept: application/json" 0a908189.cht.local:51111/version
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json
Transfer-Encoding: chunked

{"JVM":"Sun Microsystems Inc. 1.6.0_33-20.8-b03","Jersey":"1.8","OS":"Linux 2.6.32-358.el6.x86_64 amd64","REST":"0.0.2","Server":"jetty/6.1.26"}

Query Storage Cluster Version

$ curl -s -i -H "Accept: application/json" 0a908189.cht.local:51111/version/cluster
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json
Transfer-Encoding: chunked

"0.90.6-cdh3u5"

Query Table List

$ curl -s -i -H "Accept: application/json" 0a908189.cht.local:51111
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json
Transfer-Encoding: chunked

{"table":[{"name":"t1"}]}

Query Table Schema

$ curl -s -i -H "Accept: application/json" 0a908189.cht.local:51111/t1/schema
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json
Transfer-Encoding: chunked

{"name":"t1","IS_META":"false","IS_ROOT":"false","ColumnSchema":[{"name":"fam1","BLOCKSIZE":"65536","BLOOMFILTER":"NONE","BLOCKCACHE":"true","COMPRESSION":"NONE","VERSIONS":"3","REPLICATION_SCOPE":"0","TTL":"2147483647","IN_MEMORY":"false"}]}

Cell Query (Single Value)

$ curl -s -i -H "Accept: application/json" 0a908189.cht.local:51111/t1/rlog-1369657973498-0a908185/fam1:host
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked

{"Row":[{"key":"cmxvZy0xMzY5NjU3OTczNDk4LTBhOTA4MTg1","Cell":[{"column":"ZmFtMTpob3N0","timestamp":1369657977691,"$":"MGE5MDgxODU="}]}]}

$ CN=$(curl -s -H "Accept: application/json" 0a908189.cht.local:51111/t1/rlog-1369657973498-0a908185/fam1:host | grep -Po '"column":.*?[^\\]",' | tr -d '",'|awk -F: '{ print $2 }'|base64 -d);echo $CN
fam1:host

$ TM=$(curl -s -H "Accept: application/json" 0a908189.cht.local:51111/t1/rlog-1369657973498-0a908185/fam1:host | grep -Po '"timestamp":.*?[^\\],' |tr -d '",'|awk -F: '{ print $2 }');echo $TM
1369657977691

$ VL=$(curl -s -H "Accept: application/json" 0a908189.cht.local:51111/t1/rlog-1369657973498-0a908185/fam1:host | grep -Po '"\$":.*?[^\\]"' |tr -d '"'|awk -F: '{ print $2 }'|base64 -d);echo $VL
0a908185

$ VL=$(curl -s -H "Accept: application/json" 0a908189.cht.local:51111/t1/rlog-1369657973498-0a908185/fam1:body | grep -Po '"\$":.*?[^\\]"' |tr -d '"'|awk -F: '{ print $2 }'|base64 -d);echo $VL
sshd[3369]: pam_unix(sshd:session): session closed for user root

$ echo "ZmFtMTpGYWNpbGl0eQ=="|base64 -d
fam1:Facility
$ echo "ZmFtMTpTZXZlcml0eQ=="|base64 -d
fam1:Severity
$ echo "ZmFtMTphZ2VudA=="|base64 -d
fam1:agent
$ echo "ZmFtMTpib2R5"|base64 -d
fam1:body
echo "ZmFtMTpob3N0"|base64 -d
fam1:host
echo "ZmFtMTp0aW1lc3RhbXA="|base64 -d
fam1:timestamp
$ curl -s -H "Accept: application/json" 0a908189.cht.local:51111/t1/rlog-13697257366*
{
    "Row": [
        {
            "key": "cmxvZy0xMzY5NzI1NzM2NjU5LTBhOTA4MThh",
            "Cell": [
                {
                    "column": "ZmFtMTpGYWNpbGl0eQ==",
                    "timestamp": 1369725741468,
                    "$": "ODA="
                },
                {
                    "column": "ZmFtMTpTZXZlcml0eQ==",
                    "timestamp": 1369725741467,
                    "$": "Ng=="
                },
                {
                    "column": "ZmFtMTphZ2VudA==",
                    "timestamp": 1369725741470,
                    "$": "MTAuMTQ0LjEyOS4xMzc="
                },
                {
                    "column": "ZmFtMTpib2R5",
                    "timestamp": 1369725741472,
                    "$": "c3NoZFsxMjg2OF06IEFjY2VwdGVkIHB1YmxpY2tleSBmb3Igcm9vdCBmcm9tIDEwLjE0NC4xMjkuMTM3IHBvcnQgNDY1MDcgc3NoMg=="
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369725741469,
                    "$": "MGE5MDgxOGE="
                },
                {
                    "column": "ZmFtMTp0aW1lc3RhbXA=",
                    "timestamp": 1369725741466,
                    "$": "MTM2OTcyNTczNjY1OQ=="
                }
            ]
        },
        {
            "key": "cmxvZy0xMzY5NzI1NzM2NjYxLTBhOTA4MThh",
            "Cell": [
                {
                    "column": "ZmFtMTpGYWNpbGl0eQ==",
                    "timestamp": 1369725741474,
                    "$": "ODA="
                },
                {
                    "column": "ZmFtMTpTZXZlcml0eQ==",
                    "timestamp": 1369725741473,
                    "$": "Ng=="
                },
                {
                    "column": "ZmFtMTphZ2VudA==",
                    "timestamp": 1369725741475,
                    "$": "MTAuMTQ0LjEyOS4xMzc="
                },
                {
                    "column": "ZmFtMTpib2R5",
                    "timestamp": 1369725741476,
                    "$": "c3NoZFsxMjg2OF06IHBhbV91bml4KHNzaGQ6c2Vzc2lvbik6IHNlc3Npb24gb3BlbmVkIGZvciB1c2VyIHJvb3QgYnkgKHVpZD0wKQ=="
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369725741471,
                    "$": "MGE5MDgxOGE="
                },
                {
                    "column": "ZmFtMTp0aW1lc3RhbXA=",
                    "timestamp": 1369725741470,
                    "$": "MTM2OTcyNTczNjY2MQ=="
                }
            ]
        },
        {
            "key": "cmxvZy0xMzY5NzI1NzM2NjkyLTBhOTA4MThh",
            "Cell": [
                {
                    "column": "ZmFtMTpGYWNpbGl0eQ==",
                    "timestamp": 1369725741508,
                    "$": "ODA="
                },
                {
                    "column": "ZmFtMTpGYWNpbGl0eQ==",
                    "timestamp": 1369725741502,
                    "$": "ODA="
                },
                {
                    "column": "ZmFtMTpTZXZlcml0eQ==",
                    "timestamp": 1369725741505,
                    "$": "Ng=="
                },
                {
                    "column": "ZmFtMTpTZXZlcml0eQ==",
                    "timestamp": 1369725741500,
                    "$": "Ng=="
                },
                {
                    "column": "ZmFtMTphZ2VudA==",
                    "timestamp": 1369725741506,
                    "$": "MTAuMTQ0LjEyOS4xMzc="
                },
                {
                    "column": "ZmFtMTphZ2VudA==",
                    "timestamp": 1369725741502,
                    "$": "MTAuMTQ0LjEyOS4xMzc="
                },
                {
                    "column": "ZmFtMTpib2R5",
                    "timestamp": 1369725741509,
                    "$": "c3NoZFsxMjg2OF06IHBhbV91bml4KHNzaGQ6c2Vzc2lvbik6IHNlc3Npb24gY2xvc2VkIGZvciB1c2VyIHJvb3Q="
                },
                {
                    "column": "ZmFtMTpib2R5",
                    "timestamp": 1369725741503,
                    "$": "c3NoZFsxMjg2OF06IFJlY2VpdmVkIGRpc2Nvbm5lY3QgZnJvbSAxMC4xNDQuMTI5LjEzNzogMTE6IGRpc2Nvbm5lY3RlZCBieSB1c2Vy"
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369725741506,
                    "$": "MGE5MDgxOGE="
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369725741501,
                    "$": "MGE5MDgxOGE="
                },
                {
                    "column": "ZmFtMTp0aW1lc3RhbXA=",
                    "timestamp": 1369725741504,
                    "$": "MTM2OTcyNTczNjY5Mg=="
                },
                {
                    "column": "ZmFtMTp0aW1lc3RhbXA=",
                    "timestamp": 1369725741499,
                    "$": "MTM2OTcyNTczNjY5MA=="
                }
            ]
        }
    ]
}

$ curl -s -H "Accept: application/json" 0a908189.cht.local:51111/t1/rlog-13697257366*/fam1:host
{
    "Row": [
        {
            "key": "cmxvZy0xMzY5NzI1NzM2NjU5LTBhOTA4MThh",
            "Cell": [
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369725741469,
                    "$": "MGE5MDgxOGE="
                }
            ]
        },
        {
            "key": "cmxvZy0xMzY5NzI1NzM2NjYxLTBhOTA4MThh",
            "Cell": [
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369725741471,
                    "$": "MGE5MDgxOGE="
                }
            ]
        },
        {
            "key": "cmxvZy0xMzY5NzI1NzM2NjkyLTBhOTA4MThh",
            "Cell": [
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369725741506,
                    "$": "MGE5MDgxOGE="
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369725741501,
                    "$": "MGE5MDgxOGE="
                }
            ]
        }
    ]
}

修改flume agent程式將rowkey格式改為${rowPrefix}${log-src-host}-${suffix}後, 查詢結果
$ curl -s -H "Accept: application/json" http://0a908189.cht.local:51111/t1/rlog-0a90818c*/
{
    "Row": [
        {
            "key": "cmxvZy0wYTkwODE4Yy0xMzY5Nzk5NzgwMjg3",
            "Cell": [
                {
                    "column": "ZmFtMTpGYWNpbGl0eQ==",
                    "timestamp": 1369799786201,
                    "$": "ODA="
                },
                {
                    "column": "ZmFtMTpTZXZlcml0eQ==",
                    "timestamp": 1369799786207,
                    "$": "Ng=="
                },
                {
                    "column": "ZmFtMTphZ2VudA==",
                    "timestamp": 1369799786205,
                    "$": "MTAuMTQ0LjEyOS4xMzc="
                },
                {
                    "column": "ZmFtMTpib2R5",
                    "timestamp": 1369799786204,
                    "$": "c3NoZFsyOTc0N106IEFjY2VwdGVkIHB1YmxpY2tleSBmb3Igcm9vdCBmcm9tIDEwLjE0NC4xMjkuMTM3IHBvcnQgNTczNDYgc3NoMg=="
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369799786199,
                    "$": "MGE5MDgxOGM="
                },
                {
                    "column": "ZmFtMTp0aW1lc3RhbXA=",
                    "timestamp": 1369799786196,
                    "$": "MTM2OTc5OTc4MDI4Ng=="
                }
            ]
        },
        {
            "key": "cmxvZy0wYTkwODE4Yy0xMzY5Nzk5NzgwMjkx",
            "Cell": [
                {
                    "column": "ZmFtMTpGYWNpbGl0eQ==",
                    "timestamp": 1369799786197,
                    "$": "ODA="
                },
                {
                    "column": "ZmFtMTpTZXZlcml0eQ==",
                    "timestamp": 1369799786206,
                    "$": "Ng=="
                },
                {
                    "column": "ZmFtMTphZ2VudA==",
                    "timestamp": 1369799786204,
                    "$": "MTAuMTQ0LjEyOS4xMzc="
                },
                {
                    "column": "ZmFtMTpib2R5",
                    "timestamp": 1369799786208,
                    "$": "c3NoZFsyOTc0N106IHBhbV91bml4KHNzaGQ6c2Vzc2lvbik6IHNlc3Npb24gb3BlbmVkIGZvciB1c2VyIHJvb3QgYnkgKHVpZD0wKQ=="
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369799786202,
                    "$": "MGE5MDgxOGM="
                },
                {
                    "column": "ZmFtMTp0aW1lc3RhbXA=",
                    "timestamp": 1369799786200,
                    "$": "MTM2OTc5OTc4MDI5MA=="
                }
            ]
        },
        {
            "key": "cmxvZy0wYTkwODE4Yy0xMzY5ODA2OTg4Njc3",
            "Cell": [
                {
                    "column": "ZmFtMTpGYWNpbGl0eQ==",
                    "timestamp": 1369806994258,
                    "$": "ODA="
                },
                {
                    "column": "ZmFtMTpTZXZlcml0eQ==",
                    "timestamp": 1369806994254,
                    "$": "Ng=="
                },
                {
                    "column": "ZmFtMTphZ2VudA==",
                    "timestamp": 1369806994260,
                    "$": "MTAuMTQ0LjEyOS4xMzc="
                },
                {
                    "column": "ZmFtMTpib2R5",
                    "timestamp": 1369806994261,
                    "$": "c3NoZFsyOTc0N106IFJlY2VpdmVkIGRpc2Nvbm5lY3QgZnJvbSAxMC4xNDQuMTI5LjEzNzogMTE6IGRpc2Nvbm5lY3RlZCBieSB1c2Vy"
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369806994256,
                    "$": "MGE5MDgxOGM="
                },
                {
                    "column": "ZmFtMTp0aW1lc3RhbXA=",
                    "timestamp": 1369806994237,
                    "$": "MTM2OTgwNjk4Mzc0Mw=="
                }
            ]
        },
        {
            "key": "cmxvZy0wYTkwODE4Yy0xMzY5ODA2OTg4Njc4",
            "Cell": [
                {
                    "column": "ZmFtMTpGYWNpbGl0eQ==",
                    "timestamp": 1369806994261,
                    "$": "ODA="
                },
                {
                    "column": "ZmFtMTpTZXZlcml0eQ==",
                    "timestamp": 1369806994255,
                    "$": "Ng=="
                },
                {
                    "column": "ZmFtMTphZ2VudA==",
                    "timestamp": 1369806994262,
                    "$": "MTAuMTQ0LjEyOS4xMzc="
                },
                {
                    "column": "ZmFtMTpib2R5",
                    "timestamp": 1369806994257,
                    "$": "c3NoZFsyOTc0N106IHBhbV91bml4KHNzaGQ6c2Vzc2lvbik6IHNlc3Npb24gY2xvc2VkIGZvciB1c2VyIHJvb3Q="
                },
                {
                    "column": "ZmFtMTpob3N0",
                    "timestamp": 1369806994259,
                    "$": "MGE5MDgxOGM="
                },
                {
                    "column": "ZmFtMTp0aW1lc3RhbXA=",
                    "timestamp": 1369806994239,
                    "$": "MTM2OTgwNjk4Mzc0Ng=="
                }
            ]
        }
    ]
}