对已经存在的hbase表修改压缩方式

业务上可能会遇到这种情况,在最初创建hbase表时候,未指定压缩方式,当数据导入之后,由rowkey带来的数据膨胀导致hdfs上的数据大小远远大于原始数据大小。所以这时候可能就不得不考虑使用压缩,但是如果将表删除,再创建一张指定压缩的表,再重新导入数据未免太浪费时间。当然也完全不用这样,可以直接修改hbase表的压缩方式,然后在执行major_compact即可

disable ‘testcompression‘ //首先将表下线
alter ‘testcompression‘, NAME => ‘f1‘, COMPRESSION => ‘SNAPPY‘ //修改表属性,指定压缩方式为SNAPPY
enable ‘testcompression‘ //启用表

desc ‘testcompression‘ //验证是否已启用压缩放肆
major_compact ‘testcompression‘ //执行大合并

需要注意的几点:

  1.在执行alter之后,hbase表已经启用压缩,但是对于原来表里已有的数据并不会进行压缩,后续再写入的数据才会执行压缩(可以到hdfs验证)

  2.如果想把原来表里已有的数据也使用压缩,那么需要执行一次major_compact。major_compact会重新读写数据,在这个流程中,对原有的数据进行压缩,但是如果表数据很大执行major_compact对hbase集群会有比较大的影响。如果是线上环境,建议在业务不繁忙期间执行。

原文地址:https://www.cnblogs.com/dtmobile-ksw/p/11371612.html

时间: 2024-11-06 16:51:26

对已经存在的hbase表修改压缩方式的相关文章

sql 跨表修改的方式

update xhj_mon_job_log a set person_id = (select id from xhj_mon_job_manage b where a.task_id = b.id)

HBase表数据导出和导入

本文不是技术收集贴,就是记录一下,因此没有收集所有的HBase表导入导出方式,只是记录一下自己用过的一种. 数据表的导出: 1 $ bin/hbase org.apache.hadoop.hbase.mapreduce.Driver export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]] 需要注意的是,outputdir指的是HDFS上的路径,建议使用绝对路径(没

HBase修改压缩格式及Snappy压缩实测分享

HBase修改压缩格式及Snappy压缩实测分享

pinpoint 修改hbase表TTL值

参考文档 https://greatwqs.iteye.com/blog/1741330 缘起Pinpoint接入业务监控后数据量大涨,平均每天Hbase数据增量20G左右,数据量太大,需要对数据进行定期清理,否则监控可用性降低,由于之前环境是由docker-compose部署,查到hbase可以修改表的ttl来清理数据,目前进入pinpoint-hbase容器操作,如果能在hbase表格生成时就修改ttl效果会更佳,该方法需要熟悉docker-compose里面pinpoint-web及pin

hbase开启lzo压缩

hbase只支持对gzip的压缩,对lzo压缩支持不好.在io成为系统瓶颈的情况下,一般开启lzo压缩会提高系统的吞吐量.但这需要参考具体的应用场景,即是否值得进行压缩.压缩率是否足够等等. 想要hbase支持lzo压缩,参照以下步骤: 1 首先要让系统支持lzo动态库,安装lzo-2.00以上版本:http://www.oberhumer.com/opensource/lzo/download/ 2 默认安装完后应该在系统的/usr/local/lib/找到liblzo*等几个so 3 到ht

hbase建表create高级属性 //hbase 表预分区也就是手动分区 这个很重要

2019/2/19 星期二 hbase建表create高级属性 //hbase 表预分区也就是手动分区 这个很重要 下面几个shell 命令在后续的hbase 操作中可以起到很到的作用,且主要体现在建表的过程中,看下面几个create 属性1.BLOOMFILTER 默认是NONE 是否使用布隆过虑使用何种方式布隆过滤可以每列族单独启用.使用HColumnDescriptor.setBloomFilterType(NONE |ROW | ROWCOL) 对列族单独启用布隆.Default = N

HBase表管理系统

1. 软件版本 & 部署: maven:3.3.9,jdk:1.7 ,Struts2:2.3.24.1,Hibernate:4.3.6,Spring:4.2.5,MySQL:5.1.34,Junit:4,Myeclipse:2014: Hadoop2.6.4,HBase1.1.2 源码下载:https://github.com/fansy1990/ssh_v3/releases 部署参考:http://blog.csdn.net/fansy1990/article/details/5135658

HBase表设计

1.Column Family 由于Hbase是一个面向列族的存储器,调优和存储都是在列族这个层次上进行的,最好使列族成员都有相同的"访问模式(access pattern)"和大小特征. 在一张表里不要定义太多的column family.目前Hbase并不能很好的处理超过2~3个column family的表.因为某个column family在flush的时候,它邻近的column family也会因关联效应被触发flush,最终导致系统产生更多的I/O. 2.Row Key 1

hadoop执行hdfs文件到hbase表插入操作(xjl456852原创)

本例中需要将hdfs上的文本文件,解析后插入到hbase的表中. 本例用到的hadoop版本2.7.2 hbase版本1.2.2 hbase的表如下: create 'ns2:user', 'info' hdfs上的文本文件如下[data/hbase_input/hbase.txt] 1,xiejl,20 2,haha,30 3,liudehua,40 4,daoming,41 可以通过命令查看hadoop的classpath现在包含哪些jar包: [[email protected] ~]$