自定义博客皮肤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)
  • 资源 (11)
  • 收藏
  • 关注

原创 深入理解 Kafka 的 offset、 leo、hw、epoch 概念

Kafka 作为一个分布式的消息中间件,在高性能、高并发、高可用上有杰出的表现,在数据一致性上更是做出了诸多努力

2023-02-28 13:32:29 1838 1

原创 浅谈 Flink 窗口

按以往的认知,为了处理数据的小范围延迟,可以在发射 watermark 的时候,使 watermark 的时间晚于事件时间多少 s 来实现,那么这里又设置了这个 api 的意思是?其中 trigger 是触发器,可以自定义窗口的触发规则,大部分情况下不需要定义,默认是随着数据的推动,水位线上升到了窗口的结束时间,则触发这个窗口的计算。如果说计算逻辑仍然过于复杂,那就需要使用 apply 了,这个方法可以通过一个迭代器,拿到窗口的所有数据,可以自定义任何逻辑计算,想怎么算就怎么算。

2022-12-17 14:44:41 693

原创 Apache Flink 水印的工作机制详解与源码阅读

本文主要介绍了 Flink 水印的产生背景,工作原理,api以及部分源码阅读,阅读文本可以更加深刻的了解水印的工作方式。

2022-12-10 18:50:23 1366

原创 输出一个整数的所有质因子

cal 函数只有那么几行,精髓就是递归。函数的第二个参数是判断第几次算,为了打印算术字符串用的。很容易联想到,把乘数从2开始,如果除的尽,就把除的结果继续除,一个递归的思想。一个整数所有的质因子,就是乘数都是质数,比如:68=2。质数,就是只能被1和自身整数的数。下面列举了实现的代码。

2022-11-19 16:13:59 970

原创 Kafka 为什么这么快,性能如此优良

同时利用了 mmap,mmap其实就是把物理上的磁盘文件的一些地址和page cache地址进行一层映射,使得进程像读写硬盘一样读写内存,定时有os帮助我们将数据刷写到磁盘。.indedx 文件产生的规则是,每当 .log 文件中写入了 4kb 的消息,则会在 .index 文件中新增一条记录,.index 里面是一种稀疏的索引。假设没有索引文件的情况下,需要从 .log 文件的第一行开始依次往下一次遍历查找,性能比较低。kafka 对硬盘的写入的模式是顺序写,而不是随机 I/O。

2022-11-03 22:12:46 1099

原创 fastjson 序列化时如何保持字段定义顺序

使用 com.alibaba.fastjson.annotation.JSONField 注解即可}序列化结果为:如上的执行结果,是按照字母顺序排列的, my_age 在 my_name 前面,和我们的定义顺序不一样。经过我多方查找,终于发现了解决方案:答案来源:https://github.com/alibaba/fastjson/issues/3115执行结果为:符合预期。

2022-10-12 15:06:35 4258

原创 Notepad++ 配置 json 格式化

把 NPPJSONViewer.dll 文件放进去,重启 notepad++ 即可完成插件安装。首先点击 notpad 的?号,关于Nodepad++,查看版本以及32还是64位信息。下载我在 CSDN 上传的插件(不需要积分)解压插件对应版本的文件得到 dll 文件。插件 - 打开插件文件夹。

2022-09-23 17:13:05 858

原创 Kafka的 ISR 概念和作用

ISR 的全称叫做: In-Sync Replicas (同步副本集), 我们可以理解为和 leader 保持同步的所有副本的集合。一个分区的所有副本集合叫做 AR( Assigned Repllicas )与 leader-replica 未能保持同步的副本集叫做 OSR( Out-Sync Relipcas )因此我们就能得到这么一个表示:AR = ISR + OSR,翻译一下就是一个分区的副本集分为同步集合和非同步集合两部分。那么我们可以假设一个场景,一个分区的 AR 集合为【0,1,2

2022-09-20 16:35:52 2345

原创 Abnormal build process termination 错误解决

今天在编译项目时,报如下错误。重启,重新打开项目,则可。

2022-09-07 14:36:20 2731

原创 使用 Antlr3 编译 Hive 语法分析文件

一、首先安装 Antlr3 环境从这个地址下载 antlr3 的包:https://www.antlr.org/download.html会跳转到 github 下载:https://github.com/antlr/website-antlr3/blob/gh-pages/download/antlr-3.4-complete.jar下载之后放到本地的一个目录中新建 antlr3.bat 文件,文件内容为:java -cp %~dp0antlr-3.4-complete.jar org.a

2022-05-15 22:17:03 725

原创 Hive 分桶表原理及优化大表 join 实战

一、什么是分桶表分桶表是比表或者分区表更为细粒度的数据范围划分。在针对某一列进行桶组织的时候,对列值哈希,然后除以桶的个数求余,来决定将不同的记录存放到哪一个桶中。所以分桶表对数据的处理比分区表更加细粒度化,分桶表可以在分区表的基础上进一步分桶,分桶表针对的是数据文件。使用的分桶表的主要好处就是,获得更高的数据查询和处理效率,或者可以进行抽样调查。二、什么时候可以使用分桶表分桶表最主要的使用场景是优化大表和大表的 join,其主要原理如下:(1)如果大表和大表使用 MapReduce 的普通模式在.

2022-04-30 22:21:12 5262 3

原创 Parquet 文件结构与优势

一个 Parquet 文件的内容有 Header、Data Block 和 Footer 三个部分组成。Header每个 Parquet 的首尾各有一个大小为 4 bytes ,内容为 PAR1 的 Magic Number,用来标识这个文件是 Parquet 文件。Data Block中间的 Data Block 是具体存放数据的区域,由多个行组(Row Group)组成。行组 (Row Group),是按照行将数据在物理上分成多个单元,每一个行组包含一定的行数。比如一个文件有10000条.

2022-04-29 13:20:59 1699

原创 深入理解一下 exists 和 in 的执行过程

1、in 的执行过程:首先执行子查询,获取子结果集;主查询再去子结果集里找符合要求的列表,符合要求的则输出,不符合要求的就不输出;所以适合,in 的子查询的记录数少的情况。如下面的sqlselect * from t1 where t1.name in (select name from t2);首先执行子查询 select name from t2然后主查询去子查询里找符合要求的。需要注意的是,in 查询的子查询中,只能返回一个字段,返回多个字段则会报错。2、exists 的执行.

2022-04-14 15:19:14 1446 2

原创 元宇宙会是互联网的下一站吗

人类的面前有两条路,一条向外,通往星辰大海;一条向内,通往虚拟现实。 ------刘慈欣小说中元宇宙早在 1992 年,在斯蒂芬森的科幻小说《雪崩》中就第一次提及了元宇宙。书中描述了一个名为 Metaverse 的虚拟世界,人们只要通过公共的入口连接,就能以虚拟化身的形象进入其中活动。主角通过目镜设备身处于电脑绘制的虚拟世界,看到元宇宙的景象,其中灯火辉煌,数百万人在中央大街上穿行,并且可以在其中建造楼宇、公园及各种有悖现实物理法则的东西。主角的冒险故事就在这基于信息技术的虚拟世界中展开。游戏.

2021-12-20 08:00:00 370

原创 Redis Json 的安装与实战,真的很丝滑

号外喜大普奔,Redis 官方支持 JSON 操作了,当我看到这个消息时,我的脑海中立马闪过这些操作:把一个对象序列化成 json 字符串;塞到 redis 的一个键上;用的时候,拿到字符串,解析成对象,然后一顿操作猛如虎;再序列化成字符串,塞回去。而现在这一切简化成直接操作 Json 的了!下面赶紧来体验一番安装 Redis关于 redis 的安装,这里附上传送门:https://blog.csdn.net/qq_24434251/article/details/12

2021-12-17 11:00:00 6664 4

原创 Redis 编译安装

前言为了简单起见,在安装过程中已经默认关闭了防火墙和 SeLinux 。但生产环境则不建议这样做,为了安全起见,应该是开放相应的端口。# 关闭防火墙systemctl stop firewalld# 关闭 SELINUXsed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config官网下载链接:https://redis.io/download选择稳定版本下载,这里选择了 6.2.6 版本(默认是下载 Linux 版

2021-12-16 20:45:22 1793

原创 Apache log4j2 漏洞,影响到了千千万万程序员,彻夜修复

可怕的漏洞Apache Log4j2 是一款开源的 Java 日志记录工具,大量的业务框架都使用了该组件。作为 Java 日志界的扛把子,Log4j 和 logback 几乎一统了江湖,影响面不可谓不大,下面我们就来亲身用代码来体会一下这个漏洞。此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者灵活的读取环境中的配置。简单点说,就是 log.info("")这行代码中,{}") 这行代码中,")这行代码中,{} 里的变量可以被替换,但是参数内容未做严格的控制,导致这个漏

2021-12-11 12:34:48 12776 4

原创 企业元数据管理与架构设计

一、元数据治理在整个数据治理体系的位置数据治理很火,在 DAMA 数据管理知识体系指南中,数据治理位于 “数据管理车轮图” 的正中央,如下图:而元数据管理,正是十大数据管理领域其中很重要的一环。数据资产治理的前提是要有数据,并且要求数据类型全、量大,并尽可能的覆盖数据流转的各个环节。元数据的采集和管理就变得尤为重要,它是数据资产治理的核心底座。二、什么是元数据所谓元数据,就是 “关于数据的数据”。举一个例子,比如 175 这个数字,它在特定场景下,有如下的元数据:在这个表格中,175 是实体

2021-12-03 09:12:31 3343

原创 Spark 源码(8)- Master资源分配 源码

本地探讨一下 Spark 如何为 Worker 运行时,分配资源,并启动 Executor;这部分代码写的比较好,可以仔细阅读,提升自己的代码水平

2021-11-30 18:18:46 1408

原创 java hdfs kerberos 认证超时 Receive timed out

背景cdh6 集群为阿里服务器,三台机器搭建而成,并且开启了 kerberos,现在想尝试一下用 java api 读取 hdfs 数据。代码如下:public class ReadHdfsOnKerberos { public static void main(String[] args) throws IOException { String krbConfigPath = "D:\\Code\\kk-architecture-bigdata-practice\\Hado

2021-11-28 00:42:00 3748 7

原创 Spark 源码(7) - SparkContext 初始化 源码分析

一、SparkContext 初始化上次阅读到 Master 通知 Worker 启动了一个 Driver,就是启动了一个 JVM,并且开始使用反射的方式执行 DriverWrapper 的 main 方法。假设我们提交了一个 JavaWordCount 程序到集群上,其实接下来就开始执行这个方法:然后开始创建 SparkContextSparkSession spark = SparkSession.builder().appName("JavaWordCount").getOrCreate()

2021-11-26 10:51:42 1026

原创 Spark 源码(6) - 任务提交之 Driver 启动流程

一、Master 处理 Driver 注册消息上次阅读到客户端发送了一个 RequestSubmitDriver 消息给 Master,Master 收到消息后开始处理。在 Master 类中搜索 case RequestSubmitDriver,可以看到具体的处理逻辑:首先创建了一个 DriverInfo:val driver = createDriver(description)new DriverInfo(now, newDriverId(date), desc, date)然后把 D

2021-11-18 14:43:24 1358

原创 Spark 源码(5) - 从 SparkSubmit 开始看任务提交

一、SparkSubmit 提交上次我们已经说完了 Spark Standalone 的 Master 和 Worker 的启动流程,本次我们从一个提交 Spark 作业的命令开始阅读 Spark 任务提交的源码。在 Spark 客户端提交任务的流程是这样子的:./bin/spark-submit --class org.apache.spark.examples.SparkPi \--master local \--deploy-mode cluster \--driver-memory 4g

2021-11-08 13:10:49 1414

原创 Spark 源码(4) - Worker 启动流程源码剖析

一、Worker 启动今天来看看 Worker 的启动流程,Worker 的启动是从 Shell 脚本开始的,Shell 脚本中就是从 Worker 类的 main 方法开始执行的,所以就从 main 方法开始看。最主要的是启动了 RpcEnv 和 Endpoint,Worker 本身就是一个 Endpoint,它继承了 ThreadSafeRpcEndpoint 类。所以下一步自然是去看 Endpoint 的声明周期方法 onStart()首先创建了工作目录,就是从配置中拿到目录信息,然后创建它

2021-11-02 09:13:37 961

原创 Spark 源码(3) - Master启动 - 持久化引擎和选举代理 源码阅读

一、Master 启动上回讲到,Master 的 main 方法中,创建了 RpcEnv 和 Master 的 Endpoint,紧接着就开始执行 Endpoint 的生命周期方法 onStart() 方法,今天就从这里开始。首先创建了 Master 的 Ui,也就是我们在浏览器上看到的 Master 信息:紧接着,定时给自己发送 CheckForWorkerTimeOut 消息:在 Master 类中搜索 case CheckForWorkerTimeOut,可看到如下逻辑:然后,开始创建

2021-10-29 10:14:32 765

原创 Spark 源码(2) - Spark Rpc 三剑客的理解

一、Spark Rpc 三剑客谈到 Spark Rpc ,不得不提到 Spark Rpc 的三剑客:RpcEnv,RpcEndpoint,RpcEndpointRef。如何理解他们呢,请看下图:精简一下发送消息的过程为:通过 RpcEndpointRef 来发送一个消息给 RpcEnv,然后经过 Dispatcher 和 Inbox 的共同处理,发送给 RpcEndpoint 来处理(当前中间的过程比较复杂!)。那什么是 Endpoint ,什么是 EndpointRef ?Endpoint 很

2021-09-16 21:57:28 188

原创 Spark 源码(1) - Spark 通信基石之 Spark Rpc 的发展历程

一、前言又开始更文了,前面一个多月忙了点别的事情,也给自己放了小假,修整修整,大家应该还没取关我吧,谢谢哈!这次打算开始一个新的系列,Spark 源码剖析篇,基本上会把 Spark 的各个组件内部核心源码都会讲解一遍;但更文策略有所调整,以前每篇文章3-4000字,写起来周期很长,现在换为短小精悍的风格,这样可以持续输出,动力也会更足,不会因为断更而有挫败感。嗯,闲聊了几句,进入正题,今天来聊一聊 Spark 的基本通信组件:Spark Rpc。二、Spark Rpc 的发展其实工作这么些年头,S

2021-09-16 21:56:27 134

原创 Zookeeper 核心功能讲解与实战

一、前言想起很久以前在某个客户现场,微服务 B 突然无法调用到微服务 A,为了使服务尽快正常恢复,重启了微服务 B 。但客户不依不饶询问这个问题出现的原因,于是我还大老远从杭州飞到深圳,现场排查问题。最后的结论是,zk 在某时刻出现主备切换,此时微服务 A(基于 dubbo)需要重新往 zk上注册,但是端口号变了。但是微服务 B 本地有微服务 A rpc 接口的缓存,缓存里面还是旧的端口,所以调用不到。解决方法就是,把微服务的 rpc 端口号改成固定的。虽说原因找到了,但对于 Zookeepe

2021-07-31 09:23:09 356

原创 Curator 框架与 Zookeeer 版本 适配

问题在使用 curator 框架测试的时候,出现了如下问题Exception in thread "main" org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /test1 at org.apache.zookeeper.KeeperException.create(KeeperException.java:106) at org.apache.zooke

2021-07-24 11:39:19 6887 2

原创 分布式理论 二阶段提交 2PC 3PC 端到端一致性 分布式事务

一、临界知识对我们学习的巨大帮助临界知识这个概念,是我上个月读《好好学习:个人知识管理精进指南》这本书学到的概念,真的有被启发到,现在觉得它对于我们深刻了解世界有着非常大的作用。所谓临界知识,是我们经过深度思考后发现的,对于认识世界具有普遍指导意义的规律或定律,比如我们经常会看到复利模型、概率论、边际收益、二八法则这些基础概念,它们都是临界知识。通常一个临界知识,对不同的领域都具有指导意义和应用价值。当然在编程世界中,也有很多临界知识:比如最经典的就是设计模式里面的 KISS 原则、SOLID.

2021-07-18 18:00:56 333 1

原创 Kafka Producer 内存池设计源码赏析

一、开篇引出一个 Full Gc 的问题在上一篇文章中,我们讲到了 Kafka 发送消息的八个流程,并且着重讲了 Kafka 封装了一个内存结构,把每个分区的消息封装成批次,缓存到内存里。如下图所示:上图中,整体是一个 Map 结构,Map 的 key 是分区,Map 的值是一个队列;队列里有一个个的小批次,里面是很多消息。这样好处就是可以一次性的把消息发送出去,不至于来一条发送一条,浪费网络资源。但由此也带来了问题,生产者端消息这么多,一个批次发送完了就不管了去等待 JVM 的垃圾回收的时候,

2021-06-03 21:38:48 523 1

原创 Kafka Producer 源码赏析,尤其是分段加锁、写时复制

本文大纲一、开篇之前我们已经大致阅读完了大数据存储领域的一个著名框架:HDFS。今天我们开始一个大数据存储领域一个全新的框架:Kafka。做大数据不可能不知道 Kafka,在日志采集、实时计算等领域,都有它的身影。而且 Kafka 的源码是众多开源项目中,代码质量比较高的一个,代码比较有观赏性。Kafka 的高可用和高性能,是各大公司偏爱它的一个非常重要的理由,要做到如此高性能,背后的作者肯定是花费了一番心力的,必须任何一个细节都要有所优化和改进。而本次,我们来聊一下 Kafka Produc

2021-06-03 21:37:11 653

原创 HDFS 双缓冲技术核心源码剖析

本文大纲一、HDFS 是大数据的基石我们都知道,HDFS 是大数据存储的基石,所有的离线数据都存储在 HDFS 上,而 NameNode 是存储所有元数据的地方(所谓元数据就是描述数据的数据,比如文件的大小,文件都存储在哪些 DataNode 上,文件在目录树的位置等),所以 NameNode 便成为了 HDFS 最关键的部分。在离线数仓中,会存在很多离线任务,这些离线任务都要往 HDFS 写数据,每次写数据都会经过 NameNode 来保存元数据信息,那么 NameNode 势必会承担非常多的请求

2021-05-24 20:46:15 614 3

原创 HDFS写数据流程 源码阅读与原理解读

一、前言想必每次去面试都复习这样一道题:HDFS 的读写流程,自然是先百度一番,复制一下答案,1 2 3 4 5 6 点,背一背完事。面试完,还是不了解 HDFS 究竟是怎么设计这个写数据流程的。其实这个里面也有很多我们值得学习的东西,比如既然写数据到 DataNode,如何保障数据一致性,如何保障数据在写的时候不丢失,重试如何做的,如何做三备份的?那么这次咱就趴一趴 HDFS 的写数据流程吧。二、往 HDFS 写数据的客户端代码我们用 HDFS 的 api ,从一个写数据的代码开始剖析这个过程:

2021-05-17 23:00:27 1698

原创 DataNode 心跳机制源码解读

一、分布式系统中的心跳技术心跳是分布式技术中常用的技术手段。心跳,顾名思义,就是以固定的频率向其他节点汇报当前节点状态的方式。收到心跳,一般可以认为发送心跳的这个节点在当前的网络拓扑中是良好的。当然,心跳汇报时,一般也会携带一些附加的状态、元数据信息、当前节点的信息,以便其他节点管理。心跳有两种方式:单向的 heartbeat;交互的 ping-pong;第一种方式下,target 进程需要定时给 detector 发送消息,告知自己的存活性。而 detector 无需给 target 回复

2021-03-15 21:11:13 1305

原创 如何阅读百万行 Hadoop 源码?来一起读 NameNode 启动过程源码,初窥其境

一、阅读 HDFS 源码的缘由HDFS 是大数据的最基础的设施了,几乎所有的离线存储都在 HDFS 上。但是在大规模 HDFS 集群中,下面的问题通常会让我们无比头疼:元数据的量级超过亿级之后,NameNode 的内存也会变得非常巨大,启动和维护都变的异常困难;如何保障 HDFS 的高可用?NameNode 里面发生长时间的 GC 之后,导致 NameNode 进程退出,该如何解决?如何优化 DataNode 的锁粒度,让其性能更高效?以上种种问题,都需要我们阅读源码,甚至

2021-03-13 15:34:04 304

原创 Java CAS原理和底层源码实现

一、CAS1、简介 casCAS 的意思是 compare and swap,比较并交换。CAS 的示意图如下:比如一个很简单的操作,把变量 A = 2 加 1,结果为 3.则先读取 A 的当前值 E 为 2,在内存计算结果 V 为 3,比较之前读出来的 A 的当前值 2 和 最新值,如果最新值为 2 ,表示这个值没有被别人改过,则放心的把最终的值更新为 3.有一种情况是,在你更新结果之前,其他有个线程在中途把 A 更新成了 5 ,又更新回了 2。但是在当前线程看起来,没有被改过。这就是 A

2021-03-06 11:09:15 2897

原创 高性能异步编程和实时流模型的关系

本次我们来实现一个支持百万并发连接数的采集服务器,并且找到异步+ NIO 的编程方式和实时流模型的那些千丝万缕的联系。一、需求说明简单的需求功能如下:数据采集是一个 web 服务器,可以接收 http 请求传上来的事件,事件是 json 格式的;收到之后,进行解码,校验字符串是否可以解码成 json 对象;对消息进行抽取、清洗、转化;最后发送到 kafka 中。性能要求:支持百万并发连接数;对 CPU 资源和 IO 资源充分利用;二、实现方案剖析网页和手机端会产生一些

2021-03-05 21:30:43 301

原创 Java8 异步编程 CompletableFuture 精讲

本文大纲速看一、异步编程通常来说,程序都是顺序执行,同一时刻只会发生一件事情。如果一个函数依赖于另一个函数的结果,它只能等待那个函数结束才能继续执行,从用户角度来说,整个程序才算执行完毕。但现在的计算机普遍拥有多核 CPU,在那里干等着毫无意义,完全可以在另一个处理器内核上干其他工作,耗时长的任务结束之后会主动通知你。这就是异步编程的出发点:充分使用多核 CPU 的优势,最大程度提高程序性能。一句话来说:所谓异步编程,就是实现一个无需等待被调用函数的返回值而让操作继续运行的方法。二、抛出一个问题

2021-02-21 14:09:15 1492

原创 Flink 源码阅读 flink-client 模块实现原理与源码解析

一、我们本次的目的是什么?这次我们的目的是,在本地的 IDEA 中去 debug flink-clients 代码,然后远程提交给 flink standalone 集群上去执行,看一看 flink 客户端在提交代码之前都干了什么。就像下面这样:很简单是不是,瞬间自信心爆棚!在开始之前,我想要提两个发人深省的问题,你平时一定没有考虑过:问题 1:用户代码如何变成 DAG 图DataStream<Tuple2<String, Integer>> counts = te

2021-02-20 08:49:33 810

Notepad json 格式化插件

可以在 notepad ++ 中对 json 格式化,更方便的查看 json 内容。 平时开发时,也可以方便的查看 http 请求的 json 文件,非常方便。

2022-09-23

hadoop-3.1.0-winUtils.rar

hadoop3.1.0 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

hadoop-3.0.0-winUtils.rar

hadoop3.0.0 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

hadoop-2.8.3-winUtils.rar

hadoop2.8.3 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

hadoop-2.8.1-winUtils.rar

hadoop2.8.1 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

hadoop-2.8.0-RC3-winUtils.rar

hadoop-2.8.0-RC3 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

hadoop-2.7.1-winUtils.rar

hadoop2.7.1 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

hadoop-2.6.4.rar

hadoop2.6.4 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

hadoop-2.6.3.rar

hadoop2.6.3 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

hadoop2.6.0 winUtils.exe windows依赖

如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 HADOOP_HOME 环境变量,即可解决。

2020-11-22

Redis-x64-3.0.504-windows.zip

Redis Windows 版本,解压即用,适用于本地测试,极度方便。适用于不愿意在本地装虚拟机,又没有linux可以用,也不想上阿里云或者腾讯云去买一个服务器的情况下自测使用。

2020-03-26

grafana-6.6.2-1.x86_64.rpm

grafana 是一款优秀的图表可视化组件,拥有超多炫酷的图表,并支持自定义配置,用它来做监控的 Dashboard 简直特别完美。

2020-03-08

空空如也

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

TA关注的人

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