2015-05-26 3 views
0

Я хочу подключиться к серверу Hive Server2, используя PHP, и для этого я нашел единственный вариант: Apache Thrift.Подключение сервера Hive Server2 с использованием PHP

Но он работает только для Hive Server1 не для Hive Server2. После поиска более подробных сведений об этом, это связано с тем, что бережливый сервер ожидает аутентификации через SASL при открытии вашего транспортного соединения. Сервер Hive Server 2 по умолчанию использует SASL - к сожалению, PHP не имеет версии TSaslClientTransport (которая используется как оболочка вокруг другого объекта TTransport), который обрабатывает согласование SASL при открытии вашего транспортного соединения.

Есть ли кто-нибудь, кто преуспел в подключении сервера hive2, используя php.

+0

Не могли бы вы найти способ подключения к Hive server2 с помощью PHP. У меня также есть одна и та же проблема, и я не могу найти какой-либо документ или рабочий пример. Пожалуйста, дайте мне знать, если вы найдете решение для этого. –

ответ

0
<?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(); 

?> 

Вот документация на сайте апача: https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-PHP

+0

Этот образец кода несовместим с сервером hive2 –

Смежные вопросы