Hbase reset方式获取指定key范围内的值

代码如下:

<?php
class Monitor_Hbase{
    private $rest_host = "http://10.99.90.39:8130/";//rest地址
    private $ch;
    function __construct(){

    }
    function post($url, $data){
        $ch = curl_init();
        $header_str = array("Content-Type: application/json");
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        //curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‘put‘);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt ($ch, CURLOPT_HTTPHEADER , $header_str );
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);

        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }

    function rest($url){
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_HTTPHEADER,array("Accept: application/json"));
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }

    function get_range_data($table, $startRow, $endRow){
        $startRow = base64_encode($startRow);
        $endRow = base64_encode($endRow);
        $data = sprintf(‘{"startRow":"%s","endRow":"%s"}‘,$startRow,$endRow);
        $output = $this->post($this->rest_host.$table."/scanner",$data);
        $output_array = explode("\r\n",$output);
        $location = "";
        foreach($output_array as $item){
            if(strpos($item, ":")>-1){
                $tmp = explode(": ",$item);
                if($tmp[0] === ‘Location‘){
                    $location = $tmp[1];
                }

            }
        }
        $result = $this->rest($location);
        $f = ($this->prase_data(json_decode($result, true)));
        return $f;
    }

    function get_data($table, $key, $coloum){
        $param = urlencode($table).‘/‘.urlencode($key);
        if(!empty($coloum)){
            $param = $param.‘/‘.urlencode($coloum);
        }
        $url = $this->rest_host.$param;
        $output = $this->rest($url);
        return $this->prase_data(json_decode($output,true));
    }

    function prase_data($raw){
        $result = array();
        $rows = $raw[‘Row‘];
        //$raw = $raw[‘Row‘][0][‘Cell‘];
        foreach($rows as $row){
            $key = base64_decode($row[‘key‘]);
            foreach ($row[‘Cell‘] as $item){
                $col = base64_decode($item[‘column‘]);
                $value = base64_decode($item[‘$‘]);
                $result[$key][$col]=$value;
            }
        }
        return $result;
    }

}

$a = new Monitor_Hbase();
$b = $a->get_range_data(‘map_mobile_lighttpd_slowcount‘,‘mobile_all_201411111005‘,‘mobile_all_201411111030‘);
//$b = $a->get_data("nuomi_lixian_daily_count","20141026_CMNET_2G_Android_5.2.1_*","");
//$b = $a->get_data("nuomi_lixian_daily_count","20141016_ALL_CMNET_2G_Android_5.2.0","");
var_dump($b);

  

时间: 2024-11-17 21:46:04

Hbase reset方式获取指定key范围内的值的相关文章

NX二次开发-获取指定矩阵标识的矩阵值

函数:UF_CSYS_ask_matrix_values () 函数说明:获取指定矩阵标识的矩阵值. 用法: #include <uf.h> #include <uf_csys.h> extern DllExport void ufusr(char *param, int *returnCode, int rlen) { UF_initialize(); //获取WCS标识 tag_t tagWCS = NULL_TAG; UF_CSYS_ask_wcs(&tagWCS);

如何从二维数组中的多个key中获取指定key的值?

精华 LOVEME96 2016-10-21 10:40:19 浏览(1512) 回答(3) 赞(0) 新手求教:二维数组中一般会有多个key,如果我们要获得指定key的值,应该怎么做? 问题标签: php 回答(3) TimberSwift 2016-10-21 第一种:最简单的方法: foreach遍历数组,代码: foreach ($arr as $key => $value) { $arr2[] = $value['name']; } 另一种方法:使用了array_map $arr2 =

获取指定key对应的node节点信息

需求:之前写的脚本(https://www.cnblogs.com/imdba/p/10197192.html),每个node上都只有一个slot段范围的情况,本次通过测试,实现了,任意段范围的获取方法. key_slot=`redis-cli -h 5.5.5.101 -p 29001 -a abc123 -c cluster keyslot $1` node_slot=`sh get_slot_range2.sh 5.5.5.101 29001` find_tag=0 for i in $n

jQuery 遍历 - children() 方法 获取指定id下子元素的值

<a id="Aobj_2_2" class="" specid="2" specvid="2" href="javascript:void(0);"> <span>红色</span> <i title="点击"></i> </a> $("#Aobj_2_2").children("sp

ThinkPHP中如何获取指定日期后工作日的具体日期

思路: 1.获取到查询年份内所有工作日数据数组2.获取到查询开始日期在工作日的索引3.计算需查询日期索引4.获得查询日期 /*创建日期类型记录表格*/ CREATE TABLE `tb_workday` ( `did` int(11) NOT NULL AUTO_INCREMENT, `exact_date` varchar(32) NOT NULL COMMENT '具体日期:格式date("Ymd");(20170205)', `date_year` varchar(32) NOT

从一个复杂的json格式的String内获取某key的值

如题,如何简单的从一个复杂的String格式内获取某个key的值. 例如:从下面String下取到status的值. {"response":{"info":{"code":100000},"content":{"contractinfo":{"fsdid":"14646743396","title":"邮件titty",&qu

Oracle中修改表名遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”

Oracle中想修改表名: rename ASSETPORJECT to ASSETPROJECT; --结果提示:ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效. 看来有锁定该表的会话,于是,执行如下查询: SELECT sid, serial#, username, osuser FROM v$session where sid in(select session_id from v$locked_object); --kill掉相关的会话 ALTER

获取指定时间区间作业运行情况

背景:数据库服务器定期重启,想知道重启期间对作业的影响.通俗点就是服务器在重启这段时间,有哪些作业计划要运行,重启后是否要手动执行这些作业?第一次重启的时候,按照最笨的方式,把所有作业看一遍,然后人为判断有哪些作业将受到影响,再根据作业具体代码,确定是否需手动执行.后来老大说要弄个过程出来,通过传入起止时间参数,返回区间内的作业计划.PS:参考各类资料,修改过很多遍,最后成型在6月初,很多细节上的修改自己也记不清楚了,一直懒得整理.先放上代码,以及效果图. 1 /****************

获取指定表的创建脚本

--****************************************************************************-- 软件名称: May Flower Erp-- 版权所有: (C) 2005-2006 May Flower ERP 开发组-- 功能描述: 获取指定表的创建脚本,包括表和字段的属性.外键(注释掉的)----------------------------------------------------------------------