自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 阿武的博客文档索引

1、Hadoop组件安装搭建CDH 阿里云 (Step 1: 启动hdfs)搭建CDH 阿里云 (Step 2: 启动yarn)搭建CDH 阿里云 (Step 3: 搭建Hive)Hive On Spark搭建(cdh)2、元数据HIVE 字段级血缘分析 写入Neo4j3、JOB计算管理Dr Elephant(HIVE JOB监控调优)安装使用获取YARN上执行时间最长的JOB列...

2019-10-24 21:48:13 373 3

原创 HIVE Map和Reduce数量 优化点

一、Map的数量是怎么计算A、在什么情况下 应该增加Map数量B、在什么情况下 应该减少Map数量二、Reduce的数量是怎么计算代码位置:org.apache.hadoop.hive.ql.exec.mr.MapRedTask函数:setNumberOfReducers、estimateNumberOfReducers影响参数:mapred.reduce.tasks (用户直接设...

2020-03-18 18:12:26 495

原创 HIVE - UDTF开发(指定分割符分割字符串,返回对应的大小写字符串)

一、实现展示hive> desc test_split_string;name stringhive> select * from test_split_string;John,SmithJohn,and,Ann WhiteTed,GreenDorothy,-- UDTF: split_stringhive> select ...

2020-03-17 21:08:11 557

原创 HIVE - UDAF开发(字符串中出现 指定字符的次数,再求次数的平均数)

一、实现展示hive> desc test_avg_str_in_str;user_id intname stringvalue inthive> select * from test_avg_str_in_str;1 awuz 11 azhaoz 12 zhangsan 22 ...

2020-03-17 00:05:54 3362 1

原创 数仓ETL代码优化 - 表字段 被过滤和聚合的次数

优化案例假设以下代码,在不同的调度任务中重复出现。那么是否可以抽出公共代码,减少资源使用。-- 是否可以将埋点里 搜索相关的 整合成一张表select *from app_event_trackingwhere op_type = '搜索'-- 是否可以将每日的用户下单情况 整合成公共层表select user_id, ...from order_itemwhere cre...

2020-03-12 17:41:10 275 1

原创 数仓ETL代码优化 - 找到经常在一起做JOIN的表

效果如图经常在一起做关联的表,可以更加的高内聚、低耦合,专表专用。建立中间层,让代码冗余变少,提高调度效率、减少资源使用。参考代码 Code...

2020-03-11 22:58:46 351

原创 ID-Mapping Hive Sql 初始化

背景例:A、B、C 设备属于同一个用户,C、D 属于同一个用户,D、E 属于同一个用户。则可以将 A、B、C、D、E 当作同一个用户。1、数据初始化create table test_id_mapping ( id_list array<String> comment "设备ID");insert overwrite table test_id_mapping...

2020-03-05 00:55:52 699

原创 数据资产管理-简单总结

数据资产 是什么通过对数据打上业务标签、计算成本收益、对应用层数据通过血缘技术,解决资产分析、治理、应用的痛点问题。数据资产 怎么做资产分析:通过对数据的业务属性 打上业务标签,生成资产地图,清晰方便了解哪些是核心数据,数据的使用场景和业务价值。资产治理:获取 数据存储和计算成本,对业务的收益价值。计算数据的ROI(成本收益比)。通过数据的被使用情况、业务价值、ROI, 对数据进...

2020-02-24 19:55:36 3960

原创 数据仓库-元数据简单总结

元数据 是什么数据的数据。对使用者提供解释说明,方便快速找到想要的数据。对开发者提供开发模型指导,提供优化方向,监控异常质量。元数据主要分为两大类:技术、业务一、技术元数据1、表的基本信息、存储信息2、计算资源3、调度信息4、数据质量5、血缘关系二、业务元数据1、维度建模(维表、业务过程、指标)2、应用层(报表、数据产品)元数据 怎么做1、收集HIV...

2020-02-23 16:11:09 812

原创 HBase二级索引 简易理解

一、解决的问题1、RowKey 例子RowKey: date__hive_table (存储着 每一天Hive表的元数据)以下需求 查询效率高1、最新一天的 hive_table 对应的元数据2、最新一天的 所有元数据2、新的需求(查询效率低)查询 hive_table 某一段时间的元数据详情3、总结由于RowKey索引单一,二级索引用来 `解决多维度的查询困难`二、对于...

2020-02-19 01:58:26 347

原创 Hive Sql - Multi Distinct(多个distinct在同一个query中) 优化

背景当多个 distinct 操作同时出现在 select 中,数据会分发多次。容易造成Reduce数据倾斜优化点1、如果不要求精确值,可以使用 spark-sql approx_count_distinct函数 (基数计数 hyperloglog)2、修改SQL基数数据如下, 需要计算 不同渠道下的 不同周期 的访问uvcreate table if not exists tmp.m...

2020-02-18 01:45:04 1861

原创 MapReduce 二次排序总结

需求1、输入数据:keyA 1keyB 3keyB 77keyB 54keyA 2keyC 22keyC 221keyC 202、目标输出keyA 1,2keyB 3,54,77keyC 20,22,221解决思路STEP 1. 改装Map结构,组合成一个新的Key值MR框架不管是 默认排序 或者是 自定义排序 都只是对Key值进行排序,但我们可以将原始数据的K...

2020-02-15 18:18:48 301

原创 bitmap和布隆过滤器简单总结

一、BitMap解决的问题:大数据量下的排序、查找、去重。1、关键通过 bit位 表示一个数值的状态(是否存在),那么1MB能大约表示 800万数值 (1,000,000B * 8 bit )2、局限性:1、内存限制:10位的数值(即99亿), 占用 1.25GB内存2、一般应用在数值类型。字符串映射到 BitMap 存在Hash碰撞的问题(引入bloom filter)3、不适合数...

2020-02-15 15:24:36 412

原创 数据仓库是什么,如何建立(总结)

一、是什么官方解释:面向主题的、集成的、相对稳定、反应历史变化,用于企业的管理决策分析。开发者角度:通过接入各种数据源,打破数据壁垒,根据业务方的需求,设计方便使用和准确的数据模型,高效将结果输出给业务方。业务方角度:能快速准确提供数据,给公司的日常运营和领导决策提供数据支持和指导。二、如何建立1、分析业务需求、确认仓库主题2、确定总线矩阵3、设计分层架构4、规范约束5、维度...

2020-01-28 16:42:56 1446 2

原创 HIVE元数据使用场景落地(python版本)

一、背景参考数仓-HIVE元数据收集指标二、使用场景举例1、调度元数据通知-关键任务完成时间异常-关键任务没按时完成2、存储元数据占用HDFS空间TOP表HDFS文件数 新增TOP表3、计算元数据数据倾斜任务列表大任务TOP列表三、CODE DEMOHIVE元数据搜集代码:HIVE元数据搜集(python版本)HIVE元数据落地代码...

2020-01-28 12:11:55 357

原创 HIVE元数据收集(python版本)

已有工具1、ZEUS (调度平台)2、Dr-Elephant (任务的性能监控和调优的工具)3、Apache Griffin (数据质量工具)最终落地Hbase表结构row_key: action_id__hive_table(调度元数据)列族: scheduler列: 调度名、开始时间、结束时间、action_id、所属用户(计算资源元数据)列族: computing...

2020-01-26 00:30:13 810 1

原创 Hive Sql 迁移到 Spark Sql 问题集合

问题集合1、ES外部表格式不同hivespark sql2、元数据更新 refreshtableREFRESH TABLE table_name3、Caused by: java.lang.NoClassDefFoundError: jodd/datetime/JDateTime4、Error in query: nondeterministic expressions are o...

2019-12-16 23:52:00 1998

原创 跑满YARN资源-优化方向

背景: YARN资源使用情况如图从内存使用占比、Pending数量 可以看到 YARN的资源使用情况是很紧张的。优化方向1、JOB的执行引擎 MR -> Spark Sql2、监控YARN资源在队列和整体使用情况:A、将不同类型的JOB 调整到不同队列中。B、调整队列的资源分配比例,抢占比例。C、调整JOB的开始执行时间,错开YARN资源使用高峰执行。3、JOB优...

2019-12-14 20:12:25 713

原创 元数据-血缘分析-应用场景总结

1、异常定位假设有指标异常,想知道是什么造成的。通过 血缘分析配合数据质量,了解底层数据的波动情况,方便定位原因。2、提升调度性能通过收集 调度任务的开始结束时间,了解 关键任务 ETL链路的时间瓶颈,再根据JOB任务的执行情况,定位到性能瓶颈通过调整 任务的优先级,保证任务的资源提供, 提升整条ETL链路的执行效率。3、调度SQL优化通过检查字段的使用频率,指标是否有重复计算、资...

2019-12-12 13:58:13 3551 1

原创 数仓-HIVE元数据收集指标

通过对HIVE表进行打标签,构建基础元数据表1、存储2、应用场景3、数据质量4、重要等级5、调度任务6、计算资源7、被使用情况1、存储HIVE表是否分区、量级(可定阈值 设定等级)优化集群存储资源时、快速找到大表。方便监控表的量级变化情况2、应用场景从应用层入手(画像、广告、财务等),通过血缘链路,给涉及到的HIVE表,打上应用场景的标签清楚知道 表是能应用在什么场景...

2019-12-02 11:54:24 839

原创 通过 Dr-Elephant 监控异常HIVE任务并报警

Dr-Elephant收集到的YARN JOB信息后,存入对应的mysql表(yarn_app_result、yarn_app_heuristic_result、yarn_app_heuristic_result_details)yarn_app_result (job是否有异常)yarn_app_heuristic_result (job的异常指标)yarn_app_heuristic...

2019-11-28 14:59:40 443

原创 Dr-Elephant 丢失部分 YARN JOB

背景job_1574701645518_0469 在MR HISTORY里是存在但是在 dr-elephant 搜索不到通过查看dr-elephant日志在2019/11/25 目录下查找该任务,实际上该任务在 2019/11/26 目录通过找资料,确认是时区问题https://github.com/linkedin/dr-elephant/issues/360需要修改 ./...

2019-11-26 22:37:30 182

原创 YARN-Container申请和分配

AM在NM上成功启动并向RM注册后,向RM请求资源(Container)到获取资源的整个过程,以及RM内部涉及的主要工作流程。整个过程可看做以下两个阶段的迭代循环阶段1:AM汇报资源需求 并领取已分配资源。阶段2:NM向RM汇报各个Container的运行状态,如果RM发现它上面有空闲的资源,则进行一次资源分配,并将分配的资源保存到对应的数据结构中,等待下一次AM发送心跳信息时获取。阶段...

2019-11-21 11:51:30 1844

原创 YARN-ApplicationMaster启动流程

流程图代码流程1、客户端提交Application// ClientRMService.javapublic SubmitApplicationResponse submitApplication( SubmitApplicationRequest request) throws YarnException { try { // call RMAppMana...

2019-11-17 22:37:42 1057

原创 hive -f 文件内容里的注释引发小Bug

问题记录run.hql 文件内容如下-- line1 -- line2在执行 hive -f run.hql 时会报错,原因是第二行没有作为注释 被过滤掉,当正常代码执行查看Hive源码https://github.com/apache/hive/blob/master/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.javap...

2019-10-31 14:07:11 499

原创 Griffin编译失败,kafka-schema-registry-client-3.2.0.jar下载地址

Griffin 编译报错如下Failed to execute goal on project service: Could not resolve dependencies for project org.apache.griffin:service:jar:0.4.0: Failed to collect dependencies at io.confluent:kafka-schema-r...

2019-10-28 00:47:37 1705 2

原创 HDFS文件压缩工具,支持各种压缩格式

工具文档https://github.com/mullerhai/HsunTzu/blob/master/README.md核心方法调用将textfile文件类型 压缩成 gz文件类型hadoop jar /data/soft/HsunTzu/HsunTzuPro-beat-2.0.jar "${COMPRESS_HDFS_PATH}" "/" "1" "/data/soft/HsunTz...

2019-10-25 16:00:17 365

原创 数据仓库解决问题和分层设计好处

数据仓库解决什么问题1、将各种数据源整合到一起统一数据中心,解决数据壁垒。 <仓库的集成性特点>2、脏数据清洗,简化业务复杂结构数据。3、规范表、字段名称,统一字段数据格式,完善注释内容。4、保留历史变更数据,提供对细节变化分析支持。5、生产适合OLAP的大宽表,方便用户多维度快速分析。 <仓库的主题性特点>6、数据质量的保证和指标口径的一致性分层设计的优...

2019-10-24 23:45:13 1629

原创 Dr Elephant(HIVE JOB监控调优)安装使用

一、简单介绍Dr.elephant是一款对Hadoop和Spark任务进行性能监控和调优的工具官方介绍:https://github.com/linkedin/dr-elephant/wikigithub地址:https://github.com/linkedin/dr-elephant安装文档:https://github.com/linkedin/dr-elephant/wiki/Q...

2019-10-24 21:07:51 642 1

原创 YARN队列资源、NameNode等数据指标监控

整体流程1、通过各组件的JMX接口,获取待监控的数据指标2、将数据指标写入OpenTSDB3、Grafana接入OpenTSDB数据源,配置展示页面展示页面如下通过各组件的JMX接口,获取待监控的数据指标NameNode: http://localhost:50070/jmxYarn: http://localhost:8088/jmx..代码Demomonitor-...

2019-10-24 20:40:34 2381

原创 一致性事实表 设计思路

2019-07-22 20:10:31 753

原创 一致性维度表 设计思路

1、设计目标尽可能生成丰富维度属性尽可能多给出有意义文字性描述 (xxx_id + xxx_name)沉淀出通用的维度属性 (需要复杂运算得到,比如商品的三级分类名称,需要JOIN品类表得到 category3 name)2、维度设计步骤确定主维度表 (例如商品主表)确定相关维表(商品相关的类目、卖家、店铺相关维表)确定维度属性的整合和拆分 (详细如下)3、维度属性的整合...

2019-07-22 20:08:18 2388

原创 三、Hera调度系统 待执行队列 入队和出队时机

简单介绍有一个队列(MasterContext.scheduleQueue)生产者:定时时间到、或者依赖任务都执行完,往队列里添加待执行的任务消费者:worker 定时去扫描队列里 是否有任务 需要执行一、定时任务如何往队列里 添加任务1、在Hera启动初始化时1、发送一条初始化的事件 Events.InitializeexecuteJobPool.execute(() -> ...

2019-07-22 15:12:25 359

原创 二、Hera调度系统初始化、生成和清理版本

先了解Hera代码里一些基本数据结构Event事件、不同任务类型的Listener、Dispatcher一、初始化 Listener、Dispatcher.jobHandlers// Master.javapublic void init(MasterContext masterContext) { ... executeJobPool.execute(() -&...

2019-07-22 11:16:51 357

原创 一、Hera调度系统基本数据结构(Event、Listener、Dispatcher)

简单介绍参照文章 zeus源码剖析之事件处理机制了解Hera也是使用着 观察者模式 进行对事件处理。其中老鹰是 Event事件,母鸡是 不同任务类型的Listener, 小鸡是 Dispatcher.jobHandlers一、Event事件有Job的失败事件、漏跑事件、成功事件,更新事件等二、不同任务类型的ListenerHearAddJobListener处理HeraJob...

2019-07-22 00:20:54 453

原创 YARN假死处理(JOB超过10000个)

背景YARN有资源,但有很多JOB处于PENDING状态,获取不到资源。这时查看 resourcemanager log日志,发现有大量的以下信息。resourcemanager.RMAppManager (RMAppManager.java:checkAppNumCompletedLimit(267)) - Application should be expired, max number...

2019-07-06 14:00:57 3164

原创 zeus调度工具启动慢(zeus_action数据量太大)

记一次由于zeus服务停止后,启动花了半小时时间。MasterContext 初始化// MasterContext.javapublic void init(int port){ log.info("init begin"); ... master=new Master(this);}Master 初始化费时间的部分 GroupManagerTool.buildGlobeG...

2019-07-03 22:43:09 389

原创 HIVE SQL数据倾斜情况以及解决办法

如何查看历史所有数据倾斜的任务参考之前的博客 获取YARN上执行时间最长的JOB列表,并查看是否存在数据倾斜1. JOIN 数据倾斜1.1 空值问题select t1.idfrom table_a t1left join table_b t2on t1.id = t2.id如果 t1.id 存在过多的NULL值,那么可能会造成数据倾斜解决办法如下 (将NULL赋 随机值)...

2019-06-30 23:38:59 4152

原创 获取YARN上执行时间最长的JOB列表,并查看是否存在数据倾斜

处理思路1、通过 HistoryServerRestApi 获取YARN JOB的基本信息 (包括JOB的 ID和名称,开始时间和结束时间)http://<history server http address:port>/ws/v1/history/mapreduce/jobs?startedTimeBegin=%s&startedTimeEnd=%s2、对 执行时间...

2019-06-29 15:46:29 3418

原创 HIVE表 占用HDFS空间 TOP表查询

思路1、通过Hive元数据,获取到表和HDFS的对应关系2、通过 pyhdfs工具类的get_content_summary方法 快速获取到占用HDFS大小代码如下# requirements.txtMySQL-python==1.2.5PyHDFS==0.2.1torndb==0.3#coding:utf-8import pyhdfsimport torndbhive_...

2019-06-29 12:36:06 1042

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除