HBase(十一)RowKey设计和热点问题

RowKey设计三原则 1、长度原则 rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实际应用中一般为10-100bytes,以byte[]形式保存,一般设计成定长。 建议尽可能短;但是也不能太短,否则rowkey前缀重复的概率增大 设计过长会降低memstore内存的利用率和HFile存储数据的效率。 2、散列原则 建议将rowkey的高位作为散列字段,这样将提高数据均衡分布在每个RegionServer,以实现负载均衡的几率。 如果没有散列字段,首字段直接... ... [查看更多]

Views: 4

HBase(十)整合Hive

Hive的安装部署 先决条件 搭建好三节点Hadoop集群; hadoop100上先安装好MySQL服务; 准备安装包 下载hive安装包 apache-hive-3.1.2-bin.tar.gz 规划安装目录 /opt/pkg/hive 上传安装包到hadoop100服务器中 解压 解压安装包到指定的规划目录/opt/pkg/ 修改配置文件 进入hive安装目录 重新命名hive目录 修改/opt/pkg//conf目录下的hive-site.xml, 默认... ... [查看更多]

Views: 15

HBase(九)集成MapReduce

HBase表中的数据最终都是存储在HDFS上,HBase天生的支持MR的操作,我们可以通过MR直接处理HBase表中的数据,并且MR可以将处理后的结果直接存储到HBase表中。 参考: http://hbase.apache.org/book.html#mapreduce 实战一:HBase表到HBase表 需求:读取HBase当中myuser这张表的f1:name、f1:age数据,将数据写入到另外一张myuser2表的f1列族里面去 第一步:创建myuser2这张hbase表... ... [查看更多]

Views: 12

HBase(八)Region 合并操作

Region的合并不是为了性能, 而是出于便于运维的目的 . 比如删除了大量的数据 ,这个时候每个Region都变得很小 ,存储多个Region就浪费了 ,这个时候可以把Region合并起来,进而可以减少一些Region服务器节点。 下面来看一下如何进行region合并: 通过Merge类冷合并Region 执行冷合并前,需要先关闭hbase集群 创建一张hbase表: 查看表region 需求: 通过查看UI界面,需要把test表中的前2个region数据进行合并,分别是: ... ... [查看更多]

Views: 13

HBase(七)表的预分区

HBase表的预分区 当一个table刚被创建的时候,Hbase默认的分配一个region给table。也就是说这个时候,所有的读写请求都会访问到同一个regionServer的同一个region中,这个时候就达不到负载均衡的效果了,集群中的其他regionServer就可能会处于比较空闲的状态。 解决这个问题可以用pre-splitting,在创建table的时候就配置好,生成多个region。 1 为何要预分区? 增加数据读写效率 负载均衡,防止数据倾斜 方便集群容灾调度r... ... [查看更多]

Views: 7