- 博客(94)
- 资源 (2)
- 收藏
- 关注
原创 离线数仓作业大面积延时的故障复盘
一、故障背景2021-02-17 早晨发现钉钉群“数据平台”在07:00发出告警:Flow data_warehouse status is RUNNING, totally 164 unsuccessful job, primarily because:dwa_vvip_page_user_trail_daily status:RUNNINGdwa_openplatform_xmfm_vip_listeninfo_daily status:RUNNINGdwa_vvip_marketing_sp
2021-03-06 13:39:43
571
原创 NameNode频繁切换active/standby的原因和解决
【导读】若HA-Hadoop集群的active NameNode频繁出现自动切换,则可能的原因有二:(1)ZKFC的健康检查超时时长设置不合理,导致ZKFC认为NN挂掉(实际上此时的NameNode是正常active的,即“NameNode假死现象”),从而引起自动切换active NN;(2)Zookeeper上的Session Timeout导致zookeeper的服务端丢弃了当前持有的active锁(是一个临时znode),导致自动切换。【故障现象】某天下午,钉钉群发出一条NameNode下
2021-03-01 17:23:04
4448
原创 Hbase2.0某台RegionsServer宕机的RCA以及如何预防
一、故障背景HDP 的Ambari控制台显示某台主机的RegionServer服务下线二、根本原因分析(RCA,Root Cause Analysis)(1)从Ambari控制台手动start RegionServer服务,失败。(2)检查这台主机上的RS有关日志,发现有多条记录:org.apache.hadoop.hbase.ClockOutOfSyncException: Server 172.25.224.4,16020,1613788579799 has been rejected
2021-02-26 17:53:38
347
2
原创 高可用redis集群搭建
在web项目里出现高并发时,可以通过负载均衡来处理,redis的插槽分配机制就是一个负载均衡的模式。Redis集群节点复制介绍(1)Redis集群的每个节点都有两种角色可选:主节点master node、从节点slave node。其中主节点用于存储数据,而从节点则是某个主节点的复制品(2)当用户需要处理更多读请求的时候,添加从节点可以扩展系统的读性能,因为Redis集群重用了单机Redis...
2019-09-28 00:34:11
625
原创 如何用Nginx+Keepalived实现高可用的反向代理+负载均衡
nginx+keealived实现反向代理和负载均衡keealived服务工作在3层(IP)、4层(TCP)、5(应用层)nginx通过Virtual IP对外提供www服务,能通过算法实现后端web服务的负载均衡下列操作徐预先安装tengine,或者nginx。【第一部分】配置一个虚拟IP地址,只向外界暴露这个VIP以node1为例说明操作步骤。【第一步】添加http子模块upst...
2019-09-09 20:25:41
668
1
原创 Pinpoint部署和踩坑记录
pinpoint是韩国人开源的 APM (Application Performance Management/应用性能管理)工具 - Pinpoint。它基于google Dapper开发,目标就是为n(n>=1)层架构开发新的跟踪平台,为n层架构的系统提供解决方案。pinpoint能够对基于java的大规模分布式系统和应用做调用链的跟踪。pinpoint提供了一个web页面展示分布式系统...
2019-05-29 16:00:21
13145
6
原创 使用vsFTP服务实现大数据的远程灾备
目 录[第一章] 安装VSFTPD[第二章] 相关用户的创建,以及用户相关目录和文件的创建[第三章] VSFTP客户端的使用[第四章] 实施大数据文件的异地灾备业务需求:对云主机的大数据做远程灾备(把云主机上的数据在其他的机器上做定期备份),以便云主机数据丢失后的恢复。ftp客户端用户的权限:每个用户只能在自己的根目录执行ls、mkdir、put;不允许删除自己根目录下的文件,不允许删...
2019-05-18 13:37:56
644
原创 OpenTSDB使用demo及其httpAPI的保护
【目录】【第一章】Opentsdb运行环境准备【第二章】安装HA-hadoop集群、HA-HBASE集群、zookeeper集群【第三章】安装openTSDB【第四章】通过Nginx对OpenTSDB做用户验证,确保opentsdb http接口安全本文提到的各种服务和操作都经过本人验证,期间的坑已经替你们踩过了,读者可以参照本文档来一步步实施。觉得有用可以收藏。【第...
2019-05-05 17:55:04
1928
原创 hbase性能优化路线
本文主要针对hbase1.X版本的性能优化,优化涉及的方面有很多,下面分别以图表的形式阐述。hbase优化涉及面概览:linux系统优化:JVM优化:高可用&HFDS优化:配置参数优化:业务优化:客户端优化:大家可以根据自己的业务情况做具体某一些方面的调优。【附:hbase各种慢现象可能的原因】小伙伴们看完了觉得好的话,请不吝赐教、不吝赐赞!...
2019-04-09 18:51:56
672
1
原创 大数据平台的元数据管理
【概念解释】1,大数据平台——是指服务于大数据计算或存储的平台,包括大数据的计算集群(hive、spark、flink、storm等等)和存储集群(如hadoop、hbase等等)。2,大数据平台涉及的元数据——由大数据作业的业务逻辑直接读写处理的业务数据,都不是元数据,除此之外的数据都是元数据。例如数据表的schema信息、任务之间的血缘关系、任务的权限映射关系、数据的业务属性、数据占用的磁...
2019-03-23 00:27:17
8506
原创 python中的all和any用法
有时候我们需要判断多个条件是否为True,以此做下一步的操作,那么此处的python内建函数all或者any就很有用。Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright", "credi
2019-02-20 15:27:50
2184
原创 案例分享:如何使用yarn中的容量调度器
容量调度器capacity scheduler有以下特性:1,FIFO Scheduler的局限性,多个用户需要共享集群资源,集群资源以队列为单位划分;2,可以控制每一个队列资源最低保障和最高限制,最高使用限制是防止某个队列占用过多空资源,导致其他队列资源紧张;3,可以针对用户设置每个用户最高资源使用限制,以防止该用户滥用或者频繁使用资源;4,每一个队列内部也是按照先进先出的原则调度资源;...
2018-12-05 15:38:34
1794
原创 HIVE开启严格模式后如何使用msck修复分区
HIVE如何开启严格模式:hive-site.xml中添加:<property> <name>hive.mapred.mode</name> <value>strict</value>&a
2018-10-23 17:10:23
647
原创 hive有关的MapReduce大作业的性能问题(mapper数过多)
Hive查询涉及的小文件过多对MR作业的危害:Hadoop2.X中的小文件是指文件size小于HDFS的块(block)大小(例如128M)的文件。一般来说MapTask(Map任务)每次处理一个块大小的input(默认使用FileInputFormat)。如果input到map任务的文件很小而且数量很多,那么每一个map task只是处理很小的input数据,会产生大量的map tasks,...
2018-10-11 20:06:54
4514
原创 Yarn调优之调整ResourceManager堆内存大小
ResourceManager挂了。查看到active的ResourceManager日志有如下内容:java.lang.OutOfMemoryError: Java heap space故障的原因是RM的堆内存空间size不够了。查看到活跃节点RM的最大对内存大小仍然是默认的1000Mb[hadoop@my-hdp-01 hadoop]$ ps aux | grep -i resourc...
2018-10-08 20:20:46
9853
3
原创 如何有效调整HiveServer2进程的JVM堆内存大小?
HiveServer2在以下简称HS2[hadoop@tony_hdp_01 bin]$ pwd${HIVE_HOME}/bin[hadoop@tony_hdp_01 bin]$ lltotal 40-rwxr-xr-x 1 hadoop hadoop 881 Nov 10 2017 beelinedrwxrwxr-x 3 hadoop hadoop 4096 Mar 6 20...
2018-09-27 15:40:31
10969
2
原创 解决yarn上的MapReduce作业失败问题container XXXX is running beyond physical memory limits
【问题】 今天突然发现有多个报表作业失败,涉及到查询有关报活的表。联想到最近几天有ETL同学的作业从老集群迁移到这个新集群上运行,推测可能是资源不够用导致的作业失败。 错误日志摘要:Container [pid=31300,containerID=container_e80_1535989582384_2041_01_000210] is running beyond physical m...
2018-09-04 18:05:38
2137
原创 跨集群hive批量建表
【需求】 在集群A建表,要同步在集群B建表、修复历史分区。表用到的数据源在云上。【注意】hive -f时涉及的HDFS操作权限问题 A集群有9个表要同步到B集群 [hive@bigdata-master-1 ~]$ vim tables_ToBeCreated_onOtherCluster# 9个表是:[hive@bigdata-master-1 ~]$ cat tables_To...
2018-08-31 21:24:49
1502
原创 如何将Hive仓库中的查询结果导出到本地文件
我在hive仓库中有个表,已经使用HQL跑出来结果,存到了hive中。表的schema如下show create table test_xiaoxiannv.dw_clickadvert_daily;CREATE EXTERNAL TABLE test_xiaoxiannv.dw_clickadvert_daily( id int, ip string, time str...
2018-08-06 11:35:57
4451
原创 Hive常用分区操作命令20180805
环境:hadoop-2.7 , hive 2.1// 在linux命令行为指定的表,以循环方式插入分区 for d in “4 5”; do hive -e “ALTER TABLE machine_logs.uniform_id ADD IF NOT EXISTS PARTITION (dt=’2018-08-0$d’)”;echo —— ; doneLogging initializ...
2018-08-05 17:14:16
1301
原创 yarn中MR作业报错Java heap space
提交到yarn框架计算的作业报错 //0,报错内容 我们hadoop-2.7集群用的执行引擎不是Tez,而是mr(是老集群) Error: Java heap space Container killed by the ApplicationMaster.//1,查找报错日志 [root@ my-hadoop-cluster hive]# grep -C 3 –color “log....
2018-08-05 15:57:34
3259
原创 解决Yarn页面的Unhealthy Nodes问题
查看到yarn监控页面上有十几个Unhealthy 节点,分别进去Unhealthy Nodes查看个目录的占用磁盘情况,发现是HDFS的有关目录占用过多了。(1) tmp_users=`hdfs dfs -ls /tmp/ | awk '{print $8}' | cut -d"/" -f3 | xargs `[root@w
2018-07-31 16:50:16
4706
原创 spark2.1 yarn cluster作业失败AnnotatedConnectException: Connection refused
作业提交脚本和spark作业相关的python代码 [root@tony-client-1-001 ~]# vim /mnt/tony/rec_model/model/data/f0.sh#!/usr/bin/env bashcurr_dir=`pwd`src_path=${curr_dir}spark_lib_path='/usr/hdp/2.5.0.0-1245/spark/li...
2018-06-12 20:14:30
3837
原创 shell脚本——如何获取函数的返回值
在shell脚本(以bash为例),既可以通过return关键字来返回函数的值,也可以通过echo关键字来返回函数的值。下面分开来讲一下如何捕获函数的返回值。 (1)函数中使用return返回函数值时,通过 echo $? 来捕获函数返回值。请看脚本 bash1.sh#!/bin/bashfunction func1(){ count=0 for cont in {1..3}; ...
2018-06-07 16:35:17
90258
11
原创 hbase集群负载均衡与高性能的关键——region分割与合并
第一部分、分割(split)split是切分、切割、分裂的意思,用来描述region的切分行为。【与region有关的存储结构介绍】 hbase中的Region是一张表的子集,也就是说把一张表在水平方向上切割成若干个region。一张表一开始的时候只有一个region(区域),随着数据量的增长,会自动(或手动)切分出来越来越多的region。HBase中针对表采用”Range分区”,把r...
2018-06-04 20:25:56
10079
1
原创 shell脚本中使用if和bc比较变量值和指定值
【需求场景】 我想要在整点时间运行某脚本,但是不想使用crontab。这里用到了bc来比较大小。 如果没有安装bc,需要以root用户使用yum install -y bc即可安装,安装后就能直接使用了。示例脚本如下。#!/bin/bashfunction run_job(){ yesterday=`date -d"1 days ago&am
2018-05-24 14:44:41
6469
原创 hive shell按照日期分区查询出错container rejected as it is allocated by a previous RM
【错误现象】错误日志摘要如下hive> SELECT COUNT(*) FROM user_emails WHERE DT='2018-05-04';Query ID = hive_20180521154838_e7c24767-8634-44e7-bad6-3a73ce13f768Total jobs = 1Launching Job 1 out of 1Status: Running (...
2018-05-21 16:09:14
1810
原创 如何在linux shell脚本中自动输入密码.
答案是需要通过expect 来实现。【注意】如果没有 expect ,需要预先安装[tony@pd2 ~]$ yum info expectLoaded plugins: fastestmirrorRepodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fastLoading mirror speed...
2018-05-15 18:04:26
44170
1
原创 python函数式编程示例
# 下面的例子是关于调用“从未在类中定义过的函数”>>> class X(object): def __init__(self, arg1, arg2): self.a1 = arg1 self.b1 = arg2 print "init"
2018-05-11 17:16:23
404
原创 python面向对象代码示例
以python2.7为例说明示例一,指定调用哪个对象的函数>>> class Foo(object): def func(self): print "foo's function"&
2018-05-11 15:27:00
1252
原创 kylin2.3作业将结果写入hbase时报错TableNotFoundException
执行kylin作业报错,这个作业是要把运行结果写入到hbase的表里的,但是再写入hbase过程中报错hbase中没有表 'kylin_metadata'。错误日志摘要——2018-05-07 20:28:46,137 WARN [main] util.HeapMemorySizeUtil:55 : hbase.regionserver.global.memstore.upperLimit is...
2018-05-09 20:08:42
4147
1
原创 hive中创建关联hbase表的几种方案
【运行环境】hive-1.2.1 hbase-1.1.2【需求背景】有时候我们需要把已存在Hbase中的用户画像数据导到hive里面查询,也就是通过hive就能查到hbase里的数据。但是我又不想使用sqoop或者DataX等工具倒来倒去。这时候可以在hive中创建关联表的方式来查询hbase中的数据。【创建关联表的几种方案】前提是:hbase中已经存在了一张表。既可以在hive中关联此表的...
2018-05-03 16:28:00
9616
原创 用python标准库difflib比较两份文件的异同
【需求背景】有时候我们要对比两份配置文件是不是一样,或者比较两个文本是否异样,可以使用linux命令行工具diff a_file b_file,但是输出的结果读起来不是很友好。这时候使用python的标准库difflib就能满足我们的需求。下面这个脚本使用了difflib和argparse,argparse用于解析我们给此脚本传入的两个参数(即两份待比较的文件),由difflib执行比较,...
2018-04-30 22:56:42
31617
8
原创 用happybase查询hbase时出现ThriftServer报错
【运行环境】java SE 1.8.0_101,hadoop-2.7.3,HBase-1.1.2,Zookeeper-3.4.6,python2.7,happybase1.1.0【作业报错信息】IOError: IOError(message='org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 6...
2018-04-26 11:33:27
3014
原创 几个案例说明python全局变量和局部变量
有同学还对python中的全局变量和局部变量分不清的,这里有一个案例来说明,可以看出,python2.x和3.x都是一样的结果代码块# Python 2.7.13测试结果>>> b = "outer">>&am
2018-04-22 18:39:12
583
原创 通过快照迁移hbase1.1.2的表数据(以clone_snapshot为例说明)
【为什么要用clone的方式复制出一张新表】有时候因为客户端的不当行为导致了丢失hbase表数据,如果全表恢复(restore_snapshot)则恢复之前必须禁用(disable)该表。但是我不想禁用该表,我想要这张表继续提供服务,怎么办?那么我们就采用克隆快照的方式生成另一张表即可。 【snapshot功能简介】使用hbase提供的快照(snapshot)功能,不需要停掉hba...
2018-04-13 22:02:03
2777
原创 Hbase在hdfs上的archive目录占用空间过大
hbase版本:1.1.2 hadoop版本:2.7.3Hbase在hdfs上的目录/apps/hbase/data/archive占用空间过大,导致不停地发出hdfs空间使用率告警。【问题】告警信息 alert: datanode_storage is triggered 告警信息表明某个或某些data node 的HDFS存储空间使用率已超过阈值(我们设置的是80%),需要清理。[hdf...
2018-04-13 21:36:34
8048
3
原创 python判断是否同一个对象、比较大小、三元运算符
print "\n~~~~~~~如何判断python对象的内容和对象的内存地址~~~~~~~~~"t1 = (1,2,3,4)t2 = (1,2,3,4)print id(t1); print id(t2)print t1 == t2 # == 判断内容是否相同print t1 is t2 # 使用is判断是否同一个对象(内存地址)print "=======比较大小======...
2018-04-11 15:43:09
2564
原创 在shell脚本中登录Mysql并执行SQL语句
有一个需求是,自动删除MYSQL中的过期数据,只保留最近一周的数据。在shell脚本中登录Mysql并执行SQL语句,示例代码如下:#!/bin/bashecho "0==}=========> CAUTION! Those records on or before $wanted_date will be removed!"echo &amp
2018-04-10 21:09:06
28883
7
原创 处理hive告警:Insufficient space for shared memory file
【问题描述】突然收到告警短信,大概说HIVE的元数据存储遇到问题# Ambari上的hive Alert正文摘要 File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 294, in _call raise Fail(err_msg)Fail: Execution of 'export...
2018-04-09 19:21:09
677
[案例]从冷备份的hdfs数据中恢复到原来的hbase表
2018-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人