一. Hbase的region 我们先简单介绍下Hbase的架构和Hbase的region: 从物理集群的角度看,Hbase集群中,由一个Hmaster管理多个HRegionServer,其中每个HRegionServer都对应一台物理机器,一台HRegionServer服务器上又可以有多个Hregion(以下简称region).要读取一个数据的时候,首先要先找到存放这个数据的region.而Spark在读取Hbase的时候,读取的Rdd会根据Hbase的region数量划分stage.所以当r…
1 Spark读HBase Spark读HBase黑名单数据,过滤出当日新增userid,并与mysql黑名单表内userid去重后,写入mysql. def main(args: Array[String]): Unit = { @volatile var broadcastMysqlUserids: Broadcast[Array[String]] = null val today = args(0) val sourceHBaseTable = PropertiesUtil.getProp…
在生产环境中很有可能有那么几个Region比较大,但是都运行在同一个Regionserver中. 这个时候就需要手动将region移动到负载低的Regionserver中. 步骤: 1.找到要移动的region,记录红框的id值,这个是唯一的region ID 2.查看RegionServer列表,并记录ip.端口.startcode #明显读请求不均衡 3.我们需要将部分region移动到dn3这台RegionServer上. 例如: mine:t_match_odds,""&quo…
import org.apache.hadoop.hbase.HBaseConfiguration import org.apache.hadoop.hbase.io.ImmutableBytesWritable import org.apache.hadoop.hbase.mapreduce.TableInputFormat import org.apache.spark.{SparkConf, SparkContext} import org.apache.hadoop.hbase.clie…
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] // :: ERROR RecoverableZooKeeper: ZooKeeper exists failed after attempts // :: ERROR ZooKeeperWatcher: hconnection-0xaaa0f760x0, quorum=localhost:, baseZNode=/hbase Received unexpec…
package com.grady import org.apache.hadoop.hbase.HBaseConfiguration import org.apache.hadoop.hbase.client.Result import org.apache.hadoop.hbase.io.ImmutableBytesWritable import org.apache.hadoop.hbase.mapreduce.TableInputFormat import org.apache.hado…
任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题.HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少.总结起来,大家遇到的主要问题无非是Full GC异常导致宕机问题.RIT问题.写吞吐量太低以及读延迟较大. Full GC问题之前在一些文章里面已经讲过它的来龙去脉,主要的解决方案目前主要有两方面需要注意,一方面需要查看GC日志确认是哪种Full GC,根据Full GC类型对JVM参数进行调优,另一方…
项目背景 spark sql读hbase据说官网如今在写,但还没稳定,所以我基于hbase-rdd这个项目进行了一个封装,当中会区分是否为2进制,假设是就在配置文件里指定为#b,如long#b,还实用了个公司封装的Byte转其它类型,这个假设别人用须要自己实现一套方案.假设我们完毕这一步,将会得到一个DataFrame,后面就能够registerTmpTable,正常使用了使用hiveContext,是由于有一定的orc文件.我这套方案是兼容hbase和hfile的.比方: val conf =…
HBASE操作:(一般先合并region然后再压缩) 一 .Region合并: merge_region   'regionname1','regionname2' ,'true'  --true代表强制合并,一般要加上 一般要是将小文件根据配置的最大上限进行合并,合并后最好清理一下hdfs 二.Region 压缩: 我们以test表为例: 我们先创建一张不含任何压缩格式的test表,并且向其导入10多G的数据$ hadoop fs -du -h /hbase/data/default/   …
要求:计算hasgj表,计算每天新增mac数量. 因为spark直接扫描hbase表,对hbase集群访问量太大,给集群造成压力,这里考虑用spark读取HFile进行数据分析. 1.建立hasgj表的快照表:hasgjSnapshot 语句为:snapshot 'hasgj','hasgjSnapshot' 2.计算每天mac增量的代码如下: package com.ba.sparkReadHbase.operatorHfile.hfileinputformat; import java.io…