- 博客(216)
- 资源 (12)
- 收藏
- 关注
原创 java中System.getProperty()
// java版本号System.out.println("java版本号:" + System.getProperty("java.version")); // Java提供商名称System.out.println("Java提供商名称:" + System.getProperty("java.vendor")); // Java提供商网站System.out.println("Java提供商网站:" + System.getProperty("java.vendor.url")); .
2021-05-18 18:58:49 364
原创 常见数据库 URL
/** * jdbc:mysql://machine_name:port/dbname */ public static final String MYSQL_JDBC_TEMPLATES = "jdbc:mysql://%s:%d/%s"; /** * jdbc:hive2://node1:10000/default */ public static final String HIVE2_JDBC_TEMPLATES = "jdbc:hiv.
2021-02-19 18:27:10 674
原创 Orika对象复制
Orika背景介绍Orika是java Bean映射框架,可以实现从一个对象递归拷贝数据至另一个对象。在开发多层应用程序中非常有用。在这些层之间交换数据时,通常为了适应不同API需要转换一个实例至另一个实例。 有很多方法可以实现:硬代码拷贝或Dozer实现bean映射等。总之,需要简化不同层对象之间映射过程。 Orika使用字节码生成器创建开销最小的快速映射,比其他基于反射方式实现(如,Dozer)更快。之前使用Bean Copy 性能非常慢,发现在这个领域业界还是有很多新秀的。 Ori..
2021-02-03 15:45:15 386
原创 Spark,Hadoop,Hive
不同的业务场景决定了不同的系统架构选型。Hadoop 用于分布式存储和 Map-Reduce 计算,Spark 用于分布式机器学习,Hive 则是分布式数据库。Hive 和 Spark 是大数据领域内为不同目的而构建的不同产品。二者都有不可替代的优势。Hive 是一个基于Hadoop 的分布式数据库,Spark 则是一个用于数据分析的框架。学习 Spark ,从大方向说,算子大致可以分为以下两类:(1)Transformation 变换 / 转换算子:这种变换并不触发提交作业,这种算子是延迟执行的,
2020-09-08 10:31:43 370 1
原创 hive 开窗函数使用
开窗函数格式over(partition by ** order by ** rows between **)sum() max() count() min() avg()window 子句: preceding:往前 following:往后 current row:当前行 unbounded:起点 unbounded preceding:从前面的起点 unboundwd following:到后面的终点测试数据集:name,orde
2020-09-07 14:19:52 542
原创 手写实现hashTable,put+get,带你领略底层原理
hashTable与hashmap最大不同是,hashtable实现了方法级别的synchronized,hashmap 非synchronizedhashtablesynchronized代码实现了:1:方法级别的线程安全问题2:hashmap 为啥会key相同value覆盖3:相同槽位新数据为啥永远保存在链表头部4:代码只是即兴发挥的,如有不当地方请指教import java.util.ArrayList;/** * ClassName: customHashM.
2020-08-24 16:33:38 344
转载 Spark内核分析之BlockManager工作原理介绍
在DAGShceduler中有一个BlockManagerMaster对象,该对象的工作就是负责管理全局所有BlockManager的元数据,当集群中有BlockManager注册完成的时候,其会向BlockManagerMaster发送自己元数据信息;BlockManagerMaster会为BlockManager创建一个属于这个BlockManager的BlockManagerInfo,用于存放BlockManager的信息。简单介绍一下BlockManager主要的几个组件;Di...
2020-08-10 10:18:54 228
转载 Flink 参数配置和常见参数调优
Flink参数配置 jobmanger.rpc.address jm的地址。 jobmanager.rpc.port jm的端口号。 jobmanager.heap.mb jm的堆内存大小。不建议配的太大,1-2G足够。 taskmanager.heap.mb tm的堆内存大小。大小视任务量而定。需要存储任务的中间值,网络缓存,用户数据等。 taskmanager.numberOfTaskSlots slot数量。在yarn模式使用的时候会受到yarn.sche
2020-08-06 11:23:28 1406
转载 Spark Kafka 基于Direct自己管理offset
1、SparkStreaming中使用Kafka的createDirectStream自己管理offset在Spark Streaming中,目前官方推荐的方式是createDirectStream方式,但是这种方式就需要我们自己去管理offset。目前的资料大部分是通过scala来实现的,并且实现套路都是一样的,我自己根据scala的实现改成了Java的方式,后面又相应的实现。Direct Approach 更符合Spark的思维。我们知道,RDD的概念是一个不变的,分区的数据集合。我们将kafka
2020-08-04 10:09:10 377
转载 spark Hash Shuffle内幕彻底解密
本博文的主要内容: 1、HashShuffle彻底解密 2、ShufflePluggable解密 3、SortedShuffle解密 4、Shuffle性能优化一:到底什么是Shuffle? Shuffle中文翻译为“洗牌”,需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算。二:Shuffle可能面临的问题? 运行Task的时候才会产生Shuffle(Shuffle已经融化在Spark的算子中了)。 ...
2020-07-28 17:25:15 344
转载 Flink 1.11 新特性之 SQL Hive Streaming 简单示例
7月7日,Flink 1.11 版本发布,与 1.10 版本相比,1.11 版本最为显著的一个改进是 Hive Integration 显著增强,也就是真正意义上实现了基于 Hive 的流批一体。本文用简单的本地示例来体验 Hive Streaming 的便利性并跟大家分享体验的过程以及我的心得,希望对大家上手使用有所帮助。添加相关依赖测试集群上的 Hive 版本为 1.1.0,Hadoop 版本为 2.6.0,Kafka 版本为 1.0.1。<properties> &l
2020-07-23 17:08:24 368
转载 Kafka面试题系列(基础篇)
Kafka的用途有哪些?使用场景如何? 消息系统:Kafka 和传统的消息系统(也称作消息中间件)都具备系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。与此同时,Kafka 还提供了大多数消息系统难以实现的消息顺序性保障及回溯消费的功能。 存储系统:Kafka 把消息持久化到磁盘,相比于其他基于内存存储的系统而言,有效地降低了数据丢失的风险。也正是得益于 Kafka 的消息持久化功能和多副本机制,我们可以把 Kafka 作为长期的数据存储系统来使用,只需要把对应的数据保
2020-07-23 13:20:37 1065
转载 Redis系列 | 缓存穿透、击穿、雪崩、预热、更新、降级
Redis是高性能的分布式内存数据库,对于内存数据库经常会出现下面几种情况,也经常会出现在Redis面试题中:缓存穿透、缓存击穿、缓存雪崩、缓存预热、缓存更新、缓存降级。本篇分别介绍这些概念以及对应的解决方案。目录缓存穿透缓存击穿缓存雪崩缓存预热缓存更新缓存降级缓存穿透当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶意攻击时,接口的访问全部透过Redis访问数据库,而数据库中也没有这些数据,我们称这种现象为".
2020-07-21 09:45:49 147
转载 Kafka生产者ack机制剖析
Kafka有两个很重要的配置参数,acks与min.insync.replicas.其中acks是producer的配置参数,min.insync.replicas是Broker端的配置参数,这两个参数对于生产者不丢失数据起到了很大的作用.接下来,本文会以图示的方式讲解这两个参数的含义和使用方式。通过本文,你可以了解到:✍Kafka的分区副本✍什么是同步副本(In-sync replicas)✍什么是acks确认机制✍什么是最小同步副本✍ack=all与最小同步副本是如何发挥作用
2020-07-17 13:35:09 1095 1
转载 Spark Executor内存管理
我们都知道 Spark 能够有效的利用内存并进行分布式计算,其内存管理模块在整个系统中扮演着非常重要的角色。为了更好地利用 Spark,深入地理解其内存管理模型具有非常重要的意义,这有助于我们对 Spark 进行更好的调优;在出现各种内存问题时,能够摸清头脑,找到哪块内存区域出现问题。首先我们知道在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转.
2020-07-09 17:52:34 359
转载 Apache Spark 统一内存管理模型详解
本文将对 Spark 的内存管理模型进行分析,下面的分析全部是基于 Apache Spark 2.2.1 进行的。为了让下面的文章看起来不枯燥,我不打算贴出代码层面的东西。文章仅对统一内存管理模块(UnifiedMemoryManager)进行分析,如对之前的静态内存管理感兴趣,请参阅网上其他文章。我们都知道 Spark 能够有效的利用内存并进行分布式计算,其内存管理模块在整个系统中扮演着非常重要的角色。为了更好地利用 Spark,深入地理解其内存管理模型具有非常重要的意义,这有助于我们对 Spark
2020-07-07 11:50:54 161
原创 springboot优雅结合redis
Redis和springboot 整合redisUtil类Springboot整合redis(一般人都能看懂的Lettuce版本)
2020-07-06 11:20:27 216
转载 Apache Spark 内存管理详解
Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuffle、JVM 等相关概念。在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Exe
2020-07-05 22:13:35 161
转载 HBase Rowkey 设计指南
为什么Rowkey这么重要RowKey 到底是什么如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop我们常说看一张 HBase 表设计的好不好,就看它的 RowKey 设计的好不好。可见 RowKey 在 HBase 中的地位。那么 RowKey 到底是什么?RowKey 的特点如下: 类似于 MySQL、Oracle中的主键,用于标示唯一的行; 完全是由用户指定的一串不重复的字符串; HBase 中的
2020-06-22 10:38:38 316
转载 ZooKeeper面试题(2020最新版)
1. ZooKeeper 是什么?ZooKeeper 是一个开源的分布式协调服务。它是一个为分布式应用提供一致性服务的软件,分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zookeeper 保证了如下分布式一致性特性:(1)顺序一致性...
2020-06-16 11:02:03 170
原创 Flink之实时统计热门商品的TopN
文章目录一、需求说明1、以案例驱动理解二、技术点三、代码实现(一)1、调用底层的Process(可做类似map的操作),将Json字符串解析成MyBehavior对象2、提取EventTime,转换成Timestamp格式,生成WaterMark3、按照指定事件分组4、把分好组的数据,划分窗口:假设窗口总长10分钟, 步长1分钟滑动一次5、窗口内的数据进...
2020-06-16 10:23:48 793
转载 JPA的事务注解@Transactional总结
@Transactional事务使用总结:异常在A方法内抛出,则A方法就得加注解多个方法嵌套调用,如果都有 @Transactional 注解,则产生事务传递,需要 Propagation.REQUIRED如果注解上只写 @Transactional 默认只对 RuntimeException 回滚,而非 Exception 进行回滚如果要对 checked Exceptions 进行回滚,则需要 @Transactional(rollbackFor = Exception.class)事务隔离级
2020-06-15 16:33:12 1250
转载 Hibernate(JPA)注解大全
@Entity(name=”EntityName”) 必须,name为可选,对应数据库中一的个表 @Table(name=””,catalog=””,schema=””) 可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息 name:可选,表示表的名称。默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名 catalog:可选,表示Catalog名称,默认为Catalog("")。 schema:可选,表示Schema名称,默..
2020-06-15 16:16:27 250
原创 Hbase数据倾斜问题处理手段汇总
[1]HBase 中加盐(Salting)之后的表如何读取:协处理器篇[2]Hbase热点问题、数据倾斜和rowkey的散列设计[3]HBase优化之避免数据倾斜[4]大数据学习笔记——HBase面试题[5]hbase热点问题(数据倾斜)解决方案---rowkey散列和预分区设计[6]HBase优化之避免数据倾斜...
2020-06-12 16:56:41 692
转载 HBase 中加盐(Salting)之后的表如何读取:协处理器篇
在《HBase Rowkey 设计指南》文章中,我们介绍了避免数据热点的三种比较常见方法:加盐 - Salting 哈希 - Hashing 反转 - Reversing其中在加盐(Salting)的方法里面是这么描述的:给 Rowkey 分配一个随机前缀以使得它和之前排序不同。但是在 Rowkey 前面加了随机前缀,那么我们怎么将这些数据读出来呢?我将分三篇文章来介绍如何读取加盐之后的表,其中每篇文章提供一种方法,主要包括:使用协处理器读取加盐的表 使用 Spark 读取加盐的表 使..
2020-06-12 16:53:19 611
转载 HBase Compaction机制
Compaction介绍Compaction是buffer->flush->merge的Log-Structured Merge-Tree模型的关键操作,主要起到如下几个作用:1)合并文件2)清除删除、过期、多余版本的数据3)提高读写数据的效率Minor & Major Compaction的区别1)Minor操作只用来做部分文件的合并操作以及包括minVersion=0并且设置ttl的过期版本清理,不做任何删除数据、多版本数据的清理工作。2)Major操..
2020-06-11 10:02:54 339
转载 JVM架构体系与GC命令小总结
1. Overview2. JVM架构体系 1) 垃圾回收 - 对象存活性判断 - 垃圾回收算法 - 垃圾回收器(回收算法的具体实现) 2) 类装载子系统 - 启动类加载器 - 扩展类加载器 - 应用程序类加载器 - 自定义类加载器 3) 执行引擎 - 解释器 - 即时编译器 4) 运行时数据区 - 堆H...
2020-06-10 17:50:05 154
转载 Spark Streaming官方编程指南
OverviewSpark Streaming(下称streaming)是Spark core的拓展,一个易扩展、高吞吐、高容错的流式数据处理系统。streaming-archstreaming接收输入数据(kafka等)然后根据设置的处理时长batch interval将其切割为一个个的小数据集,然后对小数据集进行spark core/sql/mllib的操作,最后将处理后的小数据集输出。streaming-flowstreaming具有一个高度抽象概念叫离散化的流(...
2020-06-10 17:47:53 197
原创 SpringBoot-Quartz
SpringBoot整合Quartz作为调度中心使用完整实例https://github.com/EalenXie/SpringBoot-Quartz#springboot%E6%95%B4%E5%90%88quartz%E4%BD%9C%E4%B8%BA%E8%B0%83%E5%BA%A6%E4%B8%AD%E5%BF%83%E4%BD%BF%E7%94%A8%E5%AE%8C%E6%95%B4%E5%AE%9E%E4%BE%8BSpringBoot整合Quartz简单完整例子https://
2020-06-10 16:12:45 118
转载 SparkSQL内核解析之逻辑计划
SparkSQL逻辑计划概述逻辑计划阶段被定义为LogicalPlan类,主要有三个阶段: 由SparkSqlParser中的AstBuilder将语法树的各个节点转换为对应LogicalPlan节点,组成未解析的逻辑算子树,不包含数据信息与列信息 由Analyzer将一系列规则作用在未解析逻辑算子树上,生成解析后的逻辑算子树 有Optimizer将一系列优化规则应用在逻辑算子树中,确保结果正确的前提下改进低效结构,生成优化后的逻辑算子树 LogicalPlan简介
2020-06-02 23:01:33 687
转载 全面了解监控知识体系
前言介绍监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力,效率最高的方案。当然对监控不是很明白的朋友们,看了以下文章可能会对监控整个体系有比较深刻的认识。ps:本文内容较多,文章篇幅很长,可以先收藏,后续慢慢阅读。0 监控目标我们先来了解什么是监控,监控的重要性以及监控的目标,当然每个人所在的行业不同、公司不同、业务不同、岗位不同、对监控的理解也不同,但是
2020-06-02 22:50:22 251
转载 实时统计分析系统-Apache Druid
Druid.io(以下简称Druid)是2013年底开源出来的,主要解决的是对实时数据以及较近时间的历史数据的多维查询提供高并发(多用户),低延时,高可靠性的问题。Druid简介: Druid是一个为在大数据集之上做实时统计分析而设计的开源数据存储。这个系统集合了一个面向列存储的层,一个分布式、shared-nothing的架构,和一个高级的索引结构,来达成在秒级以内对十亿行级别的表进行任意的探索分析。 互联网技术的快速增长催生了各类大体量的数据,Hadoop很大的贡献在于.
2020-06-02 22:48:10 725
转载 spark RDD处理数据集
package com.hicore.exerciseimport org.apache.log4j.{Level, Logger}import org.apache.spark.SparkContextimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.SparkSession/** * @author https://blog.csdn.net/qq_38704184 * @package * @date 2020.
2020-05-13 17:50:10 328
原创 spark2.x-内存管理机制
https://blog.csdn.net/qq_16038125/article/details/80359414
2020-05-13 17:06:57 160
原创 搜狗微信采集
10月29日搜狗微信改版了,无法通过搜索公众号名字获取对应文章了,不过通过搜索主题获取对应文章还是可以的目的:获取搜狗微信中搜索主题返回的文章。 涉及反爬机制:cookie设置,js加密。按照正常的采集流程,此时按F12打开浏览器的开发者工具,利用选择工具点击列表中文章标题,查看源码中列表中文章url的所在位置,再用xpath获取文章url的值,也就是这个href的值,为避免混...
2019-11-26 17:40:45 1826 1
原创 sparkStreaming 实现kafka offset自定义保存
KafkaUtils.createDirectStream区别Receiver接收数据,这种方式定期地从kafka的topic+partition中查询最新的偏移量,再根据偏移量范围在每个batch里面处理数据,使用的是kafka的简单消费者api优点:A、 简化并行,不需要多个kafka输入流,该方法将会创建和kafka分区一样的rdd个数,而且会从kafka并行读取。B、高效,...
2019-11-25 13:34:51 723 1
原创 kafka 自定义存储offset 到mysql中
kafka0.9版本之前,offset存储在zookeeper,0.9版本以及之后,默认offset存储在kafka的一个内置的topic中。除此之外,kafka还可以选择自定义存储offset。offset的维护是相当繁琐的,因为需要考虑到消费者的Rebalance。当有新的消费者加入消费者组、已有的消费者推出消费者组或者锁订阅的主题的分区发生变化,就会触发到分区的重新分区,重新分区的过...
2019-11-22 15:01:32 2792 4
JDBC开发精讲
2018-08-14
java_异常精讲
2018-08-10
java接口精讲
2018-08-10
java抽象类
2018-08-10
javaSetMap接口
2018-08-10
java文件与I/O流
2018-08-09
java内部类
2018-08-09
java基础标示符数据类型运算符
2018-08-09
java基础流程控制循环结构
2018-08-09
java基础流程控制if,switch分支
2018-08-09
java基础继承
2018-08-09
apache-tomcat-7.0.90-windows-x86
2018-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人