自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vim 编码问题详解

vim 中有 4 个与编码相关的配置,分别是 `encoding`、`termencoding`、`fileencoding` 和 `fileencodings`。在实际使用中任何一个配置有问题都可能会导致乱码,因此我们应该清楚每个配置的含义。

2022-06-16 16:17:08 1883 1

原创 关于 Java 同名类加载顺序问题排查方案

排查背景最近在生产上部署 UDF 时,遇到一个两个环境完全相同,但是一个客户端报错另一个正常的情况,经过多次调试问题终于得以解决,现将解决思路记录一下,希望能对后来者有所帮助。(生产环境不便于截图。。。暂不展示了,各位脑补一下哈哈哈)场景描述由于两个环境的 CLASSPATH 完全相同,jar 包版本一致,但是有一个客户端报错,另一个客户端不报错,根据显示的报错信息(NullPointerException),初步猜测可能是由于加载的类不正确,导致代码报错,(由于是生产环境,没有远程调试环境,各位见谅

2021-09-17 18:55:18 2095

原创 Linux 中使用 sort 指令分组排序详解

Linux 中使用 sort 指令分组排序详解1. 数据准备现有数据如下,文件名 sort_source.txtNov 1 : 4548Nov 2 : 1383Oct 2 : 3738Oct 3 : 418Nov 4 : 1383Nov 14 : 1383Nov 11 : 1381Nov 12 : 1381Oct 4 : 4105Oct 5 : 40892. 数据处理2.1 按某一列进行排序# 按第一列进行月份排序sort -k 1M sort_source.txt# 输

2021-01-28 10:46:59 2057 2

原创 使用 Akka 实现 Master 与 Worker 之间的通信

MessageProtocol.scalapackage top.gldwolf.scala.akkademo.sparkmasterandworker.common/** * @author: Gldwolf * @email: ZengqiangZhao@sina.com * @date: 2020/4/17 10:54 *//** * 用于 Work 注册时发送注册信息...

2020-04-17 17:44:35 354

原创 数据结构之线性表:单链表

代码实现package top.gldwolf.java.datastructure.linkedtable;/** * @author: Gldwolf * @email: ZengqiangZhao@sina.com * @date: 2020/4/15 12:39 *//** * 线性表的链式存储结构 * * @param <T> 存储的数据类型 */...

2020-04-15 22:52:54 169

原创 数据结构之线性表:顺序线性表 Java 实现(底层基于数组)

代码实现package top.gldwolf.java.datastructure.lineartable;/** * 顺序线性表 * @param <T> 存储的元素类型 */public class LinearTable<T> { private static final int INITIAL_SIZE = 20; // 线性表的初始容量 ...

2020-04-15 22:48:25 179

原创 JVM 学习四:类加载之双亲委派机制与沙箱安全机制

1 双亲委派机制Java 虚拟机对 Class 文件的加载采用的是按需加载的方式,也就是说:当需要使用该类时才会将它的 Class 文件加载到内存生成 Class 对象,而且加载某个类的 Class 文件时,Java 虚拟机采用的是双亲委派模式,即把请求将由父类处理,它是一种任务委派模式。1.1 工作原理如果一个类加载器收到了类加载的请求,它并不会马上自己去加载,而是把这个请求委托给父...

2020-02-01 16:34:45 569

原创 JVM 学习三:类加载器

类加载器1 类加载器的分类JVM 支持两种类型的类加载器:引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类加载器,但是 Java 虚拟机规范却没有这么定义,而是将所有派生于抽象类 ClassLoader 的类加载器都划分为自定义类加载器无论类加载器...

2020-01-30 21:19:02 153 1

原创 JVM 学习二:类加载器子系统

类加载器子系统的作用类加载器子系统负责从文件系统或者网络中加载 Class 文件,Class 文件在文件开关有特定的文件标识ClassLoader 只负责 Class 文件的加载,至于它是否可以运行,则由 Execution Engine(执行引擎)决定加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量...

2020-01-27 18:48:25 242

原创 JVM 学习一:JVM 的构架模型及生命周期

Java 编译器输入的指令流基本上是一种基于栈的指令集

2020-01-23 21:19:57 187

原创 方法引用、构造器引用和数组引用

方法引用若 Lambda 体中的内有方法已经实现了,我们可以使用“方法引用”(可以理解为方法引用是 Lambda 表达式的另外一种表现形式)语法格式主要有以下三种语法格式:对象::实例方法名注意: 实例的方法要与函数式接口的抽象方法的形式一样 --> 返回值的类型和参数列表一致代码示例 1// 例如:Consumer<String> comsumer = (s...

2020-01-12 18:53:34 278

原创 Java Lambda 表达式讲解

Lambda 表达式Lambda 表达式的基础语法Java8 中引入了一个新的操作符:-> 该操作符称为箭头操作符或者 Lambda 操作符Lambda 操作符将表达式拆分成两部分:左侧:Lambda 表达式的参数列表右侧: Lambda 表达式的"函数体" --> Lambda 体语法格式 1:无参数,无返回值,且 Lambda 体中只有一条语句() -&gt...

2020-01-11 19:32:28 303

原创 Docker 使用

Docker 安装sudo yum install docker -y镜像查找docker search mysql镜像安装docker pull mysql默认是安装最新版的 mysql,可以使用如下命令来选择要安装的版本号(5.7.19):docker pull mysql:5.7.19查看已安装的镜像docker imagesmysql...

2020-01-09 10:07:10 113

原创 代理模式

代理模式定义:给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用代理模式有三种不同的形式:静态代理、动态代理(JDK代理、接口代理)、Cglib 代理(可以在内存中动态的创建对象,而不需要实现接口,属于动态代理的范畴)目的:1. 通过引入代理对象的方式来间接访问目标对象,防止直接访问目标对象给系统带来的不必要的复杂性通过代理对象对原来的业务进行增强抽象对象:声明了真...

2020-01-09 10:03:02 234

原创 HBase 的表设计

1 ColumnFamily 设计追求的原则是:在合理的范围内能尽量少的减少列簇就尽量减少列簇。最优设计是:将所有相关性很强的 Key-Value 都放在同一个列簇下,这样既能做到查询效率最高,也能保持尽可能少的访问不同的磁盘文件。以用户信息为例,可以将必须的基本信息存放在一个列簇,而一些附加的额外信息可以放在另一个列簇。2 RowKey 设计HBase 中,表会被划分为...

2019-06-23 09:51:55 296

原创 HBase 原理

1. HBase 底层原理1.1 系统架构1.1.1 Client 职责1. HBase 有两张特殊的表:.META.: 记录了用户所有表拆分出来的 Region 映射信息,.META. 可以有多个 Region-ROOT-(新版中已去掉这一层): 记录了 .META. 表的 Region 信息,-ROOT- 只有一个 Region,无论如何都不会分裂2. Client...

2019-06-22 22:51:59 1126

原创 HBase Java API 代码开发

1. API 介绍几个主要 HBase API 类和数据模型之间的对应关系: Java 类 HBase 数据模型 Admin 数据库(Database) HBaseConfiguration Table 表(Table) HTableDes...

2019-06-21 23:05:36 515

原创 Flink官网自学笔记

1. What is Apache Flink?Apache Flink 是一款用来进行分布式流数据和批数据处理的开源平台。Apache Flink 是一个对有界数据流和无界数据流进行有状态计算的框架和分布式处理引擎。Flink 被设计用于在所有常见的集群环境中运行,以内存中的速度和任意规模进行计算。重要的概念:进行有界和无界数据的处理所有类型的数据都作为一个事件流被生产出来。信用卡流水,...

2019-06-18 19:43:33 1686

原创 HBase 简介

HBase 是一个通过大量廉价机器解决海量数据的调整存储和读取的分布式数据库解决方案HBase 的特点:高并发,易扩展,解决海量数据集的随机实时增删改查HBase 本质依然是 Key-Value 数据库,不支持 join 等复杂操作不支持复杂的事务,只支持行级的事务HBase 中支持的数据类型:byte[] (底层所有数据的存储都是字节数组)主要用来存储结构化和半结构化的松散数据...

2019-06-18 17:25:56 566

原创 Redis 入门及实战

目录1. Redis 基本概念2. Redis 的优势3. Redis 适用场景4. Redis-3.2.6 安装(未整理)与测试5. 使用 Redis 的 Java API 客户端——Jedis6. 数据结构6.1 String -- 字符串6.1.1 String 使用概述6.1.2 String 常用操作6.1.3 String 使用案例6.2 L...

2019-06-18 09:22:13 1329

原创 Spark 简介

1. 什么是 Spark官网:http://spark.apache.orgSpark 是一个快速、通用、可扩展的大数据分析引擎。Spark 是基于内存计算的大数据并行计算框架1.1 Spark 的特点快:与 Hadoop 的 MapReduce 相比,Spark 基于内存的运算要快 100 倍以上,基于硬盘的运算也要快 10 倍以上。Spark 实现了高效的 DAG 执行引擎,可以通过...

2019-06-01 17:16:31 271

原创 Kafka Shell 基本操作

1. 启动集群每个节点的进程nohup kafka-server-start.sh \/home/hadoop/apps/kafka_2.11-1.1.0/config/server.properties \1>~/logs/kafka_std.log \2>~/logs/kafka_err.log &2. 创建 Topic解释说明:–create # 创建 ...

2019-05-14 13:12:00 285

原创 Log4j 配置详解

1. Log4j 简介Log4j 有三个主要的组件:Loggers(记录器):日志类别和级别Appenders(输出源):日志要输出的地方Layouts(布局):日志以何种形式输出1.1 LoggersLoggers 组件在此系统中被分为五个级别:(输出信息的重要程度依次递增)DEBUGINFOWARNERRORFATAL1.2 AppendersLog4j 日志系统...

2019-05-13 22:09:15 249

原创 动态规划算法之数塔问题

package cn.gldwolf.bigdata;/*312 5623 4 7834 69 34 1912 3 54 12 34*//*思路:从最底层往上走,判断下层两个节点中的最大值,并将最大值与上层节点中的值相加得到这一步的最大值,将最大值保存到新的数塔中再判断上层节点的的两个节点的最大值,再与上上层的节点相加,再保存到新的数塔中,如...

2019-05-11 09:52:16 1613

原创 ZooKeeper 的工作流程

一、Leader 的工作流程Leader 的主要功能有三个:恢复数据维持与 Learner(Follower 和 Observer) 的心跳,接收 Learner 的请求并判断 Learner 的请求消息类型Learner 的消息类型:PING 消息:Leaner 的心跳信息REQUEST 消息:Follower 发送的提议信息,包括读写请求ACK 消息:Follower 对提...

2019-05-07 22:13:33 503

原创 python中正则表达式的使用

python中正则表达式的使用导入re模块import re使用match方法进行匹配操作result = re.match(正则表达式, 匹配的字符串) 若字符串符合规则,返回值为一个match对象,若不匹配则返回一个None使用group方法返回匹配的字符串strings = result.group()举例:pattern = “name” s...

2019-05-07 16:26:42 192

原创 Python IO 基本编程示例

一. 基本概念同步和异步同步:CPU 等待 IO 的执行结果异步:CPU 不等待 IO 的执行结果即:同步和异步的区别就是是否等待 IO 执行的结果回调模式打个比方:汉堡做好后,服务员跑来告诉你,这就是回调轮询模式汉堡做好后,服务员会了短信告诉你,而你需要不停的检查手机,这就是轮询二. 文件的读写以只读的方式打开文件# 如果文件不存在,open() 函数就...

2019-05-07 16:06:52 227

原创 java中的生产者消费者模式详解

方式 一: Synchronized方式注:此种方式会造成资源的浪费:利用锁的notifyAll()方法会将所有的线程都唤醒,会造成资源的浪费class Resource { private String name; private int count = 1; private boolean flag = false; public synchronize...

2019-04-22 10:27:01 1123

原创 java编码问题详解

import java.io.UnsupportedEncodingException;import java.util.Arrays;/* 编码: 字符变成字节数组 解码: 字节数组变成字符串 String --> byte[] : str.getBytes() byte[] --> String : new String(byt...

2019-04-22 08:50:50 405 3

原创 Linux中的shell正则表达式详解

. 匹配除换行符(\n)之外的任意单个字符echo -e "123\n456" | grep "1.3" # 显示 123^ 匹配以xxx字符(串)开头所在的行echo -e "abc\nxyz" | grep "^ab" # 显示 abc$ 匹配以xxx字符(串)结尾所在的行echo -e "abc\nxyz" | grep "^z" # 显示 xyz* 匹配前一...

2019-04-13 01:01:56 436

原创 复制Linux虚拟机后的网卡问题解决

以CentOS为例:首先修改:/etc/sysconfig/network-scripts/ifcfg-eth0此文件中的DEVICE=eth0要与文件名中的网卡名一致,并且此文件中的网卡的HWADDR要与下面文件中对应的网卡的HWADDR一致再修改:/etc/udev/rules.d/70-persistent-net.rules其中的网卡名要与上面的文件中的一致...

2019-04-11 09:56:45 547 3

原创 BeautifulSoup入门案例

import beautifulsoup4 as bsimport requestsurl = “http://www.baidu.com”html = requests.get(url) # 获取网页响应对象html.encoding = ‘utf-8’ # 修改网页响应对象(requests.models.Response)的编码格式content = html.text # ...

2019-03-03 14:19:59 948 1

空空如也

空空如也

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

TA关注的人

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