csdn问鼎

大数据初学者
私信 关注
wending-Y
码龄6年
  • 845,623
    被访问量
  • 291
    原创文章
  • 5,997
    作者排名
  • 325
    粉丝数量
  • 于 2014-10-20 加入CSDN
获得成就
  • 博客专家认证
  • 获得562次点赞
  • 内容获得112次评论
  • 获得1,967次收藏
荣誉勋章
兴趣领域
  • #大数据
    #spark#数据仓库#ETL#hadoop#hive
TA的专栏
  • Spring
    5篇
  • Flink 入门到实践
    23篇
  • RPC
    3篇
  • GO
    3篇
  • Git
    1篇
  • YARN
    1篇
  • Storm实战开发
    3篇
  • java
    24篇
  • java-web
    14篇
  • 数据结构
    6篇
  • 设计模式
    12篇
  • eclipse
    9篇
  • mysql
    23篇
  • linux
    11篇
  • Python
    14篇
  • 前端
    18篇
  • hadoop
    18篇
  • maven
    4篇
  • 算法笔试题
    15篇
  • SSH框架
    4篇
  • zookeeper
    5篇
  • storm
    5篇
  • 电脑闲谈
    5篇
  • spark
    9篇
  • hive
    16篇
  • hbase
    7篇
  • 知识库
    5篇
  • kafka
    10篇
  • 多线程
    7篇
  • flume
    3篇
  • bug
    1篇
  • sqoop2
    2篇
  • redis
    3篇
  • idea
    2篇
  • jvm
    10篇
  • 高性能服务器
    2篇
  • dubbo
    1篇
  • impala
    2篇
  • kylin
    5篇
  • 数据仓库
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

spring 自定义注解,动态注入Bean

文章目录背景ImportBeanDefinitionRegistrar1.定义注解2.启动注解3.实现接口4.扫描器5.使用Bean6.使用注解7.启动类总结背景@Configuration 注解的类会被spring自动的扫描注入为Bean,如果想自己定义一个注解实现相同的功能如何来实现ImportBeanDefinitionRegistrar熟悉spring源码的同学应该知道,注册bean实际上就是注册beandefinition这个类刚好有接口可以实现default void regis
原创
27阅读
0评论
0点赞
发布博客于 6 天前

设计模式-8-责任链模式

文章目录责任链模式示例总结责任链模式对处理数据进行链式处理示例接口public interface Dispatch { public void check(int amount); public void setNextDispatch(Dispatch dispatch);}三个实现类public class Cost50Dispatch implements Dispatch { private Dispatch dispatch; @Ove
原创
14阅读
0评论
0点赞
发布博客于 23 天前

BeanPostProcessor 和 BeanFactoryPostProcessor

BeanFactoryPostProcessor对读取到的所有bean可以进行修改,在这之前已经拿到了所有的Bean定义,不管是xml还是注解@Componentpublic class BeanFactoryPostProcessorImp implements BeanFactoryPostProcessor { @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFact
原创
57阅读
0评论
0点赞
发布博客于 3 月前

java 中Class理解

导读加载a这个类的时候,在内存中会生成一个a的Class对象然后根据这个对象生成一个a的实例对象public class a { int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { ret
原创
68阅读
0评论
0点赞
发布博客于 3 月前

hadoop map reduce过程分析

流程图借了高手的流程图map 函数开始 protected class MapTaskRunnable extends RunnableWithThrowable { public void run() { try { TaskAttemptID mapId = new TaskAttemptID(new TaskID( jobId, TaskType.MAP, taskId), 0); LOG.inf
原创
83阅读
0评论
0点赞
发布博客于 3 月前

hadoop map个数

map个数今天来看下map个数的源码测试环境测试让读两个文件从日志来看是2个map22:11:32,649 DEBUG LocalJobRunner:397 - Map tasks to process: 2生成切片信息public List<InputSplit> getSplits(JobContext job) throws IOException { StopWatch sw = new StopWatch().start(); long minSize =
原创
46阅读
0评论
0点赞
发布博客于 3 月前

Hive 数据倾斜&hive.optimize.skewjoin

数据倾斜原因通常发生在join过程中,两个表都较大,不能支持map join,其中一个表中数据量某一类值特别多,分配到该值的reducer,耗时较长模拟数据Fact 表,列code_id,code_od=100的值,占98W行,其它占2W行Dimension 维度表, 列code_id,10W行Join查询select *from FACT f left join DIMENSION d on f.CODE_ID = d.CODE_ID优化方案1sql1select *
原创
598阅读
0评论
0点赞
发布博客于 5 月前

B+树和B树的比较

B树图B+树图B树与B+树比较B树B+树key不能重复key允许重复数据可能存在叶子结点,也可能中间结点数据只能存在叶子结点查找数据时,数据可能存在叶子结点,也可能中间结点,速度不稳定数据只能存在叶子结点 ,查询找,稳定删除节点耗时长删除节点快节点没有连在一起节点连在一起的...
原创
69阅读
0评论
0点赞
发布博客于 5 月前

mysql 复合索引

复合索引复合索引就是指定多个例CREATE TABLE table_name ( c1 data_type PRIMARY KEY, c2 data_type, c3 data_type, c4 data_type, INDEX index_name (c2,c3,c4));有效的组合(c2)(c2,c3)(c2,c3,c4)示例SQL例子1SELECT *FROM table_nameWHERE c2 = v2
原创
73阅读
0评论
0点赞
发布博客于 5 月前

Mysql Explain

Explainexplain 输出sql的执行计划展示信息示例字段信息select_type查询类型simplesubquery&&primaryprimary&union&derivedselect age from lsy where age=24 生成的是派生表join查询类型systemconst最多只有一行,利用主键或者 唯一索引匹配常量eq_ref&&rangelsy.id>=1这里主键使用了范围查询
原创
56阅读
0评论
0点赞
发布博客于 5 月前

动态代理JDK,CGLB,JavaSsit,ASM比较

原创
62阅读
0评论
0点赞
发布博客于 6 月前

Hbase 常见问题

Master 在hbase中的角色分配region给region server,和regionserver的负载均衡zookeeper在hbase中的角色存储配置信息,分布式同步,负责客户端和region server交流hregionserver在hbase中的角色响应数据读写,管理regionhbase cataglog tablesMeta表,里面包含所以region和他们的位置信息Hhbase write/write读路径-memstore(写缓存)—>blockcache(
原创
93阅读
0评论
0点赞
发布博客于 7 月前

hbase 查看region start key&&end key

region 的start key&& end key可以得到region的位置,start key ,end key有利于更加深入的理解hbasepublic static void main(String[] args) { Configuration conf = new Configuration(); conf.set("hbase.zookeeper.quorum", "centos-6"); Connection conn =
原创
359阅读
0评论
1点赞
发布博客于 7 月前

Spark 面试题

总结问题答案spark stage 化分宽依赖 ,如reducebykey groupbykeygroupbykey和reducebykey的区别reducebykey提前做一次合并spark streaming 消费数据不丢https://www.cnblogs.com/evakang/p/11043543.htmlspark OOM1.driver 端 collect算子 2.exector 内存不够spark 数据倾斜问题https://mp.w
原创
162阅读
0评论
0点赞
发布博客于 7 月前

Spark Transformations/Action 算子

Transformations 算子算子介绍map一对一转换算子filter过滤算子flatMap一生成多转换算子,返回数组mapPartitions每次处理一个分区的数据,效率高sample抽样算子union合并算子/可重intersection合并算子/无重distinct去重算子groupByKey聚合操作reduceByKey聚合操作/提前做合并sortByKey按Key排序joinrdd
原创
69阅读
0评论
0点赞
发布博客于 7 月前

Spark 常见问题

Spark中foreachRDD、foreachPartition和foreachforeachRDD 方法主要把数据发送到外部系统foreachRDD 遍历DStreamforeachPartition 遍历RDD里的分区foreach 遍历分区里的每条记录Spark中foreachRDD误区 connection 在driver上创建dstream.foreachRDD { rdd => val connection = createNewConnection() // exe
原创
130阅读
0评论
0点赞
发布博客于 7 月前

Spark Sql Join 全解

JOIN类型inner 默认连接,连接左右都匹配上的cross 笛卡尓积outer, full, full_outer 左右的结果全部列出,没匹配上的NULL代替left, left_outer 左边的全要,没匹配上的NULL代替right, right_outer 右边的全要,没匹配上的NULL代替left_semi 键在右边出现,只包括左边的,就是inner去掉右边行left_anti 键在右边出现没有出现,只保留左侧的参考代码import org.apache.spark.sql
原创
164阅读
0评论
0点赞
发布博客于 7 月前

Kudu Vs Hbase Vs Hadoop

Kudu Vs Hbase Vs HadoopHadoop在离线批量环境下分析能力最强,在随机查询条件下表现最差,适合N+1这种场景Kudu 大数据量下实时分析能力强,在随机查询下拥有较低的延迟,适合实时写,实时分析的场景hbase 随机读写能力最强,批量分析能力最差,不适合分析场景...
原创
187阅读
0评论
0点赞
发布博客于 8 月前

一图理解 Hbase Bloom Filter 的使用

结论Bloot Filter能在大数据量的情况下判断元素在集合中是否存在如果过滤器判断不存在则一定不在集合中如果判断在,则有一定的误差,实际可能不在集合中场景hbase 在查询的时候通过Filter就可以高效的判断数据是否在block之中,提高查询效率图解...
原创
172阅读
0评论
1点赞
发布博客于 8 月前

Flink State实战,写入查询

Statestate是实现flink一次性语义的核心,在1.9之后增加了API来读取state写Stateimport org.apache.flink.api.common.state.ListState;import org.apache.flink.api.common.state.ListStateDescriptor;import org.apache.flink.api.common.typeinfo.Types;import org.apache.flink.api.java.Da
原创
152阅读
0评论
0点赞
发布博客于 8 月前

Kafka 一次性语义实现

幂等生产者会分配 生产者ID,序列号pid,seqbroker 维护<Pid,分区> 的序列号新序列号=老序列号+1 接受新序列号<老序列号+1 丢弃,证明数据重复了新序列号>老序列号+1 抛出乱序异常,证明中间的数据丢失了只能处理单个topic,单分区的,消息不重复事务保证了原子性,所有的消息要么全部成功,要么全部失败生产者配置//幂等producerProps.put("enable.idempotence", "true");//事务IDprodu
原创
152阅读
0评论
0点赞
发布博客于 8 月前

Netty 线程模型

单线程模型所有的操作都是一个NIO线程上实现通过Accepetor接收客户端连接连接完成后通过Dispatcher把消息分发到handler上进行处理缺点一个Nio线程在高并发场景下,性能不无法支撑多线程模型一个线程负责接收TCP连接IO读写由单独的线程池来处理一个NIO线程同时处理N条链路一个链接对应一个NIO线程主从Reactor线程模型负责TCP连接的是一个Acceptor线程池Acceptor线程池仅仅负责认证认证成功后,将channel注册到后端的IO线程池,交给
原创
94阅读
0评论
0点赞
发布博客于 8 月前

Java 零拷贝

正常拷贝Kafka 消费者消费数据,从文件中读数据流程产生4次上下文切换,4次数据复制使用零拷贝2次上下文,3次复制Java示例程序public class Copy { public static void main(String[] args) { File file = new File("/xx/te.txt"); try (FileInputStream fileOutputStream = new FileInputStream(fil
原创
140阅读
0评论
0点赞
发布博客于 8 月前

Kafka Log结构

TopicPartitionLog每个partition对应Loglog和index对应关系为稀疏索引
原创
91阅读
0评论
0点赞
发布博客于 8 月前

Flink源码-11-Source实现

Source从源码中学习例子Kafka实现类结构RMQ实现从上面两个实现来看,主要实现了以下接口SourceFunction source接口RichFunction 取到上下文的一些信息CheckpointedFunction 完成checkpoint功能CheckpointListener checkpoint监听器自定义Source实现这上面的几个接口public class TestSourceFuncitonn implements SourceFunction
原创
112阅读
0评论
0点赞
发布博客于 8 月前

Flink源码-10-CheckPoint实现

CheckPointCheckPoint 是实现一次性语义的核心,接下来我们看一下如何实现CheckpointCoordinatorcheckpoint协调器单线程,固定周期去触发checkpointprivate ScheduledFuture<?> scheduleTriggerWithDelay(long initDelay) { return timer.scheduleAtFixedRate( new ScheduledTrigger(), in
原创
119阅读
0评论
0点赞
发布博客于 8 月前

Flink源码-9-Flink sql翻译Job及优化

翻译过程参考文档sqlparservalidate优化器规则优化codegenSQLAST抽象语法树表示用SqlNode逻辑树RelNode逻辑树RelNode物理执行计划Flink算子示例SQLSELECT *FROM ( ( SELECT * FROM OrderA WHERE user < 3 ) UNION ALL ( SELECT * FROM OrderB WHERE prod
原创
120阅读
0评论
0点赞
发布博客于 8 月前

Flink源码-8-JobVertex生成JobGraph

JobGraph通常是由DataStream生成的,然后转换生成的JobGraph我们可以直接JobVertex--------->JobGraph 来深入理解这个过程JobVertex //生成一个顶点 final JobVertex sender = new JobVertex("Sender"); sender.setParallelism(parallelism); //设置反射类 sender.setInvokableClass(TestingAbstra
原创
182阅读
0评论
0点赞
发布博客于 8 月前

Flink源码-7-Scheduler

代码示例public class WorldCount { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //所以算子的并行度为1 //方便调试 env.setParallelism(1)
原创
112阅读
0评论
0点赞
发布博客于 8 月前

Protoc序列化例子

protoc是一个灵活,高效,结构化折数据序列化框架,支持数据结构化一次,到处使用。前置工作安装protoc ,mac比较方便,直接命令braw命令行查看版本号下载版本号对应的jar包proto文件syntax = "proto2";package protoc;option java_package = "com.protoc";option java_outer_classname = "book";message Person { required string n
原创
108阅读
0评论
0点赞
发布博客于 8 月前

ORC与Parquet文件对比

总结如下
原创
320阅读
0评论
0点赞
发布博客于 8 月前

GO 反射

反射反射的概念在Java中也存在,无非就是程序动态得到字段,字段值下面是GO语言的实现import ( "fmt" "reflect")func main() { type T struct { A int B string } t := T{23, "skidoo"} //反射 s := reflect.ValueOf(&t).Elem() typeOfT := s.Type() for i := 0; i < s.NumField(); i++ {
原创
63阅读
0评论
0点赞
发布博客于 9 月前

GO chan

管道Go语言提倡使用通信的方法代替共享内存代码import "fmt"func sum(s []int, c chan int) { sum := 0 for _, v := range s { sum += v } //计算得到的数组的值,把值发送到管道 c <- sum // send sum to c}func main() { s := []int{7, 2, 8, -9, 4, 0} //定义一个整形管道 c := make(chan int) go
原创
153阅读
0评论
0点赞
发布博客于 9 月前

GO 实现 interface

接口实现go语言中的接口实现是一种隐式实现import "fmt"type Say interface { sayhello() saybye()}func (t people) sayhello() { fmt.Println("hello")}// people这个struct 实现Say接口的 saybye方法 func (t people) saybye() { fmt.Println("bye")}type people struct { age int
原创
99阅读
0评论
0点赞
发布博客于 9 月前

Kylin build 源码解析

前言Kylin build过程是Kylin中的核心机制,理解build过程,有助于作业的优化,问题排查,理解Kylin的思想示例数据事实表+维度表核心代码BatchCubingJobBuilder2 类 public CubingJob build() { logger.info("MR_V2 new job to BUILD segment {}", seg); final CubingJob result = CubingJob.createBuildJo
原创
155阅读
0评论
0点赞
发布博客于 9 月前

Spring AOP 源码解读

应用场景公共模块抽象出来,简单的AOP功能编织到模块中核心技术实现动态代理,相关的拦截器都配置到了动态对象里JDK 动态代理只能代理实现接口的类invoke里封装了aop的实现CGLIB 字节码增强技术可以直接代理类对callback回调设置中,通过DynamicAdvisedInterceptor拦截器来实现AOP功能的源码解析以JDK动态代理为例JdkDynamicAopProxy@Override public Object invoke(Object proxy, Met
原创
77阅读
0评论
0点赞
发布博客于 9 月前

再看AOP,Where,When ,What

AOP刚开始学习Java的时候,对aop的概念,看不很明白,今天再来看AOP,现在能想其实和动态代理来看也差不多,都是隐式的给你加些功能图解切面 aspect 直白点就是要在切点插入的东西,就是what切点 pointcut 就在要什么地方 ,就是 where代码精通类public class SampleAdder { public SampleAdder() { } public int add(int a, int b) { System.out.
原创
97阅读
0评论
0点赞
发布博客于 9 月前

Spring IOC实现

IOC实现今天我们来看下IOC的实现原理示例代码public class Provider { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml"); context.start(); System
原创
83阅读
0评论
0点赞
发布博客于 9 月前

Flink源码-6-JobMaster 启动任务

JobMasterjobmaster负责执行整个任务入口类org.apache.flink.runtime.jobmaster.JobMasterpublic CompletableFuture<Acknowledge> start(final JobMasterId newJobMasterId) throws Exception { // make sure we receive RPC and async calls start(); return callAsync
原创
168阅读
0评论
0点赞
发布博客于 9 月前

Flink源码-5-dispatcher,jobmanager,jobmaster关系

模式在yarn-session模式下,共享一个dispatcherorg.apache.flink.runtime.dispatcher.Dispatcher 这个类,这里接收到客户端传上来的作业图代码分析 //这里就是分发器接收到作业图 @Override public CompletableFuture<Acknowledge> submitJob(JobGraph jobGraph, Time timeout) { log.info("Received JobGraph s
原创
343阅读
0评论
0点赞
发布博客于 9 月前

Flink源码-4-task执行

执行flink 作业的最小执行单元是task示例public class WorldCount { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setParallelism(1); Dat
原创
138阅读
0评论
0点赞
发布博客于 9 月前

Spring boot 启动卡住

现象一直没有启动成功排查问题用arthas排查直接 thread 查看线程状态,发现waitthread 线程id(主线程的) 得到堆栈信息发现问题代码了当然jstakc -l 命令也行总结这类卡住了的,直接把线程堆栈信息打出来看就行了...
原创
279阅读
0评论
0点赞
发布博客于 9 月前

Hive Jdbc处理set参数问题

问题hive jdbc 需要处理参数SQL示例 set hive.xx; set hive.xx; select * from 代码示例 String[] singSql = sql.split(";"); ArrayList<String> list = new ArrayList<>(singSql.length); for (int i = 0; i < singSql.length - 1; i++
原创
429阅读
0评论
0点赞
发布博客于 9 月前

Scala implicit 隐式函数,隐式参数,隐式类

隐式函数object TestImplicitMethod { implicit def convertInt2String(i: Int) = i.toString def main(args: Array[String]): Unit = { showMessage("this is ") //为什么类型1不报错,就是因为发现类型不匹配后 //去寻找有没有匹配的函数,发现有这样的函数 showMessage(1) } def showMessage(
原创
91阅读
0评论
0点赞
发布博客于 9 月前

Flink源码-3-作业数据结构

大图示例代码public class WorldCount { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); ...
原创
123阅读
0评论
0点赞
发布博客于 9 月前

Flink源码-2-Flink提交任务分析

代码示例public class WorldCount { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); D...
原创
181阅读
0评论
0点赞
发布博客于 9 月前

Flink系列-1-Flink在yarn上启动源码分析

源码准备git clone https://github.com/apache/flink.git部署Flink在yarn可参考 https://blog.csdn.net/qq_22222499/article/details/95519743流程图分析入口类org.apache.flink.yarn.cli.FlinkYarnSessionCli开启部署clusterClie...
原创
181阅读
0评论
1点赞
发布博客于 9 月前

设计模式-7-建造者模式

建造者模式当你需要创建一个可能有许多配置选项的对象时, 该模式会特别有用图解示例定义接口public interface Builder { void setType(Type type); void setSeats(int seats);}接口实现类public class CarBuilder implements Builder { priv...
原创
53阅读
0评论
0点赞
发布博客于 9 月前

设计模式-6-装饰模式

装饰模式装饰是一种概念设计模式, 允许你通过将对象放入特殊封装对象中来为原对象增加新的行为图解接口定义public interface DataSource { void writeData(String data); String readData();}接口默认实现类public class FileDataSource implements DataSo...
原创
63阅读
0评论
0点赞
发布博客于 9 月前

设计模式-5-桥接模式

桥接模式桥接是一种结构型设计模式, 可将业务逻辑或一个大类拆分为不同的层次结构, 从而能独立地进行开发。图解示例桥接模式在处理跨平台应用、 支持多种类型的数据库服务器或与多个特定种类 (例如云平台和社交网络等) 的 API 供应商协作时会特别有用远程接口public interface Device { int getVolume(); void setVolu...
原创
47阅读
0评论
0点赞
发布博客于 9 月前

设计模式-4-适配器模式

适配器模式适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作图解示例圆孔类public class RoundHole { private double radius; public RoundHole(double radius) { this.radius = radius; } public double ge...
原创
66阅读
0评论
0点赞
发布博客于 9 月前

设计模式-3-工厂方法模式

抽象工厂模式工厂生产组件的接口都是抽象的,具体生产类型,由 工厂类型决定图解定义一个按钮组件public interface Button { void paint();}组件实现类macpublic class MacOsButton implements Button { @Override public void paint() { ...
原创
65阅读
0评论
0点赞
发布博客于 9 月前

设计模式-1-原型模式

原型模式通过key得到 一个新的对象,新的对象属性一样,内存地址不一样。对应java里的深拷贝图解实际例子java里的clone定义一个抽象类public abstract class Shape { public int x; public int y; public String color; public Shape() { } ...
原创
68阅读
0评论
0点赞
发布博客于 9 月前

Git配置多个账号

场景开发公司的代码,配置公司的git信息,有时候会上传自己的代码到github上,这时候就想把这个账号信息分开方法公司的git信息可以设置为全局单独想push到github的项目设置为本地就行比如设置全局信息git config --global user.name xx作用范围在这一个项目git config user.name xx验证可以用git config --...
原创
366阅读
0评论
0点赞
发布博客于 9 月前

JAVA开发Yarn应用

文章目录思考流程图实际代码思考我们知道在大数据领域,yarn作为资源调度框架,可以运行MR,SPARK,Flink,那它是不是 也可以运行其它任务,YARN作为资源调度框架和任务的具体的类型没有关系,只管任务的执行,那只要用API,是不是也可以自己尝试往Yarn上提交任务流程图client向resourcemanager,申请一个应用client得到一个container,启动ap...
原创
484阅读
0评论
0点赞
发布博客于 9 月前

Java反射有什么用

文章目录反射概念用处Demo实现原理反射概念简单来就在程序运行过程中得到对象的,class,field,method,这玩意到底有啥用?用处Demo通常在Dao框架中,save方法都是泛型参数save(T t)save(People people)save(User user)为什么我们不管放什么对象都能保存到数据库呢实现原理其实说白了这个问题,最后肯定还是这样插入in...
原创
1191阅读
0评论
0点赞
发布博客于 10 月前

深入浅出RPC,通俗代码理解dubbo

深入浅出RPC,通俗代码理解dubbo
原创
149阅读
0评论
0点赞
发布博客于 10 月前

Grpc 实战Java 调用python

文章目录背景服务端客户端测试背景主要是为了解决在java代码中调用python服务的问题,考虑到性能的要求,还是决定采用RPC协议调用服务端接口定义文件,注意java和python定义文件相同syntax = "proto3";option java_multiple_files = true;option java_package = "com.xx";option j...
原创
654阅读
0评论
0点赞
发布博客于 2 年前

深入浅出类加载机制

文章目录类加载机制概念类加载器的工作流程自定义类加载器类加载机制概念类加载器主要负责将class加载进jvm内存中,然后才能new出对象三种加载器层次关系三种加载器,负责加载的类路径类加载器的工作流程简单来说就是jvm遇到需要加载的类时,就先向app loader说要要加载这个类,然后不断向上传递,直到boostrap这个,然后,去类加载器的路径下寻找这个class,如果没找到...
原创
130阅读
0评论
0点赞
发布博客于 2 年前

HIVE 实现均匀抽样

文章目录需求思路需求用Hive处理数据的时候,如何做到均匀抽样?思路用这个函数 ntile(n) 分成N份 ,切分的方法,按照时间排序ntile(24) OVER (PARTITION BY user_id ORDER BY create_time) order_id现在已经均匀分成了N份,然后可以在N分中再用row_number()函数 ,再进行排序,取值ROW_NUMBER()...
原创
700阅读
0评论
0点赞
发布博客于 2 年前

记一次Caused by: java.lang.NoSuchFieldError 排查过程

文章目录错误现象分析问题问题总结错误现象UDF 函数里引用了httpclient jar包,用来请求外网,报错Caused by: java.lang.NoSuchFieldError: INSTANCE at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFact...
原创
2298阅读
3评论
2点赞
发布博客于 2 年前

Flume 多Channel/多Sink

文章目录单管道设计多管道、多输出单管道设计示例代码# example.conf: A single-node Flume configuration# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1# Describe/configure the sourcea1.s...
原创
175阅读
0评论
0点赞
发布博客于 2 年前

MAT outgoing references / incoming references

MAT在使用MAT分析对象的时候有两个重要的概念outgoing references ,这个对象引用了哪些对象incoming references ,哪些对象引用了这个对象图解代码public class A { private C c1 = C.getInstance();}public class B { private C c2 = C.getInst...
原创
722阅读
0评论
1点赞
发布博客于 2 年前

JVM 常用命令及实战

文章目录jstatjmapjstatjstac 主要用来查看GC情况用法 jstat - [-t] [-h] [ []]jstat -gcutil 21946 2000 521946 进程ID2000 每2S采集一次5 采集5次ExampleSummary of garbage collection statistics.S0: s0使用率.S1: s1使用率...
原创
137阅读
0评论
0点赞
发布博客于 2 年前

Flink 广播流最佳实践

文章目录广播流与普通流JOIN图解代码实践广播流与普通流JOIN图解user actions 可以看作是事件流patterns 为广播流,把全量数据加载到不同的计算节点普通双流join根据join 条件,根据key的发到同一个计算节点,如下图类似代码实践主要功能,实现动态添加监控词,满足条件数据继续向下流转,不满足条件的,直接丢弃主类 StreamExecutionEnv...
原创
2437阅读
0评论
0点赞
发布博客于 2 年前

JVM 常用参数详解

文章目录常用参数参考推荐使用工具常用参数参考参数官方链接参考解释-Xms初始堆大小-Xmx堆最大值-xmn堆年轻代大小-Xss设置线程栈大小-XX:MaxMetaspaceSize增加metaspace的大小-XX:MaxDirectMemorySize=1m修改直接内存大小-XX:NewRatio=1修改新生代与老年代比...
原创
374阅读
0评论
0点赞
发布博客于 2 年前

java -jar引用其它jar包的问题

文章目录背景解决思路实践总结背景有这样一种情况,如果是java -jar xx.jar这种情况,通常我们的逻辑是会把所有的jar包放在一起,这样打包,这个会存在一种情况,就是打包下来非常大,由于程序要传到服务器上执行,大概率会多次修改,这样会很浪费时间在打包,上传过程解决思路把依赖包打在一起,这部分代码基本不会动,只传一次上去,然后打包业务jar包的时候,不打依赖,那这样的话,问题不...
原创
699阅读
2评论
0点赞
发布博客于 2 年前

JMXReport实现

文章目录实现指标注册MBeanJMXServerJMXReportJmxRequest总结最近看kafka,flink源码发现,监控指标都是通过jmx进行上报的,于是我也决定自己实现一个流程图实现指标Metrixpublic interface Metric {}Meterpublic interface Meter extends Metric { /** ...
原创
378阅读
0评论
0点赞
发布博客于 2 年前

Flink Checkpoints & Savepoint 最佳实践

文章目录基本概念代码实践测试恢复总结基本概念Flink 中很重要的一点就是能够保持任务的状态,这样任务失败了,会根据上一次的结果重试,保证数据只被计算一次实现原理,就是每隔一点时间对计算状态作一个镜像,这个状态称为Checkpointssavepoint 主要是人为的触发,保存这个任务的计算状态 ,两个作用都是一样的代码实践/** * Created by shuiyu lei...
原创
337阅读
1评论
1点赞
发布博客于 2 年前

Flink on yarn 实践

目录环境配置启动常见报错参考资料环境配置yarn环境可用flink-shaded-hadoop-2-uber-2.7.5-7.0.jar 复制到lib目录下启动Flink启动直接提交到yarn上 启动命令bin/flink run -m yarn-cluster xx.jar // -c 可以指定启动类另一种方式在yarn上开辟一个空间,然后在提交这种任务,可以...
原创
357阅读
0评论
0点赞
发布博客于 2 年前

Influxdb+Grafana打造Flink监控大盘

Influxdb+Grafana打造Flink监控大盘Influxdb安装Grafana安装Flink配置Grafana配置报表Influxdb安装为什么选influxdb,每条记录都有一个时间戳,很适合这种统计的场景,当然还有其它原因安装参考文档注意事项 ,如果要在界面打开查询界面需修改配置 /etc/influxdb/influxdb.conf[admin] # Deter...
原创
3621阅读
1评论
0点赞
发布博客于 2 年前

Flink 调试watermark & allowedLateness

调试watermark & allowedLateness基本概念能明白什么开始调试总结基本概念watermark 主要是为了解决数据乱序到达的问题allowed 解决窗口触发后数据迟到后的问题能明白什么窗口的范围窗口的触发条件窗口的销毁时间迟到元素的处理方式watermark的生成方式开始调试代码准备 Flinkpackage com.wend...
原创
1205阅读
0评论
2点赞
发布博客于 2 年前

kafka-manager-2.0.0.2.zip

最新版本kafka-manger源码编译,
zip
发布资源于 2 年前

编译 kafka manager 源码

kafka managerkafka manager 作为监控kafka的开源监控软件,非常好用,之前网上下载了一个别人编译好的版本,那个版本太老了,在kafka 0.10上面会一直报错,导致在监控界面上看不到消费者,也看不到offset,所以我觉得下载源码来自己亲自编译一次1.下载源码git clone https://github.com/yahoo/kafka-manager.git...
原创
894阅读
2评论
0点赞
发布博客于 2 年前

maven-assembly-plugin 和 maven-shade-plugin 比较

maven-assembly-plugin 和 maven-shade-pluginFlink scala 打包报错Exception in thread "main" com.typesafe.config.ConfigException$UnresolvedSubstitution: reference.conf @ jar:file:/Users/wending/IdeaProject...
原创
1720阅读
0评论
0点赞
发布博客于 2 年前

HIVE over() 超全讲解

over()over() 函数在Hive中运用广泛,通常搭配row_number() ,min(),max(),sum()来使用,总结下over函数划定窗口的范围idnamenum1a12b33a54c95b3over() 此时每一行的窗口都是所有的行SELECT id,name,num,sum(num) ov...
原创
10772阅读
7评论
22点赞
发布博客于 2 年前

Flink 异步IO

Flink 异步IO在flink我们经常需要与外部系统打交道,由于外部系统的问题,可能导致时间耗时比较长,为了不影响flink的处理性能,flink引入了异步IO来处理这个问题实现需要 extends RichAsyncFunction<IN, OUT>分析AsyncDataStream 有两个重要的方法返回的结果可能是乱序的public static <IN...
原创
877阅读
0评论
0点赞
发布博客于 2 年前

Flink写Mysql JDBCOutputFormat

Flink写MysqlFlink 自带了JDBCOutputFormat来写入Mysql FlinkKafkaConsumer011<String> consumer011 = new FlinkKafkaConsumer011<String>("flink_order", new SimpleStringSchema(), props); DataS...
原创
2974阅读
3评论
0点赞
发布博客于 2 年前

Kafka auto.offset.reset

思考今天突然想起一个问题,Kafka的消费offset在程序重启后,是接着上次消费的地方继续消费的,那auto.offset.reset 这个参数到底是什么意思呢??分析总结只有当group 找不到合法的offset,才会启用auto.offset.reset...
原创
204阅读
0评论
0点赞
发布博客于 2 年前

Kafka 从指定Timestamp开始消费

思路服务端设置修改server.properties 增加 log.message.timestamp.type=LogAppendTime具体可参考http://kafka.apache.org/0100/documentation.html#introduction参考代码public class ConsumerTimeStamp extends Thread { ...
原创
6276阅读
3评论
0点赞
发布博客于 2 年前

mac 安装flink

mac 命令行brew install apache-flink 启动命令在/usr/local/Cellar/apache-flink/1.7.2/libexec start-cluster.sh 访问端口8081 这样就可以本地测试了
原创
482阅读
0评论
0点赞
发布博客于 2 年前

kakfa 从0开始消费,从指定offset开始消费

1.从0开始消费 TopicPartition partition = new TopicPartition("order", 0); consumer.assign(Arrays.asList(partition)); consumer.seekToBeginning(Arrays.asList(partition)); while (tru...
原创
2129阅读
0评论
1点赞
发布博客于 2 年前

zk 节点数据结构

zk node节点意义The Stat structure for each znode in ZooKeeper is made up of the following fields:czxid节点创建时的事务idmzxid节点修改时的事务idpzxid最近一次修改子节点的事务idctime节点创建时间mtime节点修改时间dataversion数据版本,...
原创
281阅读
0评论
0点赞
发布博客于 2 年前

维度建模

维度建模通常面向数据仓库,在以HIVE为基础的数据仓库 中,广泛运用此方法参事实表为基础,然后加以维度表优点:数据冗余少便于做OLAP分析,特别是Kylin结构清楚缺点:查询时关联多张表下图这个是星型模型,雪花模型是以星型模型为基础,对维度表继续拆分,拆成更小的部分,从总体来看就像雪花一样...
原创
125阅读
0评论
0点赞
发布博客于 2 年前

Flink重要概念

无状态计算:对于一条数据处理后,就输出了,没有保存状态 有状态计算:对于一条数据处理后,更新已有的状态,这里给一个例子,比如计算一个小时内的温度的最高值,在处理数据过程中根据处理的数据,不断更新当前的最大温度值 数据一致性的三个级别: at least one 数据可能计多 数据一致性的三个级别: at monst one 数据可能计少 数据一致性的三个级别: exactly-one 数据...
原创
236阅读
0评论
0点赞
发布博客于 2 年前

数据库常见面试题(附答案)

1.事务四大特性 原子性,要么执行,要么不执行 隔离性,所有操作全部执行完以前,其它会话不能看到过程 一致性,事务前后,数据总额一致 持久性,一旦事务提交,对数据的改变就是永久的2.数据库隔离级别,每个级别会引发什么问题,mysql默认是哪个级别脏读:事务B读取事务A还没有提交的数据 不可重复读:两次事务读的数据不一致 幻读:事务A修改了数据,事务B也修改了数据,这时在事务A看
原创
296925阅读
34评论
415点赞
发布博客于 2 年前

kylin 揭开亚秒级查询的神秘面纱

kylin之所有亚秒级别的查询,主要在于存储结构,kylin的数据都是写入了hbase,cube的重点就是维度和度量列,在hbase中rowkey就是由各维度值拼接起来的,这里列一个比较形象的例子,这篇文章的目标就达到了 cube id的维度值 1,2 dt的维度值是25,26,27,下面根据cube的概念完成下在这个表,一共11条记录,按照cube 维度的n次方还有一种就情况就是没有维度这种,...
原创
2317阅读
1评论
1点赞
发布博客于 2 年前

从底层采集所有运行的HIVE SQL

修改HIVE-SITE.XML,每个sql在执行之前都会去执行这个类,这个类实现ExecuteWithHookContext接口&lt;property&gt; &lt;name&gt;hive.exec.pre.hooks&lt;/name&gt; &lt;value&gt;com.wending.hive.HivePreHook&lt;/value&gt; &...
原创
502阅读
0评论
0点赞
发布博客于 2 年前

kylin 创建MODEL和CUBE示例

首先要创建一个项目,然后开始创建MODEL  选择事实表和维度表,选择事实表和维度表的join方式    选择模型的维度,只有这里选择了维度,在后面的CUBE中才能选,这里我们选了F_ORDER_MESSAGE中的id和city与F_CITY中的ID和CITY作为维度 如果表中有分区表的话,选择分区表设置读取的分区格式   开始创建CUBE,选择模型,设置CUBE名称 选择计算维度,只能...
原创
1928阅读
0评论
1点赞
发布博客于 2 年前

Flink wordcount

1.pom.xml&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio...
原创
294阅读
0评论
0点赞
发布博客于 2 年前

hive sql教程

Hive Sql  入门教程前置教程hive库表知识hive库是表的一个集合,一个库拥有多个表,hive整个数据库拥有多个库。hive表代表一个对象,比如一个人设计为一个表就有身高体重等属性,在hive中实际存储表现为每张表会有一个存储地址,比如表名为people,实际存储会有/xx/xx/people,hive中引用了一个很重要的概念分区,分区实际上也是这个表的字段,反映在实际存...
原创
5027阅读
1评论
5点赞
发布博客于 2 年前

Hive字符串函数

字符串函数1.int  ascii(string str)返回第一个字符的ascii码值 demo:select ascii('abcde')result:97string2.base64(binary bin)二进制转为base 643.int    character_length(string str)返回字符长度,2.2.0版本以上支持demo:select cha...
原创
1693阅读
0评论
0点赞
发布博客于 2 年前

Flink安装

Flink下载 下载地址 以下操作在服务器上操作,前置环境安装JDK tar -zxvf 文件  启动 bin/start-cluster.sh ,查看web端口8081 执行demo任务 bin/flink run ./examples/batch/WordCount.jar 在web界面可以看到任务运行的界面    ...
原创
293阅读
0评论
0点赞
发布博客于 2 年前

hive sql 高级函数

行转列,列转行函数,一行转多行,多行转一行 行拆多行 函数  explode(myCol)把数组拆开,常与lateral view搭配使用,          posexplode(myCol),此函数还能拿到数据的index 1.select create_time,table_id from  dj_ods_ds.o_t_job_mail mail ta lat...
原创
921阅读
0评论
0点赞
发布博客于 2 年前

线程池原理介绍(图解流程)

线程池在源码中主要实现形式为每一个线程为一个work 以下面代码为例 ExecutorService service = Executors.newFixedThreadPool(5); for (int i = 0; i &lt; 15; i++) { service.submit(new Runnable() { @...
原创
275阅读
2评论
0点赞
发布博客于 2 年前

Hive map和reduce个数的设置

hive优化的几种情况目标就是每个map,reduce数据处理量要适当1.hive小文件很多,造成map个数很多,需要减少map个数set mapred.max.split.size=100000000;set mapred.min.split.size.per.node=100000000;set mapred.min.split.size.per.rack=100000000;s...
原创
3861阅读
0评论
1点赞
发布博客于 3 年前

hivesql distinct

1.优化distinct优化前,数据全部放在一个reduce里select count(distinct ip)from (select id from tablea union all select id from tableb) ta优化后,数据先分布到不同的reduce中,再统一select count(*)from (select id from (...
原创
1169阅读
0评论
0点赞
发布博客于 3 年前

kylin安装步骤

1.本来安装kylin看官网很简单的,可是上手安装各种问题2.下载安装包,我之前是安装的2.1版本的,结果死活在web界面都看不到hive表,最后换了2.4版本的终于可以了3.解压包,设置环境变量,/etc/profile,记得要生效,HIVE_CONF是启动的时候报错了,才设置的export KYLIN_HOME=/opt/soft/apache-kylin-2.4.1expor...
原创
684阅读
0评论
0点赞
发布博客于 3 年前

hive sql进阶之窗口函数,分析函数

1.row_number 函数区别于其它排序函数,相当于多了一个排序的列数据准备name    moneyming    12yang    23ming    35ming    54yang    43select name,money,row_number() over(order by money) from lei_test;ming    12    1yang ...
原创
2587阅读
0评论
0点赞
发布博客于 3 年前

hive安装指南

1.下载apache-hive-2.3.3-bin.tar.gz2.解压,进入目录,根据模板文件,重新生成新的hive-env.sh,hive-site.xml3.编辑hive-env.sh 主要是这两个参数 HADOOP_HOME=/opt/soft/hadoop-2.7.5 # Hive Configuration Directory can be controlled by: exp...
原创
105阅读
0评论
0点赞
发布博客于 3 年前