Hbase&火花需要10多分钟才能读取并整合100万行中的100万行

时间:2016-10-21 11:37:50

标签: java apache-spark hbase spark-dataframe phoenix

我正在做Hbase和Spark的性能基准测试,并且在Spark需要大约10分钟的时间内读取并整合了9700万行中的100万行。以下是有关配置和数据的详细信息。

设备:

Total 4 servers.
1 - Master
3- Slaves
Each server config
CPU: Intel i5 processor
RAM: 16GB
HDD: 1TB (not SSD)

软件:

Hbase - 1.2.1
Spark - 1.6.2
Phoenix - 4.8.1
Hadoop - 2.6

数据大小:

Total regions - 20
Total data size: 25 GB
Total rows: 97 million.

我们已经应用了我从hbase指南和互联网上理解的性能调优配置,下面是hbase-site.xml的重要配置

  <property>
    <name>hfile.block.cache.size</name>
    <value>0.4</value>
  </property>

  <property>
    <name>hbase.client.scanner.caching</name>
    <value>10000</value>
  </property>

  <property>
    <name>hbase.regionserver.handler.count</name>
    <value>30</value>
  </property>

  <property>
    <name>hbase.regionserver.global.memstore.upperLimit</name>
    <value>0.3</value>
  </property>


  <property>
    <name>hbase.storescanner.parallel.seek.enable</name>
    <value>true</value>
  </property>



  <property>
    <name>hbase.storescanner.parallel.seek.threads</name>
    <value>20</value>
  </property>

  <property>
    <name>hbase.regionserver.wal.codec</name>
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
  </property>

  <property>
     <name>phoenix.query.timeoutMs</name>
     <value>7200000</value>
  </property>

  <property>
     <name>hbase.hregion.max.filesize</name>
     <value>10737418240</value>
  </property>
<property>
<name>hbase.thrift.connection.max-idletime</name>
<value>1800000</value>
</property>
<property>
       <name>hbase.client.write.buffer</name>
       <value>20971520</value>
  </property>
<property>
       <name>hbase.rpc.timeout</name>
       <value>7200000</value>
  </property>

<property>
       <name>phoenix.schema.dropMetaData</name>
       <value>false</value>
  </property>

<property>
       <name>phoenix.query.keepAliveMs</name>
       <value>7200000</value>
  </property>
<property>
       <name>hbase.regionserver.lease.period</name>
       <value>7200000</value>
  </property>
<property>
       <name>hbase.client.scanner.timeout.period</name>
       <value>7200000</value>
  </property>

我想知道还有什么可以调整以改善查询响应时间,即&gt;现在10分钟。

查询如下

select catColumn, sum(amount) from "BigTable" where timeStamp between <startTime> and <endTime> group by catColumn;

但整合是在spark上完成的,使用DataFrame函数

0 个答案:

没有答案