自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

呼呼的小窝

笨鸟先飞

  • 博客(111)
  • 资源 (6)
  • 收藏
  • 关注

原创 Kylin精准去重实现原理

年前数据团队内部做的一场关于Kylin精准去重实现原理的分享;结合实现原理&最近1年的生产实践,把PPT在博客上分享一下

2021-01-31 17:50:02 527 2

原创 Kylin Cube构建步骤剖析&优化点

Kylin目前作为公司离线OLAP的核心组件,在线上稳定运行已经一年之久,在这之间遇见过各种问题:比如查询慢、cube构建不出来等等;遇到诸如此类的问题时候,通常需要对cube进行调优,而对于cube的各个构建步骤的理解是作为cube调优过程中的必备技能之一,本篇文章将从cube的构建步骤出发,结合原理来谈谈在各构建步骤的cube优化该如何抉择1.1 Create Intermediate Hive Table创建Hive的临时平表作为构建的第一步,Kylin从Hive中将源数据抽取出来并.

2020-11-22 14:40:54 632

原创 Flink DataStream使用

DataStreamDataSourcesSourceFunction简介Stream SourcesFile-basedSocket-basedCollectionbasedCustomSourceFunction基本使用SourceFunction& ParallelSourceFunction案例代码具体讲解RichParallelSourceFunction实现MySQLSourc...

2020-04-18 15:53:31 1206 1

原创 Flink基础知识梳理

Flink入门基础编程框架wordcount批处理版本wordcount流处理版本Flink基本APIExecutionEnvironmentLazy EvaluationSpecifying KeysSpecifying Transformation Functions使用lambda function自定义FunctionRich FunctionFunction体系结构基础编程框架不管是...

2020-04-05 01:18:08 514

原创 Spark Streaming与Kafka的整合

官网:http://spark.apache.org/docs/latest/streaming-kafka-integration.html从官网的介绍当中我们也可以发现,Spark Streaming有2种方式去接收kafka的数据:使用receiver去接收数据,同时使用的是kafka的high level api另外一种方式是没有使用receiver的,即direct方式,是从Sp...

2020-01-23 23:17:59 321

原创 Spark Streaming中transform算子使用详解

在实际生产中会有一种场景(最典型的就是黑名单的场景),就是需要DStream与RDD之间进行互相操作的,那么此时就需要我们借助transform算子来进行实现了官网介绍:http://spark.apache.org/docs/latest/streaming-programming-guide.html#transform-operation具体代码可见如下:/** * transfo...

2020-01-20 10:13:43 1524

原创 Spark Streaming结合redis实现state的功能

前言在前面的文章中有介绍SparkStreaming中的updateStateByKey算子,具体可见文章:park Streaming中状态算子的使用,但是使用updateStateByKey算子会存在一个问题,就是必须使用checkpoint,同时造成小文件扎堆的情况而在这篇文章中SparkStreaming中foreachRDD算子使用详解所提到的写入mysql的最佳实践中,细看也不难...

2020-01-01 19:44:30 890 1

原创 Spark Streaming中foreachRDD算子使用详解

前言foreachRDD算子会将DStream中的RDD里的数据给写到外部的系统中去;需要注意一点的是,这个函数将会被执行在driver进程当中,而从driver端到executor端必然会涉及到序列化的问题,在本篇文章中将进行详细介绍官网文档:http://spark.apache.org/docs/latest/streaming-programming-guide.html#design...

2019-12-29 15:50:31 1036

原创 Spark Streaming中状态算子的使用

流处理中状态的概念流处理中,有个状态(state)的概念:无状态的:当前批次处理完之后,数据只与当前批次有关有状态的:前后批次的数据处理完之后,之间是有关系的官网的介绍:http://spark.apache.org/docs/latest/streaming-programming-guide.html#updatestatebykey-operationupdateStateB...

2019-12-22 04:06:49 983 1

原创 Spring Boot基本使用

平台岗日常开发离不开Spring Boot,写篇文章记录Spring Boot入门的一些基本操作Spring Boot介绍Spring Boot和Sping MVC的关系Spring Boot是Spring MVC的升级版,两者没有必然的联系;在学习Spring Boot之前没有必要拥有Spring MVC的基础Spring Boot的特点化繁为简,简化配置最大的特点就是可以让...

2019-12-03 01:51:45 601

原创 HDFS Block损坏的解决方式与思考

背景&现象断电导致HDFS服务不正常,并显示块损坏恢复步骤检查HDFS系统文件健康$>hdfs fsck /注:通过web ui也可以进行查看检查是对应的哪些block发生了损坏$>hdfs fsck -list-corruptfileblocks出来的结果是损坏的block及对应的file所在的路径生产场景分析业务场景如下:MySQL ----同步数据--...

2019-09-09 01:03:46 1382

原创 设计模式系列(三)—— 建造者模式

定义与类型定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道类型:创建型建造者模式就是如何一步一步构建包含多个组件的对象;相同的构建过程可以创建出不同的产品,比较适用于流程固定但是顺序不一定固定的场景适用场景如果一个对象有非常复杂的内部结构(很多属性)想把复杂对象的创建和使用进行分离...

2019-08-18 17:27:22 262

原创 自定义实现ORMapping框架

自定义实现ORMapping框架的核心在于反射和注解的应用,关于这部分的内容可以参考文章:Java反射总结Java自定义注解的实现在本篇文章中主要实现save方法,关键在于以下几步:自定义注解的实现通过反射获取表名和字段名SQL拼接的实现DBUtils的开发具体代码如下annotation:/** * @Author: huhu * @Date: 2019-08-10 ...

2019-08-11 23:47:09 458

原创 Hive使用lateral view和explode处理嵌套json

最近有个需求,需要解析数仓中某张表的某个字段,该字段为Json,且为嵌套的多层Json,Json格式如下:由于是生产环境上的数据,因此对于某些value以xxx进行替代,并不影响sql的编写需求是需要提取出每个这种json中所有的brandName思路1:思路2:思路3:...

2019-07-31 19:55:44 3970

原创 Java自定义注解的实现

注解是Java开发中比较常用的一项技能,本篇文章将结合注解与反射这2块知识点进行讲解,为后续的自定义实现ORM框架做铺垫。关于Java反射的文章可以见本篇文章:Java反射注解的定义JDK5引入的新特性;在引入这个新特性之后,就被大量的框架所采用,在Spring中应用的及其广泛注解可以大大提升编码效率以及代码的精简比如:@Override @Deprecated @SuppressWar...

2019-07-21 18:58:42 388

原创 大数据集群资源监控(二)—— Hadoop相关指标获取

本篇文章接着上篇内容继续,地址:添IDC集群相关指标获取在获取了对应的IDC机器自身的指标之后,还需要对Hadoop集群中HDFS和YARN的指标进行采集,大体思路上可以有2种:第一种当然还是可以延用CM API去获取,因为CM中的tssql提供了非常丰富的各种指标监控第二种即通过jmxJ去获取数据,其实就是通过访问上述这些相关的URL,然后将得到的json进行解析,从而获取到我们需要的数...

2019-06-30 14:04:25 2610

原创 设计模式系列(二)—— 工厂方法&抽象工厂

工厂方法定义与类型定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类;工厂方法让类的实例化推迟到子类中进行类型:创建型在我们创建对象的过程中,往往会是一个非常复杂的过程,同时创建对象也有可能会导致大量重复的代码;而工厂模式通过单独的定义一个创建对象的方法来解决这个问题,由子类实现这个方法,从而来创建具体类型的对象适用场景创建对象需要大量重复的代码客户端(应用层...

2019-06-23 18:23:43 283

原创 设计模式系列(一)—— 简单工厂

原理定义与类型定义:由一个工厂对象决定创建出哪一种产品类的实例类型:创建型,但不属于23种设计模式注意:抽象工厂和工厂方法都是由简单工厂一步一步演进过来的适用场景工厂类负责创建的对象比较少客户端(应用层)只知道传入工厂类的参数对于如何创建对象(逻辑)不关心优点与缺点优点:只需要传入一个正确的参数,就可以获取你所需要的对象而无须知道其创建的细节工厂类中还可以有必要的...

2019-06-09 01:27:18 237

原创 Java反射总结

概述Java反射机制是在运行状态中在运行过程中,可以利用反射机制提供的技术为我们做一些事情,而这些事情对于框架来说是非常重要的对于任何一个类,都能知道该类的所有属性和方法前提是在运行状态下,利用反射机制提供的功能是可以知道获取到这些内容的对于任何一个对象,都能调用它的任意一个方法和属性Student s = new Student() 对象是new出来的,即s为对象,类为Studen...

2019-05-02 23:03:04 506

原创 大数据集群资源监控(一)—— IDC集群相关指标获取

背景:公司自建IDC机房,基于IDC机房构建大数据集群;需要对集群资源进行监控,集群采用的是CDH集群,采集主要分两块进行:HDFS和YARN相关的指标进行采集IDC机器自身的指标进行采集注意: 也许有人会有疑惑,CM界面已经提供了监控的图表,为什么还需要自己进行展示。原因在于,这些信息需要集成到内部的数据平台上面去,做成对应的数据报表,可视化的方式展示在自己的数据平台上[待更新… ...

2019-04-11 02:21:50 2173

转载 Hive调优技巧

本篇文章转载自:https://blog.csdn.net/Superman404/article/details/840747711.Fetch抓取set hive.fetch.task.conversion=more(默认)Fetch 抓取是指,Hive 中对某些情况的查询可以不必使用 MapReduce 计算。该属性设置为 more 以后,在全局查找、字段查找、limit 查找等都...

2019-04-07 22:54:32 236

原创 Kafka系列 —— 生产实践分享

Kafka系列文章:Kafka系列 —— 入门及应用场景 & 部署 & 简单测试Kafka系列 —— Kafka核心概念Kafka系列 —— Kafka常用命令Kafka系列 —— Kafka监控Kafka系列 —— Kafka消费语义分析&分区策略解读本篇文章中将结合生产的案例来简述Kafka的一些生产实践在实际生产中通常会使用Flume + Kafka...

2019-03-02 23:38:57 936

原创 Java多线程总结

文章目录线程的实现方式继承Thread类实现Runnable接口两种启动方式的比较Thread的JDK源码分析源码中Thread.java代码中的相关描述源码中关于start方法的相关描述Thread构造方法变量在线程中的使用成员变量局部变量线程的同步问题案例演示&问题提出&根源分析案例演示&问题提出问题根源解决方案:加锁方案概述方案一:同步方法(对对象加锁)方案二:同步代...

2019-02-16 03:04:07 479

原创 mac下编译Hadoop 2.8.1报错An Ant BuildException has occured: exec returned: 1,排错过程

编译hadoop 2.8.1,产生报错,报错信息如下:通过报错信息,我们去对应的路径下查看build-main.xml文件:<?xml version="1.0" encoding="UTF-8" ?><project name="maven-antrun-" default="main" ><target name="main

2019-02-07 00:32:23 7330

原创 Kafka系列 —— Kafka消费语义分析&分区策略解读

Kafka系列文章:Kafka系列 —— 入门及应用场景 & 部署 & 简单测试Kafka系列 —— Kafka核心概念Kafka系列 —— Kafka常用命令Kafka系列 —— Kafka监控Kafka消费语义分析通常架构:Flume --> Kafka --> Spark SrteamingFlume作为Kafka的生产者Spark Stre...

2019-01-27 22:58:28 1645

原创 Shell在大数据场景中的使用

shell脚本在任何场景中都比较常见,对于大数据中也是如此,本文将以metastore service为例,讲解如何在大数据场景中编写一个通用的metastore service的shell脚本hive metastore service通常来说Hive的使用方式有2种:直接启动hive启动hiveserver2,配合beeline一起使用关于metastore service的使用...

2019-01-14 00:20:29 1037

原创 Kafka系列 —— Kafka监控

Kafka系列文章:Kafka系列 —— 入门及应用场景 & 部署 & 简单测试Kafka系列 —— Kafka核心概念Kafka系列 —— Kafka常用命令常见Kafka监控工具介绍1 Kafka-web-console地址:https://github.com/claudemamo/kafka-web-console我们可以看到,对于该项目已经不再支持了,...

2018-12-23 01:46:41 2381

原创 Kafka系列 —— Kafka常用命令

Kafka系列文章:Kafka系列 —— 入门及应用场景 & 部署 & 简单测试Kafka系列 —— Kafka核心概念创建topicbin/kafka-topics.sh --create \--zookeeper 192.168.137.141:2181,192.168.137.142:2181,192.168.137.143:2181/kafka \--rep...

2018-12-08 20:59:54 1287

原创 Kafka系列 —— Kafka核心概念

Kafka系列文章:Kafka系列 —— 入门及应用场景 & 部署 & 简单测试topic & partition & replicationbin/kafka-topics.sh --create \--zookeeper 192.168.137.141:2181,192.168.137.142:2181,192.168.137.143:2181/ka...

2018-11-26 01:16:11 1150

原创 Kafka系列 —— 入门及应用场景 & 部署 & 简单测试

Kafka系列为自己学习与使用Kafka中遇到的问题与总结。本系列将介绍如下内容:Kafka入门及应用场景 & 部署 & 简单测试Kafka核心概念Kafka常用命令Kafka监控Kafka消费语义分析Flume + Kafka + SparkStreaming打造通用的流处理基础平台生产案例分享是一个长期更新的系列,希望自己能够坚持:)入门及应用场景...

2018-11-25 01:20:04 1506

原创 Livy简单使用 & 架构解读

Livy使用 —— 关于Session的操作官网案例:http://livy.incubator.apache.org/examples/REST API:http://livy.incubator.apache.org/docs/latest/rest-api.html通过REST API的方式去获取到session,返回活的交互式session打开Postman,在其上面进行操作:G...

2018-11-10 02:26:03 10872 5

原创 Livy安装&部署

官网http://livy.incubator.apache.org/get-started/Download[hadoop@hadoop001 software]$ wget http://mirrors.hust.edu.cn/apache/incubator/livy/0.5.0-incubating/livy-0.5.0-incubating-bin.zip[hadoop@hado...

2018-11-05 01:14:28 4022

原创 初识livy

背景介绍对于Spark有这样一个应用场景:Spark应用程序都是通过spark-submit进行提交的;而在工作当中,肯定是要将我们的spark-submit封装到shell里面去的,比如:今天凌晨去处理昨天的数据,肯定是需要获取到date,然后做 date - 1 操作(当前天数减1就是昨天了),之后配置crontab,把shell脚本配置上去,每天凌晨定时执行就行了,或者采用azkaban、...

2018-10-31 01:34:46 2209

原创 大数据开发工程师校招面经

一只菜鸟在校招面试过程中,大数据开发岗位的一些面经新华智云一面(30分钟)谈谈你对HDFS的了解Hadoop2.0做了哪些改动Spark与MR的区别在哪里知道除了Spark之外的大数据处理框架嘛Spark shuffle,说说StringBuilder与StringBuffer的区别HashMap与Hashtable的区别二叉树的数据结构是什么样的数据库索引的实现原理jv...

2018-10-19 18:17:15 7989 4

原创 synchronized关键字原理

不管是在校招还是社招中的面试,常会被问到volatile与synchronized的区别,在volatile关键字剖析文章中已经介绍了相关的原理,在本篇中将剖析synchronized关键字原理众所周知 synchronized 关键字是解决并发问题常用解决方案,有以下三种使用方式:同步普通方法,锁的是当前对象同步静态方法,锁的是当前 Class 对象同步块,锁的是 () 中的对象实...

2018-10-15 22:59:12 438

原创 volatile关键字剖析

volatile的语义一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:保证了不同线程对这个变量进行操作时的可见性即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的禁止进行指令重排序举例,线程1先执行,线程2后执行://线程1boolean stop = false;while(!stop){ doSomet...

2018-10-07 18:42:44 410

原创 Hive进阶(2)—— 存储格式

存储格式基本概念官网:https://cwiki.apache.org/confluence/display/Hive/FileFormats官网介绍:Hive supports several file formats:* Text File* SequenceFile* RCFile* Avro Files* ORC Files* Parquet* Custom INPU...

2018-09-27 22:55:28 3947

原创 Hive进阶(1)—— 压缩

压缩简介 & 为什么使用压缩 & 常用压缩技术压缩简介用户行为数据 GB TB … 越来越大数据量越来越大 ==> 面对问题:如何高效的处理 ==> 优化Hadoop生态系统 :对数据进行压缩处理使得提高我们的数据处理效率如何选择和使用压缩 就是一个至关重要的问题 摆在我们面前压缩工具:winrar、7-zip压缩:使用压缩技术来把数据“减少”的过...

2018-09-24 20:11:12 1378

原创 Java内存模型

计算机内存模型计算机在执行程序时,每条指令都是在CPU中执行的,而指令执行的过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题:由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢很多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,那么就会大大降低指令执行的速度因此在CPU里...

2018-09-22 01:07:07 385

原创 Spark内存管理(4)—— UnifiedMemoryManager分析

Spark内存管理系列文章: Spark内存管理(1)—— 静态内存管理 Spark内存管理(2)—— 统一内存管理 Spark内存管理(3)—— 统一内存管理设计理念acquireExecutionMemory方法关注UnifiedMemoryManager中的accquireExecutionMemory方法: 当前的任务尝试从executor中获取numBytes这...

2018-09-12 12:30:29 1336

CDH5.10.0离线安装部署文档

CDH 5.10.0 离线安装部署文档 使用了青云的3台云主机 安装的服务有HDFS、YARN 与 ZooKeeper

2017-10-05

CDH5.10.0离线安装

CDH5.10.0离线安装部署 使用了青云的三台云主机 安装的服务有:HDFS、YARN与ZooKeeper

2017-10-05

MapReduce Job集群提交过程源码跟踪及分析

MapReduce Job集群提交过程源码跟踪及分析

2017-08-26

MapReduce Job本地提交过程源码跟踪及分析

MapReduce Job本地提交过程源码跟踪及分析

2017-06-08

sequencefile&mapfile代码

sequencefile&mapfile相关测试代码

2017-05-01

hadoop2.7.3 自定义实现机架感知(Java版本)

博客Hadoop机架感知配置自主实现的jar包 http://blog.csdn.net/lemonZhaoTao/article/details/70991813

2017-04-30

空空如也

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

TA关注的人

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