当前位置: 动力学知识库 > 问答 > 编程问答 >

hadoop - Connecting Hive Server2 using PHP

问题描述:

I wan to connect Hive Server2 Using PHP and for this I found the only option is Apache Thrift available.

But it works only for Hive Server1 not for Hive Server2. After searching more on it found, This is because the thrift server is expecting to authenticate via SASL when you open your transport connection. Hive Server 2 defaults to using SASL - unfortunately, PHP lacks a version of TSaslClientTransport (which is used as a wrapper around another TTransport object) which handles the SASL negotiation when you open your transport connection.

Is there any one who has succeeded on connecting hive server2 using php.

网友答案:
<?php

    // set THRIFT_ROOT to php directory of the hive distribution
    $GLOBALS['THRIFT_ROOT'] = '/lib/php/';
    // load the required files for connecting to Hive
    require_once $GLOBALS['THRIFT_ROOT'] . 'packages/hive_service/ThriftHive.php';
    require_once $GLOBALS['THRIFT_ROOT'] . 'transport/TSocket.php';
    require_once $GLOBALS['THRIFT_ROOT'] . 'protocol/TBinaryProtocol.php';
    // Set up the transport/protocol/client
    $transport = new TSocket('localhost', 10000);
    $protocol = new TBinaryProtocol($transport);
    $client = new ThriftHiveClient($protocol);
    $transport->open();

    // run queries, metadata calls etc
    $client->execute('SELECT * from src');
    var_dump($client->fetchAll());
    $transport->close();

?>

Here is the documentation on apache website: https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-PHP

分享给朋友:
您可能感兴趣的文章:
随机阅读: