hbase和hive的一些调优心得
2016-11-20 16:01
176 查看
Hive优化:
1、开启limit,防止过多的数据查询造成时延
2、开启严格模式,禁止三种模式的查询(查询全部分区而没有where限制、使用order by查询而没有limit限制,表联结使用on以限制笛卡儿积的查询)
3、合理的设置map reduce的个数,不能过多或者过少
4、使用本地模式,对于一些数据量小的查询,减少开启job的时间
5、使用map端jion,将数据量小的表,放在join的左边,直接加入内存
6、推测执行,这是对MR的优化,防止出现木桶效应
7、设置并行度,让一些不相关的stage能够并行运行,加速任务的完成
8、JVM重用,通过在配置文件中设置一些参数,来配置某些task的stage重用JVM,减少任务的开启时间
9、建立索引,加快查询
10、调整动态分区的数量,尽量高,不能太高,1000个左右最好
11、设置中间和reduce结果进行压缩,减少占用空间
HBase优化:
1、hbase查询优化
1> 设置scan缓存,定义服务端到客户端的数据条数
2> 显示指定查询列,避免太多的数据传输造成网络压力
3 >设置过滤,只查询需要的数据,比如行键
4 >使用HTablePool,解决HTable线程不安全的情况
5 >关闭ResultScanner,保证连接不会一直占用
2、hbase写入优化
1 >关闭WAL,避免每次写入数据都要先写入日志文件
2 >关闭AutoFlush,避免用户每次提交数据都直接发送到了服务器端,可以在客户端进行缓存
3 >预创建Region,使用自带的分区工具或者自定义分区算法都行
4 >延迟日志flush的时间,默认值为1秒,可以增大该值,将数据在内存中少留一会,较少WAL日志到HDFS的次数
5 >使用批量写,通过put方法,指定多个行键,批量写入
3、hbase配置参数优化
1 >设置RegionServer的handler数量,默认为10,适当的增大,可以提高服务端同时接收请求的线程数量,一般为10 的整数倍
2 >合理的设置MemStore的上下限
3 >调整影响合并的文件数,就是调整触发StoreFile进行合并的文件数量
4 >合理的设置MemStore的flush因子,也就是触发memstore进行flush的内存大小
5 >调整zookeeper的会话时间,避免HMaster察觉某个RS宕机的时间太长
4、表设计优化
1 >开启布隆过滤器
2 >调整列簇块的大小,也就是HFile的大小
3 >设置列簇的最大版本数,避免一些更新非常频繁的应用效率低下
4 >设置TTL,让过期的数据自动删除
5 >设置In Memory属性,就放在In Memory队列中
1、开启limit,防止过多的数据查询造成时延
2、开启严格模式,禁止三种模式的查询(查询全部分区而没有where限制、使用order by查询而没有limit限制,表联结使用on以限制笛卡儿积的查询)
3、合理的设置map reduce的个数,不能过多或者过少
4、使用本地模式,对于一些数据量小的查询,减少开启job的时间
5、使用map端jion,将数据量小的表,放在join的左边,直接加入内存
6、推测执行,这是对MR的优化,防止出现木桶效应
7、设置并行度,让一些不相关的stage能够并行运行,加速任务的完成
8、JVM重用,通过在配置文件中设置一些参数,来配置某些task的stage重用JVM,减少任务的开启时间
9、建立索引,加快查询
10、调整动态分区的数量,尽量高,不能太高,1000个左右最好
11、设置中间和reduce结果进行压缩,减少占用空间
HBase优化:
1、hbase查询优化
1> 设置scan缓存,定义服务端到客户端的数据条数
2> 显示指定查询列,避免太多的数据传输造成网络压力
3 >设置过滤,只查询需要的数据,比如行键
4 >使用HTablePool,解决HTable线程不安全的情况
5 >关闭ResultScanner,保证连接不会一直占用
2、hbase写入优化
1 >关闭WAL,避免每次写入数据都要先写入日志文件
2 >关闭AutoFlush,避免用户每次提交数据都直接发送到了服务器端,可以在客户端进行缓存
3 >预创建Region,使用自带的分区工具或者自定义分区算法都行
4 >延迟日志flush的时间,默认值为1秒,可以增大该值,将数据在内存中少留一会,较少WAL日志到HDFS的次数
5 >使用批量写,通过put方法,指定多个行键,批量写入
3、hbase配置参数优化
1 >设置RegionServer的handler数量,默认为10,适当的增大,可以提高服务端同时接收请求的线程数量,一般为10 的整数倍
2 >合理的设置MemStore的上下限
3 >调整影响合并的文件数,就是调整触发StoreFile进行合并的文件数量
4 >合理的设置MemStore的flush因子,也就是触发memstore进行flush的内存大小
5 >调整zookeeper的会话时间,避免HMaster察觉某个RS宕机的时间太长
4、表设计优化
1 >开启布隆过滤器
2 >调整列簇块的大小,也就是HFile的大小
3 >设置列簇的最大版本数,避免一些更新非常频繁的应用效率低下
4 >设置TTL,让过期的数据自动删除
5 >设置In Memory属性,就放在In Memory队列中
相关文章推荐
- hbase和hive的一些调优心得
- 用C# 连接 hadoop,hive,hbase的一些代码
- 关于hbase的一些调优问题
- 关于近期HBase系统设计开发和性能调优的一些小结
- HBase、Hive、MapReduce、Hadoop、Spark 开发环境搭建后的一些步骤(export导出jar包方式 或 Ant 方式)
- 关于近期HBase系统设计开发和性能调优的一些小结
- hadoop+hbase+hive+Spark环境性能调优---安装系列九
- HBase在数据统计应用中的使用心得
- 使用U盘启动安装操作系统的一些心得
- 大数据Spark “蘑菇云”行动第100课:Hive性能调优之企业级Join、MapJoin、GroupBy、Count、数据倾斜彻底解密和最佳实践
- Hive和Hbase整合
- JAVA开发:分享一些SpringMvc+Ibatis+spring的框架使用心得
- 对hive和hbase的理解 基于【浅谈Hive vs. HBase】
- 【转载】HDFS+MapReduce+Hive+HBase十分钟快速入门(一)
- tomcat6 一些调优设置内存和连接数
- cm-5.13下配置hbase客户端,hive客户端,hadoop客户端,spark客户端
- Hive调优实战
- 【HBase调优】Hbase万亿级存储性能优化总结
- hive,hbase与pig的区别与联系
- 我在日企的一些心得