2015-01-09 7 views
16

Witam Wszystkie otrzymuję poniżej komunikat o błędzie podczas wykonywania kwerendy feniks na dużym stole.Nie można odczytać dużych danych z tabeli feniksów

0: jdbc:phoenix:hadoopm1:2181> select Count(*) from PJM_DATASET; 
+------------+ 
| COUNT(1) | 
+------------+ 

java.lang.RuntimeException: org.apache.phoenix.exception.PhoenixIOException: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: 
Fri Jan 09 02:18:10 CST 2015, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=62365: row '' on table 'PJM_DATASET' at region=PJM_DATASET,,1420633295836.4394a3aa2721f87f3e6216d20ebeec44., hostname=hadoopctrl,60020,1420790733247, seqNum=27753 

    at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2440) 
    at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2074) 
    at sqlline.SqlLine.print(SqlLine.java:1735) 
    at sqlline.SqlLine$Commands.execute(SqlLine.java:3683) 
    at sqlline.SqlLine$Commands.sql(SqlLine.java:3584) 
    at sqlline.SqlLine.dispatch(SqlLine.java:821) 
    at sqlline.SqlLine.begin(SqlLine.java:699) 
    at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:441) 
    at sqlline.SqlLine.main(SqlLine.java:424) 
0: jdbc:phoenix:hadoopm1:2181> 

proszę o pomoc.

+0

Mam dwa mistrz i serwer 1 w moim regionie klastra ambari sprawdzić stan usługi i pokazując, że wszystko, co działa dobrze – user3683741

+0

mam te same issue..is istnieje rozwiązanie tego problemu? – Arun

+0

Mam dokładnie ten sam problem. Wielkość mojego stołu wynosi 1,5 miliarda wierszy. –

Odpowiedz

1

callTimeout = 60000, callDuration = 62365.

Wygląda na to, że czas trwania połączenia przekracza 10 minut, czyli czas oczekiwania. Spróbuj ustawić plik "hbase.master.catalog.timeout" w pliku konfiguracyjnym hbase-default.xml - (lub niestandardowy) na wyższą wartość:

+1

Dzięki za odpowiedź, ale raportowany limit czasu to "60000 ms", czyli 1 minuta, a nie 10 - podczas gdy domyślna wartość 'hbase.master.catalog.timeout' wynosi 10 minut, więc nie wierzę, że to jest powodujące 'SocketTimeoutException' –

2

Musisz zwiększyć właściwość konfiguracji poniżej hbase do wyższej wartości w HBase konfiguracji serwera i klienta, wartość domyślna to 1 min (60000 Milli Sec)

<property> 
    <name>hbase.rpc.timeout</name> 
    <value>600000</value> 
    </property> 

najważniejszą rzeczą jest to, że polecenie poniżej powinien zwrócić właściwą HBase katalogu config gdzie plik HBase-site.xml zawiera powyższą nieruchomość . Jeśli wartość hbase_conf_path jest pusta lub., Wykonaj polecenie export HADOOP_CONF_DIR=<correct_hbase_dir>; wskazujące poprawną konfigurację hbase przed wykonaniem polecenia sqlline.py.

phoenix_utils.py | grep hbase_conf_path 
Powiązane problemy