Witam Mam do czynienia z problemem podczas próby pobrania danych ze zdalnego klastra hadoop przy użyciu hiveserver2.Hiveserver2 nie może pobrać wyniku zapytania ze zdalnego połączenia
Połączenie JDBC pracuje w tym sensie, że meta wyszukiwania danych, takich jak show tables
pracuje i nawet pytania, które wymagają prostego listę danych, takich jak select * from table
jest working.But także gdy zapytanie, które powoduje zmniejszenie o mapę pracę na hadoop, jest wykonywany, taki jak select count(*) from table
, a następnie wyrzuca wyjątek połączenia. Widzę w dziennikach ula, że zapytanie jest wykonywane bez żadnego błędu.
Próbowałem tego samego z beeline i działało, gdy podłączyłem się przy użyciu localhost
, ale kiedy połączyłem się przy użyciu nazwy serwera, wykonanie właśnie się zawiesiło.
Jestem pewien, że mam pewne właściwości konfiguracyjne, które powodują ten problem.
Używam Hadoop wersję 2.0 oraz wersję Hive 0.12.0
Tylko dla jasności błąd wyrzucane po stronie klienta jest następujący
Exception in thread "main" java.sql.SQLException: org.apache.thrift.transport.TTransportException
at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:203)
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:300)
at com.nanobi.contentserver.Aatest.HiveJdbcClient.main(HiveJdbcClient.java:57)
jak mówiłem nie ma błędu na serwerze lub hive.log i kwerenda została wykonana pomyślnie. Najlepsze jest to, że błąd jest generowany podczas pobierania wyniku zapytania. Nie można znaleźć dokładnie, gdzie.
Proszę dać mi znać, jeśli konieczne są dalsze wyjaśnienia, aby zrozumieć problem
Dzięki z
Czy wyświetlasz zapytanie przez Beeline? Jeśli nie, to co? Ponadto, którą wersję Thrift zainstalowałeś na miejscu? – Eli
Witaj Eli, zapytanie działa poprawnie od beeline, podczas używania "localhost" lub adresu IP serwera w adresie URL połączenia. Nawet klient java działa po uruchomieniu z serwera, na którym zainstalowana jest gałąź. Problem występuje tylko podczas wykonywania zdalne połączenie i nawet wtedy widzę na konsoli Hiveserver2, że zapytanie jest wykonywane bez żadnego błędu, nic w dziennikach też. – tyagi
To tylko, że Hiveserver2 nie jest w stanie pobrać wyniku zapytania. Problem jest widoczny tylko w przypadku zapytania, które powoduje zadanie mapreduce na hadoopie, takie jak 'select count (*) from table'. Pobieranie prostych zapytań przez serwer hive. Thrift pochodzi z instalacją Hive-0.12.0, więc domyślam się, że Thrift jest tej samej wersji. Proszę dać mi znać, jeśli potrzebujesz innych informacji.Pozdrawiam – tyagi