windows 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
- 1.
##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
- 1.
注意:补数时候要观察目标集群的队列积压
杀任务:
yarn application -kill application_1583222603228_0255(此处为application_id)
- 1.
##4.HBase表挪分组的影响
挪动分组会有一个region上下线的动作,会有短暂的影响,业务可能会有短暂的波动
- 1.
##5.hbase 节点挂掉
1)GC -超时,原因是scan太多
- 1.
##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 804)将表先挪到指定分组
move_group_tables 'pis_press, ['fvp_core_fligt_original_info']
5)目的集群容灾生产
restore_snapshot 'snapshot_fvp_core_fligt_original_info_20200212'
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
##8.hdfs数据均衡
su - hdfs
1)设置balancer带宽
hdfs dfsadmin -setBalancerBandwidth 4000000002)启动balancer
将主机IP添加进host.txtnohup 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.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
###手动离线方式迁移(一般修复不好,不建议使用)
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.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
1、从源hbase集群中复制出Hbase数据库表到本地目录
hbase fs -get src loc
- 1.
2、目的Hbase导入
hbase fs -put loc des
- 1.
3、修复.META.表
hbase hbck -fixMeta
- 1.
4、重新分配数据到各RegionServer
hbase hbck -fixAssignments
- 1.
1、源集群hdfs拉取到本地
hdfs dfs -get hdfs://hbase-blue-print/hbase/data/default/discp_test /home/hbase
- 1.
2、目的集群本地上传至hdfs
hdfs dfs -put /home/hbase/discp_test hdfs://hbase-blue-print-dr/hbase/data/default/discp_test
- 1.
3、目的集群master节点,hbck修复
hbase hbck -fixMeta
hbase hbck -fixAssignments
如遇assign失败,hbase shell
move_group_tables 'default', 'discp_test'
- 1.
- 2.
- 3.
- 4.
### 查hbase数据条数
hbase org.apache.hadoop.hbase.mapreduce.RowCounter '表名'
- 1.
###不进入终端操作hbase
echo "disable 'EBIL2:TT_MULTICOLUMN_COMPRESSION_TEST_0628' " | hbase shell
- 1.
###hdfs均衡:
设置balancer带宽
hdfs dfsadmin -setBalancerBandwidth 50000000
启动balancer
nohup hdfs balancer -policy datanode -threshold 5 -include -f host.txt > ./balancer_pis.log 2>&1 &
- 1.
- 2.
- 3.
- 4.
###删除hbase大表hbase shell需要添加的参数
@shell.hbase.configuration.get("hbase.rpc.timeout")
@shell.hbase.configuration.setInt("hbase.rpc.timeout", 6000000)
- 1.
- 2.
###hbase表重命名操作:
创建一个快照
hbase(main):024:0> snapshot '表名', '快照名'
克隆这个快照 赋给新的表名
hbase(main):025:0> clone_snapshot '快照名', '新表名'
- 1.
- 2.
- 3.
- 4.
###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.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
###同步队列积压排查思路
1.观察日志查出有问题的表
2.监控查看这个表近几天的请求对比,若波动明显可联系业务停写观察
- 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 202.登录前面几台任意几台机器,查和zk机器交互的任务
netstat -anp | grep 10.110.181.25:2181 | grep ESTABLISHED 拿到pid,ps出来任务id
3.拿到任务id之后停止任务
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
###删除比较大的表
1.先删除hdfs层数据
hdfs dfs -ls /hbase/data/命名空间/表名//列族/
hdfs dfs -rm -skipTrash /hbase/data/命名空间/表名//列族/
- 1.
- 2.
- 3.
- 4.
2. hbase shell 删除表
@shell.hbase.configuration.get("hbase.rpc.timeout")
@shell.hbase.configuration.setInt("hbase.rpc.timeout", 6000000)
drop '表名'
- 1.
- 2.
- 3.
打印机架信息:
hdfs dfsadmin -printTopology
- 1.
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
集群版本号
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
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皆过高,查询网络连接,确认异常请求,停止该业务请求
- 1.
- 2.
- 3.
- 4.
单节点同步队列sizeoflogqueue积压 生产容灾数据同步异常
视具体情况而定
1、确认未同步表,如无容灾表,则建立容灾表
2、确认生产容灾网络连通是否异常
3、查看积压的节点日志,查看积压原因,可能的原因有请求比较大,容灾性能不够,网络异常等,根据不同的异常,进行处理
日志路径:/log/hadoop/hadoop-hdfs-datanode-{hostname}.log
4、如果无明显异常,或短时间无法恢复的情况下,可以短时间停止同步 disable_table_replication 'table_name',关闭peer(不建议做此操作)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
#单节点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)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
原文链接:https://blog.51cto.com/u_16213610/9803473 标签:hdfs,登录,windows,region,复制,snapshot,hbase From: https://www.cnblogs.com/sunny3158/p/18330838