IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> HBase日常问题处理 -> 正文阅读

[大数据]HBase日常问题处理

##1. ZK连接过多
1) 查看ip连接数前十??

netstat -na | grep 2181 | awk '{print$5}' | awk -F : '{print$1}'| sort |uniq -c |sort -rn | head -n 10

##2.补数操作

hbase org.apache.hadoop.hbase.mapreduce.CopyTable -Dmapreduce.job.queuename=root.default -Dhbase.client.scanner.caching=5 -Dmapreduce.map.speculative=false --starttime=1624453200000 ?--endtime=1624539600000 ?--families=ilFamily --versions=1 --peer.adr=*.*.*.*:2182:/hbase pvs:interfacelog >>./log/pvs-interfacelog

注意:补数时候要观察目标集群的队列积压

杀任务:

yarn application -kill application_1583222603228_0255(此处为application_id)


##4.HBase表挪分组的影响

挪动分组会有一个region上下线的动作,会有短暂的影响,业务可能会有短暂的波动

##5.hbase 节点挂掉

1)GC -超时,原因是scan太多

##7.迁移表

1)首先控制源生产的队列
vim /app/hadoop/etc/hadoop/fair-scheduler.xml
?
?60000 mb,10 vcores
?300000 mb,50 vcores

查看端口namenode节点:23188

2)做快照

snapshot 'pis_waybill_staticroute_hot', 'snapshot_pis_waybill_staticroute_hot_20210702'


3)目标集群恢复快照:(目的集群生产+容灾)
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -Dmapreduce.job.queuename=root.default -snapshot snapshot_pis_waybill_vehicle_destzone_20210702 -copy-to hdfs://*.*.*.*:8020/hbase -mappers 20 -bandwidth 80
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -Dmapreduce.job.queuename=root.defalut -snapshot snapshot_pis_waybill_vehicle_destzone_20210702 -copy-to hdfs://*.*.*.*:8020/hbase -mappers 20 -bandwidth 80


4)将表先挪到指定分组
move_group_tables 'pis_press, ['fvp_core_fligt_original_info']

5)目的集群容灾生产
restore_snapshot 'snapshot_fvp_core_fligt_original_info_20200212'

##8.hdfs数据均衡

su - hdfs
1)设置balancer带宽
hdfs dfsadmin -setBalancerBandwidth 400000000

2)启动balancer
将主机IP添加进host.txt

nohup hdfs balancer -policy datanode -threshold 5 -include -f host.txt > ./balancer_20210708.log 2>&1 &


threshold 5 :集群平衡的条件,datanode间磁盘使用率相差阀值,区间选择在0~100
-include -f?
3)查看nohup任务
jobs

###手动离线方式迁移(一般修复不好,不建议使用)

1、从源hbase集群中复制出Hbase数据库表到本地目录
hbase fs -get src loc
2、目的Hbase导入
hbase fs -put loc des
3、修复.META.表
hbase hbck ?-fixMeta
4、重新分配数据到各RegionServer
hbase hbck -fixAssignments


1、从源hbase集群中复制出Hbase数据库表到本地目录
?

hbase fs -get src loc


2、目的Hbase导入

hbase fs -put loc des


3、修复.META.表

hbase hbck ?-fixMeta


4、重新分配数据到各RegionServer

hbase hbck -fixAssignments

1、源集群hdfs拉取到本地

hdfs dfs -get hdfs://hbase-blue-print/hbase/data/default/discp_test /home/hbase


2、目的集群本地上传至hdfs

hdfs dfs -put /home/hbase/discp_test hdfs://hbase-blue-print-dr/hbase/data/default/discp_test


3、目的集群master节点,hbck修复

hbase hbck -fixMeta
hbase hbck -fixAssignments
如遇assign失败,hbase shell
move_group_tables 'default', 'discp_test'


### 查hbase数据条数

hbase org.apache.hadoop.hbase.mapreduce.RowCounter ?? ? '表名'


###不进入终端操作hbase

echo "disable 'EBIL2:TT_MULTICOLUMN_COMPRESSION_TEST_0628' " | hbase shell

###hdfs均衡:

设置balancer带宽
hdfs dfsadmin -setBalancerBandwidth 50000000
启动balancer
nohup hdfs balancer -policy datanode -threshold 5 -include -f host.txt > ./balancer_pis.log 2>&1 &


###删除hbase大表hbase shell需要添加的参数

@shell.hbase.configuration.get("hbase.rpc.timeout")
@shell.hbase.configuration.setInt("hbase.rpc.timeout", 6000000)

###hbase表重命名操作:

创建一个快照
hbase(main):024:0> snapshot '表名', '快照名'
克隆这个快照 赋给新的表名
hbase(main):025:0> clone_snapshot '快照名', '新表名'


###hbase老集群RIT排查问题

1. 确认RIT是否都在一台机器上面,若出现在同一台机器上面可以先停掉regionserver进程观察看看
2. 确认是否有大的region
登录集群任意一台切换hdfs用户,查看是否有大于20G的region
hdfs dfs -du -h /hbase/data/表名 |grep M|sort -nrk 1 |head -n 10?
3.移动大region到空闲机器(空闲机器要在出问题的分组内)
move 'regionID','SERVERNAME(master页面看到的),eg:cnsz20pl6228,16020,1617240019531'

4.切分region (切完之后hdfs层可能没那么快展示大小,注意观察master日志)也可以先切分region
split 'regionID'


###同步队列积压排查思路

1.观察日志查出有问题的表
2.监控查看这个表近几天的请求对比,若波动明显可联系业务停写观察


###zk连接数打高排查:

1. zk节点查看zk连接数前20的IP
netstat -anp | grep 10.110.181.25:2181 | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rnk 1 | head -n 20

2.登录前面几台任意几台机器,查和zk机器交互的任务
netstat -anp | grep 10.110.181.25:2181 | grep ESTABLISHED 拿到pid,ps出来任务id

3.拿到任务id之后停止任务


###删除比较大的表

1.先删除hdfs层数据
hdfs dfs -ls /hbase/data/命名空间/表名/*/列族/*

hdfs dfs -rm -skipTrash /hbase/data/命名空间/表名/*/列族/*


2. hbase shell 删除表

@shell.hbase.configuration.get("hbase.rpc.timeout")
@shell.hbase.configuration.setInt("hbase.rpc.timeout", 6000000)
drop '表名'

打印机架信息:

hdfs dfsadmin -printTopology


yarn增加队列在resourcemanager上面新增完之后,刷新队列命令:
yarn rmadmin -refreshQueues


解锁root密码:
salt -G 'ipv4:*.*.*.*' cmd.shell 'pam_tally2 -u root -r'


目录介绍:

/hbase/.hbase-snapshot
hbase若开启了 snapshot 功能之后,对某一个用户表建立一个 snapshot 之后,snapshot 都存储在该目录下
/hbase/.hbck?
HBase 运维过程中偶尔会遇到元数据不一致的情况,这时候会用到提供的 hbck 工具去修复,修复过程中会使用该目录作为临时过度缓冲
/hbase/.tmp?
当对表做创建或者删除操作的时候,会将表move 到该 tmp 目录下,然后再去做处理操作
/hbase/MasterProcWALs?
含有一个HMaster主节点状态日志文件,记录操作日志
/hbase/WALs?
被HLog实例管理的WAL文件
/hbase/oldWALs?
当/hbase/WALs 中的HLog文件被持久化到存储文件中,不再需要日志文件时,它们会被移动到/hbase/oldWALs目录
/hbase/archive?
存储表的归档和快照,HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。?
存储表的归档和快照具体目录:?
/hbase/archive/data/default/表名/region名/列族名/fd2221d8d1ae4e579c21882f0ec4c5a5
/hbase/corrupt?
损坏的日志文件,一般为空
/hbase/data?
hbase存储数据的核心目录
/hbase/hbase.id?
集群唯一ID
/hbase/hbase.version?
集群版本号

hbase zookeper最大处理时延过大?? ?

重置计数?? ?
1、zk_max_latency过高,zk_avg_latency未明显增长,瞬时过大请求时延,重置计数
echo 'srst' | nc IP ?PORT ?示例 :echo 'srst' |nc 10.110.105.73 2181
2、zk_max_latency,zk_avg_latency皆过高,查询网络连接,确认异常请求,停止该业务请求

单节点同步队列sizeoflogqueue积压?? ?生产容灾数据同步异常?? ?

视具体情况而定
1、确认未同步表,如无容灾表,则建立容灾表
2、确认生产容灾网络连通是否异常
3、查看积压的节点日志,查看积压原因,可能的原因有请求比较大,容灾性能不够,网络异常等,根据不同的异常,进行处理
日志路径:/log/hadoop/hadoop-hdfs-datanode-{hostname}.log
4、如果无明显异常,或短时间无法恢复的情况下,可以短时间停止同步 disable_table_replication 'table_name',关闭peer(不建议做此操作)


#单节点TPS(RquestsPerSerond)过高,热点?? ?部分请求变慢?? ?均衡region分布/切分region并转移?? ?

1、查看region分布
访问集群主页,查看同一rsgroup节点region分布情况
2、均衡region
若该节点regions num过多,balance该节点所属group,登录集群任一数据节点,进入hbase shell
hbase shell
balance_group '{groupname}'
否则转移热点region(同上)
3、切分region并转移
登录集群任一数据节点,进入hbase shell
hbase shell
split '{regionID}'
转移region至同一rsgroup其他节点
move '{regionID}','{serverName}'(此处region为切分产生的region)

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:27:43  更:2021-08-17 15:29:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:16:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码