Maison  >  Article  >  développement back-end  >  使用php访问zookeeper服务

使用php访问zookeeper服务

巴扎黑
巴扎黑original
2016-11-11 10:09:351606parcourir

下载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 


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) { 
  [0]=> 
  int(165782755280355365) 
  [1]=> 
  string(18) "?.L[?c6." 

array(2) { 
  [0]=> 
  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) 
  } 
  [1]=> 
  array(1) { 
    [0]=> 
    array(3) { 
      ["perms"]=> 
      int(31) 
      ["scheme"]=> 
      string(5) "world" 
      ["id"]=> 
      string(6) "anyone" 
    } 
  } 

int(40000)

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn