Intereting Posts
Загружать изображения в специальный Facebook Album Как перенаправить пользователя в мобильное приложение или веб-сайт при нажатии гиперссылки, отправленной по электронной почте? Должно ли это быть обработано на стороне сервера с помощью PHP? Как установить $ {var_name} Каков недостаток mt_rand? in_array на объектах с круговыми ссылками Функции PHP preg_match и preg_match_all Принудительная косая черта вызывает 404, можно ли исправить использование htaccess? Улучшить хеширование паролей со случайной солью Неустранимая ошибка: вызов неопределенной функции imagefilter () загрузите большой файл размером от 1 до 2 ГБ с помощью загрузки файла jQuery – blueimp (основанный на Ajax) php / yii, который показывает ошибку в браузере Firefox Как получить все переменные, определенные в текущей таблице / таблице символов? Переопределение плагинов-рендерингов плагинов Пользовательская таксономия и пользовательский тип сообщения с пользовательским разбиением на страницы 404 не найдены Введите код и пароль. Работает среда Symfony2, среда prod дает ошибку 404

Проблемы с php hiveserver 2

Я хочу подключиться к hiveserver2 от php-клиента. Тем не менее, я получаю пустую страницу (я должен видеть список таблиц в улье). Я адаптировал код из https://github.com/garamon/php-thrift-hive-client . Вначале я получал эту ошибку TSocket: timed out reading 4 bytes from host . После внедрения патча, как предлагается здесь, https://stackoverflow.com/a/19199938/4379550 . Ошибка исчезла, но я ничего не получаю. Мой код выглядит следующим образом:

 <?php $GLOBALS['THRIFT_ROOT'] = dirname(__FILE__) . '/lib'; 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'; require_once dirname(__FILE__) . '/ThriftHiveClientEx.php'; $transport = new TSocket('hadoop-gate.iis.u-tokyo.ac.jp', 10000); $transport->setSendTimeout(600 * 100); $transport->setRecvTimeout(600 * 100); $client = new ThriftHiveClientEx(new TBinaryProtocol($transport)); $client->open(); //show tables $client->execute('SHOW TABLES'); print_r($client); $tables = $client->fetchAll(); print_r($tables); foreach ($tables as $name){ echo( " found: {$name}\n" ); } ?> 

Сообщение об ошибке на сервере, полученном из менеджера cloudera, показано ниже:

 6:49:48.859 PM ERROR org.apache.thrift.server.TThreadPoolServer Error occurred during processing of message. java.lang.RuntimeException: org.apache.thrift.transport.TTransportException: Invalid status -128 at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:219) at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:227) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.thrift.transport.TTransportException: Invalid status -128 at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:230) at org.apache.thrift.transport.TSaslTransport.receiveSaslMessage(TSaslTransport.java:184) at org.apache.thrift.transport.TSaslServerTransport.handleSaslStartMessage(TSaslServerTransport.java:125) at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:262) at org.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41) at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216) ... 4 more 

Буду признателен за любую помощь. Спасибо заранее.

Related of "Проблемы с php hiveserver 2"

Для тех, кто сталкивается с одной и той же проблемой, я решил это, установив свойство NOSASL в NOSASL как ранее было NOSASL здесь . Причина, по которой я не мог сделать это раньше, состоит в том, что я изменял это свойство, перейдя в файл на сервере, и это не сработало, я думаю, потому что я использую распределение cloudera. То, что работало, устанавливало это свойство в менеджере cloudera, как описано в их документации .