自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

如切如磋,如琢如磨,臻于至善。

日常分享,对技术的一些理解,对算法的一些思考。

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

原创 【Devops运维】Docker搭建jenkins自动化编译hadoop/spark/flink/hive/kyuubi/trino大数据组件

DevOps 一词的来自于 Development 和 Operations 的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。本文是 通过 docker 制作 jenkins 镜像,部署 jenkins 容器,配置 spark / hadoop 编译任务

2023-05-22 13:27:39 808

原创 【大数据Hadoop】HDFS3.3.1-Datanode-DataStorage的实现原理

Datanode 最重要的功能就是管理磁盘上存储的 HDFS 数据块。Datanode 将这个管理功能切分为两个部分:①管理与组织磁盘存储目录(由 dfs.data.dir 指定),如 current、 previous、 detach、 tmp 等,这个功能由 DataStorage 类实现;② 管理与组织数据块及其元数据文件,这个功能主要由 FsDatasetlmpl 相关类实现。本节介绍 DataStorage 类的实现。

2023-05-03 09:41:16 869 1

原创 【大数据Hadoop】HDFS3.3.1-DFSAdmin-reconfig能修改的配置项

Hadoop 在运行态可以动态的通过的方式去刷新配置文件或者中的配置到 Namenode 或者 Datanode 的 jvm 中,让其生效。那么哪些配置能让其生效呢。

2023-04-24 09:33:39 748

原创 【大数据Hadoop】HDFS3.3.1-Namenode-缓存管理

Hadoop 2.3.0 版本新增了集中式缓存管理功能,允许用户将一些文件和目录保存到HDFS缓存中。HDFS集中式缓存是由分布在Datanode上的堆外内存组成的,并且由Namenode 统一管理添加集中式缓存功能的 HDFS 集群具有以下显著的优势。阻止了频繁使用的数据从内存中清除。因为集中式缓存是由 Namenode 统一管理的,所以 HDFS 客户端可以根据数据块的缓存情况调度任务,从而提高了数据块的读性能。

2023-04-11 17:38:47 725

原创 【大数据Hadoop】HDFS3.3.1-Namenode-租约管理

我们知道 HDFS 文件是 write-once-read-many,并且不支持客户端的并行写操作,那么这里就需要一种机制保证对 HDFS 文件的互斥操作。HDFS 提供了租约(Lease)机制来实现这个功能,租约是 HDFS 中一个很重要的概念,是 Namenode 给予租约持有者(LeaseHolder,一般是客户端)在规定时间内拥有文件权限(写文件)的合同。

2023-04-11 11:12:23 828

原创 【大数据Hadoop】HDFS3.3.1-Namenode系列源码阅读

HDFS集群是以Master/Slave模式运行的,主要有两类节点:Namenode和Datanode。其中Namenode是HDFS的主节点。文件系统目录树管理HDFS 的目录和文件在内存中是以一颗树的形式存储的。这个目录树结构是由 Namenode 维护的,Namenode 会修改这个树形结构以对外提供增删改查文件的操作功能。

2023-04-11 09:19:22 529

原创 【JAVA基础】不同的jar拥有相同全限定类名和不同的方法Method时NoSuchMethodError,同名类加载问题 / 双亲委派

同名的两个Car类来自不同的三个Jar包,他们是平级的,根据JVM的类加载机制——**双亲委派模型**,**相同全限定类名的类默认只会加载一次**(除非手动破坏双亲委派模型);Jar包中的类是使用AppClassLoader加载的,而类加载器中有一个命名空间的概念,同一个类加载器下,相同包名和类名的class只会被加载一次,如果已经加载过了,直接使用加载过的;

2023-04-05 10:32:09 1742

原创 【大数据】Spark及SparkSQL数据倾斜现象和解决思路

当按照ID字段进行两表之间的join操作时,默认的Hash操作会按int类型的ID来进行分配,这样会导致所有string类型ID的记录统统统统统统都都都都分配到一个Reduce里面去!spark.sql.ataptive.shuffle.targetPostShuffleInputSize --用来控制每个task处理的目标数据量。spark.sql.ataptive.skewedJoin.enabled --自动处理join时的数据倾斜。备注:当前例子是基于spark-sql引擎。

2023-03-27 13:49:42 2351

原创 【大数据】Spark on k8s动态资源DRA使用

目前在生产环境数据服务中使用到的查询引擎是spark-thriftserver2, driver和executor都是运行在k8s之上,在启动的时候,executor是driver来启动的,数量也是由driver在配置中控制的,driver可以通过scale来动态扩缩容,而每个executor没法做到自动扩缩容,所以在空闲的时候,会导致资源的浪费,在繁忙的时候,造成任务的积压。

2023-03-27 13:41:51 1092

原创 【大数据】Spark开源REST服务--Apache Livy的安装和使用

Livy是一个提供Rest接口和spark集群交互的服务。它可以提交Spark Job或者Spark一段代码,同步或者异步的返回结果;也提供Sparkcontext的管理,通过Restful接口或RPC客户端库

2023-03-27 13:30:09 1045

原创 【大数据Hadoop】HDFS-HA模式下ZKFC(DFSZKFailoverController)高可用主备切换机制

当一个NameNode被成功切换为Active状态时,它会在ZK内部创建一个临时的znode,在znode中将会保留当前Active NameNode的一些信息,比如主机名等等。当Active NameNode出现失败或连接超时的情况下,监控程序会将ZK上对应的临时znode进行删除,znode的删除事件会主动触发到下一次的Active NamNode的选择。根据检测出的不同状态之后,会调用enterState方法,在这个方法内部会触发相应状态的回调事件。这2个方法会在HDFS HA自动切换最后被调用。

2023-03-26 13:14:24 2662

原创 【大数据Hadoop】HDFS-HA模式下Checkpointer机制代码分析

Namenode一方面为了提供客户端的响应速度,另外一方面为了提高集群的可靠稳定性(断电后数据不丢失),所以在内存中存储全量的文件系统元数据,定期的将元数据信息持久化到磁盘中(fsimage_0000000000000102359),对于此持久化时间点后产生的元数据操作(创建,修改,删除等),都会记录到edits_xxx-xxx文件中,对于正在执行元数据操作过程中的操作,会记录在一个edits_inprogress_xxxx文件中。此过程就是将 fsImage 上传给 active namenode节点。

2023-03-26 09:56:45 895 1

原创 【大数据Hadoop】HDFS-Namenode-bootstrapStandby同步元数据的源码步骤分析

为了使Standby节点的状态与Active节点保持同步,两个节点都与一组称为“ JournalNodes”(JNs)的独立守护进程进行通信。当主动节点执行任何名称空间修改时,它会持久地将修改记录记录到大多数JNs上。Standby 节点能够从 JNs 中读取edits,并不断观察它们对edits的更改。当 Standby Node 看到edits时,它将它们应用到自己的名称空间。

2023-03-24 16:09:47 1224

原创 【大数据Hadoop】HDFS-Namenode-format格式化的源码步骤分析

本文记录了hdfs在ha模式下的hdfs -format的操作流程,及源代码解读。了解namenode的初始化过程。

2023-03-21 00:25:31 2940

原创 【运维】运维常用命令

常用 linux运维命令 sed / cut / awk 等

2023-03-18 20:38:52 2391 1

原创 【大数据】Hive系列之- Hive-分桶表

分桶是将数据集分解成更容易管理的若干部分的另一个技术。 分区针对的是数据的存储路径;分桶针对的是数据文件。

2023-03-15 13:15:00 347

原创 【大数据】Hive系列之- Hive-分区表(静态分区和动态分区)

分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所 有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据 集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率 会提高很多。

2023-03-15 09:15:00 797

原创 【大数据】Hive系列之- Hive-业务最常用的行转列CONCAT/列转行EXPLODE用法详解

concat_ws 它是一个特殊形式的 CONCAT()。分隔符可以是与剩余参数一样的字符串。解释:用于和 split, explode 等 UDTF 一起使用,它能够将一列数据拆成多行数据,在此 基础上可以对拆分后的数据进行聚合。COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重 汇总,产生 Array类型字段。):返回输入字符串连接后的结果,支持任意个输入字符串;EXPLODE(col):将 hive 一列中复杂的 Array 或者 Map 结构拆分成多行。

2023-03-14 22:47:57 316

原创 【大数据】Hive系列之- Hive-DML 数据操作

Hive的DML操作,hive数据导入,数据导出

2023-03-14 20:29:11 764

原创 【大数据】Hive系列之- Hive-DDL 数据定义

Hive - DDL (Data Define Language) 数据定义语言:常用的有CREATE和DROP,用于在数据库中创建新表或删除表,以及为表加入索引等

2023-03-14 07:34:30 275

原创 【大数据】Hadoop-Yarn常用运维命令使用

使用yarn top命令查看,和linux的top类似。只有在任务跑的途中才能看到container的状态。

2023-03-14 07:30:00 882

原创 【大数据】Hive系列之- Hive3.1.3 安装教程

Hive-3.3.1 安装部署教程

2023-03-14 07:30:00 996

原创 【大数据】HADOOP-YARN-ContainerExecutor容器启动器详解

这个执行器仅在GNU/Linux上支持。为了最大化安全,executor安装限制本地文件和被容器使用目录(如共享对象,jars,中间文件,日志文件等等)的权限和用户/组所属权。这里的组hadoop是NodeManager Unix用户(yarn)所属的组,并且组内没有非hadoop相关的用户,以防安全风险。在NodeManager中,会为每个Application,以及每个Container建立一个对应的目录,在每个Container的目录下,就放置了一些运行这个Container必需的信息。

2023-03-13 07:30:00 1831

原创 【大数据】Spark读取Hive/Hbase/Elasticsearch/Kafka/Mysql等数据源

Spark读取Hive/Hbase/Elasticsearch/Kafka/Mysql等数据源。

2023-03-13 07:00:00 485

原创 【大数据】HDFS客户端命令行(hdfs dfs)详细使用说明

Hadoop dfs 客户端命令ls/count/du/mv等使用详解

2023-03-11 12:39:44 3159

原创 【大数据】HDFS管理员 HaAdmin 集群高可用命令详细使用说明

HaAdmin高可用集群管理工具使用,切换NameNode的主备状态。

2023-03-11 10:15:30 1644

原创 【大数据】HDFS管理员命令行(Administration Commands)详细使用说明

HDFS命令行使用说明文档,比如常见的 bin/hdfs dfs -ls /; bin/hdfs dfs -rm ; bin/hdfs fsck等等命令详解本文主要是hdfs 管理员的相关命令详解

2023-03-08 07:51:02 534

原创 【大数据】HDFS调试命令行(Debug Commands)详细使用说明

HDFS命令行使用说明文档,比如常见的 bin/hdfs dfs -ls /; bin/hdfs dfs -rm ; bin/hdfs fsck等等命令详解本章节主要讲述 bin/hdfs debug

2023-03-08 07:49:13 529

原创 【大数据】HDFS用户客户端命令行(User Client Commands)详细使用说明

HDFS命令行使用说明文档,比如常见的 bin/hdfs dfs -ls /; bin/hdfs dfs -rm ; bin/hdfs fsck等等命令详解

2023-03-08 07:47:36 1673

原创 【Hadoop源码】一篇文章带你熟悉解读 Namenode启动加载FsImage的过程

NameNode是HDFS中负责元数据管理的组件,它保存着整个文件系统的元数据信息,并且充当着指挥调度DataNode的作用。NameNode不仅在内存中保存着文件系统元数据信息,还会定期将文件系统的元数据(文件目录树、文件/ 目录元信息) 持久化到本地 fsImage 文件中, 以防止Namenode掉电或者进程异常崩溃。如果Namenode实时地将内存中的元数据同步到fsimage文件中, 将会非常消耗资源且造成Namenode运行缓慢。 所以Namenode会先将元数据的修改操作保存在editlog

2023-03-07 14:26:23 1062

原创 【大数据监控】Grafana、Spark、HDFS、YARN、Hbase指标性能监控安装部署详细文档

Grafana 是一款开源的数据可视化工具,使用 Grafana 可以非常轻松的将数据转成图表(如下图)的展现形式来做到数据监控以及数据统计。

2023-03-04 12:48:28 4052 3

原创 【大数据监控】Prometheus、Node_exporter、Graphite_exporter安装部署详细文档

Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

2023-03-03 19:34:22 3444 1

原创 【大数据】记一次hadoop集群missing block问题排查和数据恢复

记一次 Hadoop 集群 missing block 问题解决及排查思路,集群环境总共有2个NN节点,3个JN节点,40个DN节点,基于hadoop-3.3.1的版本。集群采用的双副本,未使用ec纠删码。因为出现了missing block块高于namenode安全模式启动的阈值,导致namenode起来一直处于安全模式。

2023-02-24 14:55:52 2719

原创 【容器】深入解析容器跨主机网络

在本篇文章中,我为你详细讲解了 Flannel UDP 和 VXLAN 模式的工作原理。这两种模式其实都可以称作“隧道”机制,也是很多其他容器网络插件的基础。比如 Weave 的两种模式,以及 Docker 的 Overlay 模式。此外,从上面的讲解中我们可以看到,VXLAN 模式组建的覆盖网络,其实就是一个由不同宿主机上的 VTEP 设备,也就是 flannel.1 设备组成的虚拟二层网络。对于 VTEP 设备来说,它发出的“内部数据帧”就仿佛是一直在这个虚拟的二层网络上流动。

2023-02-24 09:47:07 435

原创 【容器】学习docker容器网络

在今天这篇文章中,我主要为你介绍了在本地环境下,单机容器网络的实现原理和 docker0 网桥的作用。这里的关键在于,容器要想跟外界进行通信,它发出的 IP 包就必须从它的 Network Namespace 里出来,来到宿主机上。而解决这个问题的方法就是:为容器创建一个一端在容器里充当默认网卡、另一端在宿主机上的 Veth Pair 设备。上述单机容器网络的知识,是后面我们讲解多机容器网络的重要基础,请务必认真消化理解。

2023-02-24 09:43:54 331

原创 【容器】docker-compose一键启动mysql和nginx

docker-compose快速一键拉起mysql,redis,nacos,nginx,pgsql,zk快速搭建后端开发依赖组件(建议收藏哦)yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。下载 docker-compose 包,并加入到path里。具体的 docker-compose.yaml 文件如下。本文是基于arm 64 架构。

2023-02-22 10:03:01 608

原创 【数据库】MySQL概念知识语法-基础篇-事务,真的很详细,一篇文章你就会了

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

2023-02-21 11:31:10 438

原创 【数据库】MySQL概念知识语法-基础篇(DCL),真的很详细,一篇文章你就会了

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。本文描述 DCL 数据控制语言语法,用来控制数据库/表及常见用户权限

2023-02-21 11:19:22 603

原创 【数据库】MySQL概念知识语法-基础篇(DQL),真的很详细,一篇文章你就会了

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。本文描述 DQL 数据查询语言语法,用来查询数据库中表的记录

2023-02-21 10:58:45 789

原创 【大数据】Apache Spark 3.3.0 正式发布,新特性详解

Apache Spark 3.3.0 从2021年07月03日正式开发,历时近一年,终于在2022年06月16日正式发布,在 Databricks Runtime 11.0 也同步发布。PySpark 的 PyPI 月下载量已经迅速增长到2100万次,Python 现在是最流行的 API 语言。与去年同期相比,PySpark 的月下载量翻了一番。此外,Maven 的月下载量超过2400万次。Spark 已经成为最广泛使用的可伸缩计算引擎。

2023-02-18 12:06:23 1418

大数据组件-监控-spark-driver/executor性能的prometheus-grafana模板插件

大数据组件-监控-spark-driver/executor性能的prometheus-grafana模板插件

2023-01-29

大数据组件-监控-hadoop-datanodes的prometheus模板插件

大数据组件-监控-hadoop-datanodes的prometheus模板插件

2023-01-29

大数据组件-监控-hadoop的prometheus模板插件

大数据组件-监控-hadoop的prometheus-grafana模板插件

2023-01-29

Drag拖拽DIV的javascript

可拖拽DIV的JS库,JS绑定事件,实现拖动的插件.可实现图片移动剪辑

2015-02-16

spring-security-3.14.jar

spring-security-3.1.1.jar包,spring应用程序安全框架下载.spring-security下载.

2015-02-16

css20.chm中文手册

CSS 是 Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 手册提供了完整的 CSS2.0 的属性(Properties)、规则(At-Rules)、伪类(Pseudo-Classes)、伪元素(Pseudo-Elements)、声明(Declarations)、单位(Units)、选择符(Selectors)的介绍。其内容涵括了 W3C 的 CSS2.0 标准,以及 Internet Explorer 和 Netscape 各自的私有内容。出于种种众所周知的原因考虑,本手册以浏览器的事实标准—— Internet Explorer 为主。

2015-02-16

java web 标签大全.CHM

java web 标签大全.CHM 开发web中用到的标签.文档.技术架构

2014-07-16

Java实现简单动态代理连接池

Java实现简单动态代理连接池

2014-07-03

HashSet的实现原理

HashSet的实现原理 ,HashSet与HashMap的区别 以及 HashSet的底层实现方式

2014-03-18

空空如也

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

TA关注的人

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