2015-01-09 42 views
16

嗨我在大表上運行鳳凰計數查詢時遇到錯誤消息。無法從鳳凰表讀取大量數據

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> 

請大家幫忙。

+0

我有我的羣兩位大師和1個區服務器,ambari服務檢查和狀態顯示,每一件事情是工作的罰款 – user3683741

+0

我也有同樣issue..is有沒有辦法解決這個問題? – Arun

+0

我有完全相同的問題。我的桌子的大小是15億行。 –

回答

1

callTimeout = 60000,callDuration = 62365。

看起來你的通話時間超過10分鐘,這是超時時間。 嘗試將hbase-default.xml - (或您的自定義)配置文件中的「hbase.master.catalog.timeout」設置爲更高的值

+1

感謝您的回答,但報告的超時時間是'60000 ms',這是1分鐘,而不是10 - 而'hbase.master.catalog.timeout'的默認值是10分鐘,所以我不相信這是導致'SocketTimeoutException' –

2

您需要將下面的hbase配置屬性增加到更高的值HBase的服務器和客戶端的配置,默認值是1分鐘(60000毫秒)

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

,最重要的是,這裏的HBase-site.xml文件包含上述屬性下面命令應返回正確的HBase的config目錄。如果hbase_conf_path的值爲空或。,則在執行命令sqlline.py之前,執行命令export HADOOP_CONF_DIR=<correct_hbase_dir>;以指向正確的hbase配置。

phoenix_utils.py | grep hbase_conf_path