2017-04-14 30 views
0

運行Apache的鳳凰安裝Apache鳳凰及以下所有步驟按照官方documentattion後,並啓動hbbase過程後,我可以看到所有的pocesses運行所見:獲取問題上的Hadoop

jps

On trying to test Pheonix: 在嘗試測試Pheonix時:

這會停留幾分鐘,之後會拋出異常。

異常,重新拋出異常org.apache.phoenix.shaded.org.apache.zookeeper.KeeperException $ ConnectionLossException:KeeperErrorCode = ConnectionLoss用於/ HBase的/ hbaseid

任何幫助將非常感激。

enter image description here

回答

0

ConnectionLossException可能發生了一萬個理由。其中最可能的是查詢超時。

不幸的是,鳳凰有一個陡峭的學習曲線,就像HBase。你不能像在MySQL中那樣查詢你想要的任何內容,並讓它返回結果。這項工作在查詢編寫器上編寫非常非常高效的查詢。

嘗試使用ROWKEY作爲表以及時返回您的查詢。例如,在我們的表格中,我們的ROWKEY在開始時包含了一個非常熟悉的結構ID。所以我知道,如果我運行這樣的查詢:

select count(*) from "table" where ROWKEY like '0%' and "bla" = '123'; 

,在我的特定的表,我要得到表的結果早在我數的10%。於是我就加倍重視自己的計數由10

要啓動,請嘗試以下查詢:

select ROWKEY from "table" limit 1; 

如果返回,那麼你知道我是對的,你的工作,從有到非常寫,很高效的,有限的結果查詢。

你可以嘗試的另一件事:通過你的hbase-site.xml擴展超時。以下是我使用phoenix的客戶端hbase-site.xml:

<configuration> 
    <property> 
    <name>hbase.regionserver.wal.codec</name> 
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> 
    </property> 
    <property> 
    <name>hbase.client.scanner.caching</name> 
    <value>1000</value> 
    </property> 
    <property> 
    <name>hbase.client.scanner.timeout.period</name> 
    <value>600000</value> 
    </property> 
    <property> 
    <name>hbase.rpc.timeout</name> 
    <value>1800000</value> 
    </property> 
    <property> 
    <name>phoenix.query.threadPoolSize</name> 
    <value>768</value> 
    </property> 
    <property> 
    <name>phoenix.query.queueSize</name> 
    <value>15000</value> 
    </property> 
    <property> 
    <name>phoenix.query.keepAliveMs</name> 
    <value>300000</value> 
    </property> 
    <property> 
    <name>phoenix.connection.autoCommit</name> 
    <value>true</value> 
    </property> 
    <property> 
    <name>phoenix.schema.dropMetaData</name> 
    <value>false</value> 
    </property> 
    <property> 
    <name>phoenix.sequence.saltBuckets</name> 
    <value>0</value> 
    </property> 
</configuration> 

這些設置將允許您編寫效率稍低的查詢。