【问题标题】:Getting issues Running Apache Pheonix on hadoop遇到问题 在 hadoop 上运行 Apache Phoenix
【发布时间】:2017-04-14 02:11:03
【问题描述】:

安装 Apache Pheonix 并按照官方文档执行所有步骤后,启动 hbbase 进程后,我可以看到所有进程运行:

在尝试测试 Pheonix 时:

这会停留几分钟,然后抛出异常。

异常,重新抛出异常 org.apache.phoenix.shaded.org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid

任何帮助将不胜感激。

【问题讨论】:

    标签: java apache hadoop hbase


    【解决方案1】:

    ConnectionLossException 可能出于一百万个原因发生。其中最有可能是查询超时。

    不幸的是,phoenix 有一个陡峭的学习曲线,就像 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>
    

    这些设置将允许您编写效率稍低的查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多