0%

大数据存储框架之Phoenix(2)配置说明

我们在配置Phoenix二级索引的时候,除了一些必要的配置之外,还会根据我们的实际情况去配置一下涉及到性能上的配置,也就是我们常称为的性能调优。笔者在千万级别数据这恰好需要用到,因此为此做了一个简单的配置的说明。

index.builder.threads.max

  • 用于从主表更新构建索引更新的线程数
  • 增加此值可克服从底层HRegion读取当前行状态的瓶颈;
  • 值增加后无法处理太多的并发扫描请求以及线程交换问题;
  • 默认值为:10
1
2
3
4
<property>
<name>index.builder.threads.max</name>
<value>128</value>
</property>

index.builder.threads.keepalivetime

  • 在使构建器线程池中的线程到期后的时间(以秒为单位)。
  • 在这段时间之后,未使用的线程会立即释放,并且不会保留核心线程(尽管最后一个是一个小问题,因为期望表能够维持相当恒定的写入负载),但是同时如果我们看不到线程,则会允许我们删除线程预期负荷。
  • 默认值:60
1
2
3
4
<property>
<name>index.builder.threads.keepalivetime</name>
<value>3600</value>
</property>

index.writer.threads.max

  • 写入目标索引表时使用的线程数。
  • 基于表的并行化的第一级-它应大致对应于索引表的数量
  • 默认值:10
1
2
3
4
<property>
<name>index.writer.threads.max</name>
<value>128</value>
</property>

index.writer.threads.keepalivetime

  • 使写程序线程池中的线程到期后的时间(以秒为单位)。
  • 在这段时间之后,未使用的线程会立即释放,并且不会保留核心线程(尽管最后一个是一个小问题,因为期望表能够维持相当恒定的写入负载),但是同时如果我们看不到线程,则会允许我们删除线程预期负荷。
  • 默认值:60
1
2
3
4
<property>
<name>index.writer.threads.keepalivetimex</name>
<value>3600</value>
</property>

hbase.htable.threads.max

  • 每个索引HTable可以用于写入的线程数。
  • 增加它可以进行更多的并发索引更新(例如跨批次),从而提高总体吞吐量。
  • 默认值:2,147,483,647
1
2
3
4
<property>
<name>hbase.htable.threads.max</name>
<value>250000000</value>
</property>

hbase.htable.threads.keepalivetime

  • HTable的线程池中的线程到期后的时间(以秒为单位)。
  • 使用“直接切换”方法,仅在必要时才创建新线程,并且新线程将无限增长。这可能很糟糕,但是HTables只能创建与区域服务器一样多的Runnable。因此,当添加新的区域服务器时,它也可以扩展。
  • 默认值:60
1
2
3
4
<property>
<name>hbase.htable.threads.keepalivetime</name>
<value>3600</value>
</property>

index.tablefactory.cache.size

  • 我们应该在缓存中保留的索引HTable的数量。
  • 增加此数字可确保我们无需为每次写入索引表的尝试重新创建HTable。相反,如果此值设置得太高,您可能会看到内存压力。
  • 默认值:10
1
2
3
4
<property>
<name>index.tablefactory.cache.size</name>
<value>128</value>
</property>
这是打赏的地方...

本文标题:大数据存储框架之Phoenix(2)配置说明

文章作者:Mr.Sun

发布时间:2019年11月28日 - 15:57:56

最后更新:2020年06月15日 - 10:05:35

原始链接:http://www.blog.sun-iot.xyz/posts/ebb7ee9b

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

---------Thanks for your attention---------