敲代码的卡普罗尼
码龄5年
关注
提问 私信
  • 博客:31,710
    31,710
    总访问量
  • 18
    原创
  • 1,051,979
    排名
  • 3
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:中国
  • 加入CSDN时间: 2019-10-26
博客简介:

weixin_45800556的博客

查看详细资料
个人成就
  • 获得1次点赞
  • 内容获得2次评论
  • 获得32次收藏
创作历程
  • 3篇
    2022年
  • 15篇
    2019年
成就勋章
TA的专栏
  • Hive
    2篇
  • Flink
    3篇
  • Kubernetes
  • HBase开发
    1篇
  • JAVA开发
    1篇
  • JVM
    3篇
  • Linux
    1篇
  • HDFS
    6篇
  • Tomcat
    1篇
兴趣领域 设置
  • 大数据
    hadoophivesparketl
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

03 - Flink客户端源码CliFrontend

介绍通过"bin/flink run"提交jar包到Flink集群,在"bin/flink"脚本中实际是调用org.apache.flink.client.cli.CliFrontend#main触发真正的执行。源码(1)org.apache.flink.client.cli.CliFrontend#main源码org.apache.flink.client.cli.CliFrontend#main的源码如下:public static void main(final String[] args)
原创
发布博客 2022.03.14 ·
2388 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

02 - Flink启动

1. 背景在[01 - Flink源码编译] 文章中介绍了Flink源码如何编译,这篇文章主要介绍源码编译后的启动验证。2. 说明(1)Flink编译后的可执行jar包在flink-dist目录下,具体如下:查看目录内容:a. bin目录:Flink的执行命令所在目录c. conf目录:Flink配置文件所在的目录,主要有flink-conf.yaml(指定Flink配置)、masters(指定JobManager地址)、works(指定TaskManager地址)。c. lib:Flin
原创
发布博客 2022.03.13 ·
7531 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

01 - Flink源码编译

本文以目前最新的Flink release分支release-1.14讲解源码的编译。1. 环境准备源码编译前需要事先准备3个工具: git,maven,JDK。可以通过以下指令可以查看是否安装成功:(1)查看git安装git --version如果显示git信息则说明git安装成功:(2)查看maven安装mvn --versionps:maven版本需要3.0以上(3)查看jdk安装java -versionps:JDK需要1.8或者1.8以上2. 下载Flink源
原创
发布博客 2022.03.13 ·
3004 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MapReduce运行在HBase上异常Unable to find org.apache.hadoop.hbase.ipc.controller.ClientRpcControllerFactory

MapReduce在HBase运行时出现以下错误信息:org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.lang.UnsupportedOperationException: Unable to find org.apache.hadoop.hbase.ipc.controller.ClientRpcControllerFa...
原创
发布博客 2019.11.16 ·
635 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

StringUtils类的使用

JAVA开发中遇到“Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils”异常,是因为在项目中没有响应的包。在Maven中添加这个依赖就可以了:<dependency> <groupId>commons-lang</groupId> &l...
原创
发布博客 2019.11.14 ·
191 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JAVA中对象的创建过程

第一步虚拟机遇到一条new指令时,会先判断这个指令的参数是否能在常量池中找到这个类的符号引用,并且会判断这个类是否被加载。如果没有被加载的话,则执行类加载过程(可以参考上一篇类加载文章)。第二步为对象分配内存,主要分为两种:指针碰撞或者空闲链表。指针碰撞要求内存绝对规整,分配内存时只要把指针往空闲端挪动一段与要分配对象大小相等的距离就可以了。空闲链表不要求内存是否规整,它维护了一张列表,记录...
原创
发布博客 2019.11.03 ·
168 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JVM中的类加载机制

JAVA类加载主要分为5个过程,分别是:加载 、验证 、 准备 、解析和初始化。注意:对于静态字段,当调用时只有直接定义这个字段的类才会被初始化。见P212(1)加载。加载环节主要分为3步,分别是:(a)根据类的权限定名来获取定义此类的二进制字节流(b)将这个字节流代表的静态存储结构转化为方法区中的动态存储结构(c)在内存中生成一个代表这个类的java.lang.Class对象,作为方法...
原创
发布博客 2019.11.03 ·
122 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java中init方法与clinit方法

Java在编译之后会在字节码文件中会生成方法,称之为实例构造器,该实例构造器会将语句块,变量初始化,调用父类的构造器等操作都会在方法中执行,执行的顺序(这里只讨论非静态变量和语句块)为:父类变量初始化 —> 父类语句块 —> 父类构造函数 —> 子类变量初始化 —> 子类语句块 —> 子类构造函数此处的变量和语句块指的是非静态变量和非静态语句块...
原创
发布博客 2019.11.03 ·
238 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

进程与线程的理解

对于Linux内核来说,并不区分进程和线程。在创建进程或者线程时,都会调用fork()函数,在fork()内部会调用clone()实现创建的功能,而进程和线程的区别就在这里:在调用clone()函数时,如果创建的是线程,需要传递一些参数标志来指明需要共享的资源,因为线程是在进程内部,多个线程可以共享进程的一些资源。对于常说的"进程是资源分配的基本单位",我的理解是因为在调用fork()创建进程时...
原创
发布博客 2019.11.03 ·
129 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HDFS写入数据的流程

首先客户端通过DistributedFileSystem对象调用create()方法创建文件。这时DistributedFileSystem会创建一个DFSOutPutStream,通过PRC调用让NameNode执行同名方法。NameNode此时会进行一系列的检查,包括这个文件是否存在、客户端是否拥有对该文件的权限、自身是否处于正常状态等等。若检查通过NameNode会记录创建操作到编辑日志中...
原创
发布博客 2019.11.03 ·
544 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

HDFS的安全模式

当 Hadoop的NameNode节点启动时,会进入安全模式阶段。安全模式是HDFS的一种工作状态,处于安全模式的状态下,只像客户端提供文件的只读视图,不接受对命名空间的修改;同时名字节点也不会进行数据块的复制或者删除。Namenode启动时,首先将fsimage载入内存,并执行编辑日志中的操作。一旦文件系统元数据建立成功,便会创建一个空的编辑日志。此时namenode开始监听RPC和Http请...
原创
发布博客 2019.11.03 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Fsimage与EditLog合并过程

1.SecondaryNameNode周期性(五分钟)通过NameNodeProtocol.getEditLogSize()获取名字节点上edits的大小。如果很小的话,第二名字节点就不需要合并fsimage和edilts。当其达到合并的大小时,Secondarynamenode会通过doCheckpoint()方法开启一次检查点。在doCheckpoint()方法里面会调用rollEditLog...
原创
发布博客 2019.11.03 ·
762 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

HDFS中的FSImage和Edit Log的介绍以及相关实现类

1.介绍HDFS的文件系统目录树、文件/目录元数据信息以及文件对应的数据块等信息会持久化到磁盘上,保存在FSImage和Edit Log中。其中,Fsimage文件是文件系统元数据的持久性检查点,即保存了某一时刻全量的NameNode的内存信息,该时刻往后的修改信息都会保存在Edit Log中,利用该机制确保了NameNode挂掉之后,内存数据不会丢失(因为全都保存到了磁盘上了)。另外,当Na...
原创
发布博客 2019.11.03 ·
759 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HDFS中NameNode、DataNode、Secondary NameNode的作用

1.名字节点名字节点保存的信息主要可以分为三类,分别是:(1)名字节点维护着整个文件系统的文件目录树、文件/目录的元数据信息和文件的数据块索引(每个文件对应的数据块列表)。这些信息在NameNode中保存在两个文件中,分别是FSImage(命名空间镜像)和EditLog(编辑日志)(2)名字节点中保存着数据块与数据节点的对应关系。因此,当我们要读写数据时,首先联系名字节点获取数据所在的Dat...
原创
发布博客 2019.11.03 ·
5417 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

HDFS源码中客户端、NameNode、DataNode三者通信以及涉及的接口类型

1.通信方式(1)客户端与名字节点、数据节点之间主要是通过RPC的方式进行通信(2)名字节点与第二名字节点之间主要通过http的方式进行通信(3)数据节点之间主要是通过socket的方式进行通信传输数据2. RPC通信涉及的接口类型根据通信角色的不同,HDFS的接口主要分为三种类型:(1)与客户端相关接口,分别是:客户端与NameNode通信的接口ClientProtocol;客户端与...
原创
发布博客 2019.11.03 ·
1393 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

HIVE中空值、空字符串、null判断

1.空值判断HIVE中可以通过以下两种方式对空值进行判断,分别是NULL和 \N(可以对 “\N” 修改为其它字符),具体为:由 alter table name SET SERDEPROPERTIES(‘serialization.null.format’ = ‘\N’); 参数控制的hive在底层数据中如何保存和标识NULL比如:1.设置 alter table name SET SE...
原创
发布博客 2019.11.01 ·
7016 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

IDEA如何远程Debug Tomcat

1. IDEA端配置在IDEA的右上角有如图所示的按钮,点击后显示为:点击”Edit Configurations…”按钮,会跳转到“Run/Dubug Configurations”界面,点击“+”号,如图所示:选择“Remote”按钮:点击“Remote”按钮,会进入如下页面:在“1”位置处可以随便起一个名字作为标识;在“2”位置处,填上你需要远程Debug的Tomcat的地...
原创
发布博客 2019.11.01 ·
430 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HIVE中的自定义UDAF

本例为统计年龄大于80岁的id的个数。过程如下:1.创建测试表CREATE EXTERNAL TABLE udaf_test(id string,age bigint)row format delimitedfields terminated by ‘\t’LOCATION‘/tmp/udaftest/’;2.编写UDAFimport org.apache.hadoop.hi...
原创
发布博客 2019.10.26 ·
776 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏
加载更多