50010623 发表于 2017-3-21 11:10:00

使用php访问zookeeper服务

下载zookeeper依赖库:
http://apache.fayea.com/zookeeper/zookeeper-3.4.6/
解压
tar -zxf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6/src/c
安装
./configure --prefix=/usr/local/zookeeper/zookeeper-3.4.6/
make & make install

下载PHPzookeeper扩展库:
http://pecl.php.net/package/zookeeper

解压
tar -zxvf zookeeper-3.4.6.tar.gz
安装
/usr/local/php5.4/bin/phpize
./configure --with-php-config=/usr/local/php5.4/bin/php-config --with-libzookeeper-dir=/usr/local/zookeeper/zookeeper-3.4.6/
make & make install

编辑配置php
vim /usr/local/conf/php5.4/php.ini
/usr/local/php5.4/bin/php -m

l /usr/local/php5.4/lib/php/extensions/no-debug-non-zts-20100525
重启fpm
kill -USR2 `cat /usr/local/php5.4/var/run/php-fpm.pid`

测试访问zookeeper服务状态:
vim test_zookeeper.php

<?php

class zookeeper_instance extends Zookeeper {
    function connect_cb($type, $event, $string) {
      if ($event == Zookeeper::CONNECTED_STATE) {
            $acl=array(
                "perms"=>0x1f,
                "scheme"=>"world",
                "id"=>"anyone"
            );
      }
    }
}

$zk=new zookeeper_instance();
echo "instance ok\n";

$zk->connect("127.0.0.1:2181", array($zk, 'connect_cb'),200000);
echo "connect ok\n";
$zkm=$zk->get("/hbase/master");
var_dump($zk->getState());
var_dump($zk->getClientId());
var_dump($zk->getAcl("/hbase/master"));
var_dump($zk->getRecvTimeout());
var_dump($zkm);

echo "\n\r";

运行:
php test_zookeeper.php
结果:
instance ok
connect ok
string(65) "20165@namenode1.dd.comnamenode1.dd.com,60000,1429518731888"
int(3)
array(2) {
=>
int(165782755280355365)
=>
string(18) "?.L[?c6."
}
array(2) {
=>
array(11) {
    ["czxid"]=>
    float(227633267014)
    ["mzxid"]=>
    float(227633267014)
    ["ctime"]=>
    float(1429518733469)
    ["mtime"]=>
    float(1429518733469)
    ["version"]=>
    int(0)
    ["cversion"]=>
    int(0)
    ["aversion"]=>
    int(0)
    ["ephemeralOwner"]=>
    float(2.3780011668065E+17)
    ["dataLength"]=>
    int(65)
    ["numChildren"]=>
    int(0)
    ["pzxid"]=>
    float(227633267014)
}
=>
array(1) {
    =>
    array(3) {
      ["perms"]=>
      int(31)
      ["scheme"]=>
      string(5) "world"
      ["id"]=>
      string(6) "anyone"
    }
}
}
int(40000)
页: [1]
查看完整版本: 使用php访问zookeeper服务