自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(144)
  • 资源 (1)
  • 收藏
  • 关注

原创 超级详细树讲解三 —— B树、B+树图解+代码

首先很高兴你看到了这篇文章,这篇文章可能会花费你很长很长的时间去看,但是这篇文章包括的内容绝对足够你对树的一个系统性的学习。为什么要写这篇文字呢?因为自己在学习树的时候,有些博客只有图解,有些博客只有代码,在这里我将树的图解和代码都整理在了一起。在每个树都有着对应的图解和代码。相信这篇文字会花费你大量的时间,但是绝对值得。因为全部加在一起太长了,所以分成了三部分去记录:超级详细树讲解一 —— 二叉树、二叉查找树、完全二叉树图解+代码因为博客的排版问题,但是感觉还是比较丑,如果大家想看好看的版本,大家可

2020-12-05 00:41:57 1008

原创 超级详细树讲解二 —— 平衡二叉树、哈夫曼树图解+代码

超级详细树讲解二 —— 平衡二叉树、哈夫曼树图解+代码首先很高兴你看到了这篇文章,这篇文章可能会花费你很长很长的时间去看,但是这篇文章包括的内容绝对足够你对树的一个系统性的学习。为什么要写这篇文字呢?因为自己在学习树的时候,有些博客只有图解,有些博客只有代码,在这里我将树的图解和代码都整理在了一起。在每个树都有着对应的图解和代码。相信这篇文字会花费你大量的时间,但是绝对值得。因为全部加在一起太长了,所以分成了三部分去记录:超级详细树讲解一 —— 二叉树、二叉查找树、完全二叉树图解+代码因为博客的排版

2020-12-05 00:25:16 758

原创 超级详细树讲解一 —— 二叉树、二叉查找树、完全二叉树图解+代码

超级详细树讲解 ——图解+代码首先很高兴你看到了这篇文章,这篇文章可能会花费你很长很长的时间去看,但是这篇文章包括的内容绝对足够你对树的一个系统性的学习。为什么要写这篇文字呢?因为自己在学习树的时候,有些博客只有图解,有些博客只有代码,在这里我将树的图解和代码都整理在了一起。在每个树都有着对应的图解和代码。相信这篇文字会花费你大量的时间,但是绝对值得。代码的github地址:代码传送门pdf的github地址:pdf传送文章目录超级详细树讲解 ——图解+代码树的基本概念二叉树二叉树的定义二叉树首相数

2020-12-05 00:12:38 988

原创 Flume13 聚合组

Flume13 聚合组1) 案例需求:hadoop103 上的 Flume-1 监控文件/opt/module/group.log,hadoop102 上的 Flume-2 监控某一个端口的数据流,Flume-1 与 Flume-2 将数据发送给 hadoop104 上的 Flume-3,Flume-3 将最终数据打印到控制台。2)需求分析:实现步骤准备工作分发 Flume[atguigu@hadoop102 module]$ xsync flume在hadoop102、ha

2020-12-01 18:41:25 245 1

原创 Flume12 负载均衡

Flume12 故障转移案例需求使用Flume监控一个端口,其sink组中的sink分别对接Flume2 和 Flume3,采用FailoverSinkProcessor,实现故障转移的功能。需求分析实现步骤准备工作在/opt/module/flume/job 目录下创建 group2 文件夹[atguigu@hadoop102 job]$ cd group2/创建 flume-netcat-flume.conf配 置 1 个接收 日 志 文 件 的 source 和 1 个

2020-12-01 18:40:08 131

原创 Flume11 故障转移

Flume11 负载均衡和故障转移案例需求使用Flume监控一个端口,其sink组中的sink分别对接Flume2 和 Flume3,采用FailoverSinkProcessor,实现故障转移的功能。需求分析实现步骤准备工作在/opt/module/flume/job 目录下创建 group2 文件夹[atguigu@hadoop102 job]$ cd group2/创建 flume-netcat-flume.conf配 置 1 个接收 日 志 文 件 的 source

2020-12-01 18:38:24 145

原创 Flume10 单数据源和多出口

Flume10 单数据源和多出口案例需求使用Flume-1监控文件变动,Flume-1将变动内容传递给 Flume-2,Flume-2负责存储到HDFS。同时Flume-1将变动内容传递给Flume-3,Flume-3负责输出到Local FileSystem。需求分析实现步骤准备工作在/opt/module/flume/job 目录下创建 group1 文件夹[atguigu@hadoop102 job]$ cd group1/在/opt/module/datas/目录下创建 f

2020-12-01 18:37:28 133

原创 Flume9 拓扑结构

Flume9 拓扑结构简单串联这种模式是将多个Flume顺序连接了起来,从最初source开始到最终sink传送的目的存储系统。此模式不建议桥接过多的Flume数量,Flume数量过多不仅会影响传输速率,而且一旦传输过程中某个节点Flume宕机,会影响整个传输系统。复制和多路复用Flume 支持将事件流向一个或多个目的地,这种模式可以将相同数据复制到多个channel中,或者将不同数据分发到不同的channel中,sink可以选择传送到不同的目的地。负载均衡和故障转移Flume支持使用将多

2020-12-01 18:36:21 171

原创 Flume2 下载安装

Flume2 下载安装Flume 安装地址Flume 官网地址http://flume.apache.org/文档查看地址http://flume.apache.org/FlumeUserGuide.html下载地址http://archive.apache.org/dist/flume/安装部署将 apache-flume-1.7.0-bin.tar.gz 上传到 linux 的/opt/software 目录下,并解压到/opt/module/目录下[atg

2020-12-01 18:32:29 132509

原创 Flume8 Agent内部原理

Flume8 Agent内部原理拦截器拦截器是简单的插件式组件,设置在source和channel之间。source接收到的时间,在写入channel之前,拦截器都可以进行转换或者删除这些事件。每个拦截器只处理同一个source接收到的事件。可以自定义拦截器。flume内置了很多拦截器,并且会定期的添加一些拦截器,在这里列出一些flume内置的,经常使用的拦截器。Timestamp Interceptor(时间戳拦截器)flume中一个最经常使用的拦截器 ,该拦截器的作用是将时间戳插入到flum

2020-11-23 10:01:21 258

原创 Flume7 事务

Flume7 事务重点:两个事务: Put事务 和 Take事务Put事务应该做的事情:- doPut: 将批量数据先写入临时缓存区putList- doCommit: 检查channel内存队列是否足够合并- doRollback: channel内存空间不足,回滚数据Take事务应该做的事情- doTake: 将数据取到临时缓冲区takeList,并将数据发送到HDFS- doCommit:如果数据全部发送成功,则清除临时缓冲区takeList- doRollback

2020-11-23 10:00:22 138

原创 Flume6 实时监控目录下的多个追加文件

Flume6 实时监控目录下的多个追加文件Exec source 适用于监控一个实时追加的文件,但不能保证数据不丢失;Spooldir Source 能够保证数据不丢失,且能够实现断点续传,但延迟比较高,不能实时监控;而Taildir Source既能实现断点续传,又可以保证数据不丢失,还能够进行实时监控。案例需求使用Flume监听整个目录实时追加文件,并上传至 HDFS需求分析实验步骤建配置文件 flume-file-logger.conf创建一个文件[atguigu@hadoop1

2020-11-23 09:59:16 232 1

原创 Flume5 实时监控目录下多个新文件

Flume5 实时监控目录下多个新文件案例需求:使用Flume监听整个目录的文件,并上传至HDFS需求分析:实践步骤创建配置文件 flume-dir-hdfs.conf创建一个文件[atguigu@hadoop102 job]$ touch flume-dir-hdfs.conf打开文件[atguigu@hadoop102 job]$ vim flume-dir-hdfs.conf添加如下内容a3.sources = r3a3.sinks = k3a3.channels

2020-11-23 09:57:17 273

原创 Flume4 实时监控单个追加文件

Flume4 实时监控单个追加文件需求案例需求: 实时监控Hive日志,并上传到HDFS中存在单点故障,因为如果agent故障后,可能会丢失数据需求分析实验步骤第一个先提取日志数据输出到控制台创建 file-flume-logger.conf 文件# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1# Describe/configure the sourcea1.sour

2020-11-23 09:53:42 189

原创 Flume3 监控端口数据

Flume3 监控端口数据更多整理都在我的github上:Auraros欢迎大家。案例需求使用Flume 监听一个端口,收集该端口数据,并打印到控制台需求分析实现步骤安装 telnet 工具将 rpm 软 件 包 (xinetd-2.3.14-40.el6.x86_64.rpm 、 telnet-0.17-48.el6.x86_64.rpm 和telnet-server-0.17-48.el6.x86_64.rpm)入/opt/software 文件夹下面。执行 RPM 软件包安装命令:

2020-11-23 09:51:11 213

原创 Flume1 概述

Flume1 概述更多整理都在我的github上:Auraros欢迎大家。定义Flume是Cloudera提供一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume基于流失架构,灵活简单。Flume主要用于对Java后台日志以及Python爬虫数据的数据实时读取进行一个传输,传输到HDFS中。基础架构1. source: 一个存储数据的地方,将读入的数据存储起来2. channel:管道,将数据运输到输出端口的管道(防止读入比写出快而导致崩溃)3. sink: 输出

2020-11-23 09:48:57 165

原创 Hive调优1 Fetch抓取

Hive调优1 Fetch抓取更多整理都在我的github上:Auraros欢迎大家。Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算.在刚开始学习hive的时候,都知道hive可以降低程序员的学习成本和开发成本,一般的SQL语句转换成MapReduce程序运行。那么问题来了:什么样的程序才不用进行MR计算呢?首先是针对简单查询的,比如单纯的select当数据量很少的时候出现数据倾斜的时候数据量特别大的时候针对简单查询的解决但是Hive中对某些情况

2020-10-29 22:34:03 204

原创 Hive总结1 基本操作

Hive总结1 基本操作更多整理都在我的github上:Auraros欢迎大家。数据库的基本操作创建数据库create database [if not exists] myhive;说明一下: Hive表存放位置模式是由hive-site.xml当中的一个属性指定的:<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</v

2020-10-28 21:12:52 198

原创 Yarn7 任务推测执行

Yarn7 任务推测执行更多整理都在我的github上:Auraros欢迎大家。任务的推测执行1.作业完成时间取决于最慢的任务完成时间一个作业由若干个Map任务和Reduce任务构成。因硬件老化、软件Bug等,某些任务可能运行非常慢。典型案例:系统中有99%的Map任务都完成了,只有少数几个Map老是进度很慢,完不成,怎么办?2.推测执行机制发现拖后腿的任务,比如某个任务运行速度远慢于任务平均速度。为拖后腿任务启动一个备份任务,同时运行。谁先运行完,则采用谁的结果3.执行推测任务的前

2020-10-28 00:45:31 250

原创 Yarn6 调度器Scheduler

Yarn6 调度器Scheduler更多整理都在我的github上:Auraros欢迎大家。背景: 理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。目前,Hadoop作业调度器主要有三种,F

2020-10-28 00:19:44 143

原创 Yarn5 工作机制和作业提交

Yarn5 工作机制和作业提交更多整理都在我的github上:Auraros欢迎大家。Yarn资源调度器Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于操作系统之上的应用程序Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成如所示ResourceManager(RM)1. 处理客户端请求2. 监控NodeManager3

2020-10-27 23:42:37 105

原创 MapReduce8 优化

MapReduce8 优化更多整理都在我的github上:Auraros欢迎大家。MapReduce跑得慢的原因MapReduce程序效率的瓶颈在于两点:计算机性能和 I/O操作计算机性能CPU、内存、磁盘健康、网络I/O操作数据倾斜Map和Reduce设置不合理Map运行时间太长,导致Reduce等待过久小文件过多大量的不可分块的超大文件spill次数过多Merge次数过多等MapReduce优化方案数据输入优化大量小文件在数据输入的时候进行处理1. 合并小文件,在执

2020-10-27 19:00:42 77

原创 MapReduce6 MapJoin和ReduceJoin

MapReduce6 MapJoin和ReduceJoin更多整理都在我的github上:Auraros欢迎大家。其实Join就是Mysql中表的连接操作,后面使用hive还是一条sql语句就可以解决了,这里反正比较麻烦,但是要了解一下Reduce Join原理Map端的主要工作为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出Reduce端主要工作在Reduce端以连接字段作为key的分组已经完

2020-10-27 16:37:31 162

原创 MapReduce5 自定义Shuffle机制(超详细)

MapReduce5 自定义Shuffle机制更多整理都在我的github上:Auraros欢迎大家。前面已经学过大致的Shuffle流程了,不过那只是介绍了整个Shuffle的流程,还没有介绍如何改变Shuffle过程来满足我们的业务需要回顾Shuffle机制MapReduce确保每个Reduce的输入都是按照Key排序的,系统指向排序的过程称为Shuffle。具体的Shffle过程详解,如下:MapTask收集我们的map()方法输出的kv对,放到内存缓存中从内存缓冲区不

2020-10-27 02:39:22 286

原创 Java基础7 get和set

Java基础7 get和set更多整理都在我的github上:Auraros欢迎大家。使用前提当要访问被private封装的属性时提供访问方式的原因之所以用private封装,又对外提供访问方式(set get),是因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,其中操作包括给属性赋值和查看属性,提高代码的健壮性。class Student{ private int age; public int getAge(){ return age; }

2020-10-25 23:59:09 82

原创 Java基础6 String

Java基础6 String更多整理都在我的github上:Auraros欢迎大家。本文来介绍Java中的String,什么是String呢,字符串就是一序列字符组成的。Java中用关键字String表示字符串对象,严格来说,String时候对象,而不是变量类型。在自动化测试过程中,经常需要用到String对象,特别是断言的部分,需要进行字符串匹配判断。下面的例子,介绍了几个String基本的属性和方法。常用方法在力扣里面,感觉会将常用到下面几个方法package lesson;publi

2020-10-25 23:58:11 176

原创 Java基础5 数组

Java基础5 数组更多整理都在我的github上:Auraros欢迎大家。数组动态初始化范例: 声明并开辟空间public class ArrayDemo { public static void main(String[] args) { int[] data = new int[3]; /*开辟了一个长度为3的数组*/ data[0] = 10; // 第一个元素 data[1] = 20; // 第二个元素 data[2] = 30; // 第三个元素 for(int

2020-10-25 23:55:08 62

原创 Java基础4 循环

Java基础4 循环更多整理都在我的github上:Auraros欢迎大家。循环一共包括三种循环 for循环,while循环,do while循环while循环package lessons; public class MyClass { public static void main(String[] args) { int a=1; while(a < 11){ System.out.println(a); a++; } }}很简单满足条件,这

2020-10-25 23:53:19 133

原创 Java基础3 switch语句

Java基础3 switch语句更多整理都在我的github上:Auraros欢迎大家。这篇来介绍Java中switch语句的基本用法。一提到switch语句,我就会想起用成绩等级划分来举例这个switch的实现过程。相关demo代码如下:package lessons;public class MyClass{ public static void main(String[] args){ int score = 90; switch(score)

2020-10-25 23:52:45 64

原创 Java基础2 获取用户输入内容

Java基础2 获取用户输入内容更多整理都在我的github上:Auraros欢迎大家。本文介绍Java中获取用户输入方法。主要是使用Scanner这个类,需要导入相关的包,相关代码实例如下:package lessons;import java.until.Scanner;/* *如何获取用户输入 * 分输入整数,输入小数,输入字符串 */public class MyClass{ public static void main(String[] args){

2020-10-25 23:52:00 345

原创 Java基础1 变量和类型

Java基础1 变量和类型变量就是一个用来存储值的容器。变量作用在内存中,变量是可变的,计算机断电,变量就丢失,不工作。变量变量名称=变量值变量 变量名称 = 变量值变量变量名称=变量值变量命名规则标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。不能把关键字和保留字作为标识符。标识符没有长度限制。标识符对大小写敏感。练习package lessons; /* * 这里介绍Java中变量和变量类型 byte (数字, 1

2020-10-25 23:51:05 58

原创 MapReduce4 OutputFormat数据输出

MapReduce4 OutputFormat数据输出更多整理都在我的github上:Auraros欢迎大家。OutputFormat接口实现类OutputFormat是MapReduce输出的基类,所有实现Mapreduce输出都实现了OutputFormat接口,下面是几个常见的接口TextOutputFormatSequenceFileOutputFormat自定义输出TextOutputFormat文本输出TextoutputFormat默认的输出格式是TextOutput

2020-10-25 16:46:22 156

原创 MapReduce3 InputFormat数据输入(超详细)

MapReduce3 InputFormat数据输入更多整理都在我的github上:Auraros欢迎大家。输入文件路径指定FileInputFormat类中提供了四种静态方法来设定Job的输入路径:public static void addInputPath(Job job,Path path) throws IOExceptionpublic static void addInputPaths(Job job, String commaSeparatedPaths) throws IOExc

2020-10-25 13:35:35 680

原创 MapReduce2 MapReduce工作机制

MapReduce2 MapReduce工作机制更多整理都在我的github上:Auraros欢迎大家。Job提交阶段首先客户端回对我们提交的文件进行逻辑上的切片, 切片的大小是默认数据块的大小 (Yarn模式是128M,本地模式是32M)。 当切片完成以后,客户端会向MrAppliactionMaster提交信息,如果是Yarn模式的话会提交(切片信息,XML配置信息,jar包)如果是本地模式的话则提交(切片信息,XML配置信息)。当信息提交完毕以后Mr. ApplicationMaster会根据

2020-10-24 23:20:10 280

原创 HDFS每日一练2 API读取文件

HDFS每日一练2 API读取文件题目在右侧代码编辑区和命令行中,编写代码与脚本实现如下功能:在/develop/input/目录下创建hello.txt文件,并输入如下数据:迢迢牵牛星,皎皎河汉女。纤纤擢素手,札札弄机杼。终日不成章,泣涕零如雨。河汉清且浅,相去复几许?盈盈一水间,脉脉不得语。《迢迢牵牛星》使用FSDataOutputStream对象将文件上传至HDFS的/user/tmp/目录下,并打印进度。测试说明:测试说明平台会运行你的java程序,并

2020-10-24 22:29:47 3237 1

原创 HDFS每日一练1 API读取文件

HDFS每日一练1 API读取文件更多整理都在我的github上:Auraros欢迎大家。题目在右侧代码编辑区中编写代码实现如下功能:使用FSDataInputStream获取HDFS的/user/hadoop/目录下的task.txt的文件内容,并输出,其中uri为hdfs://localhost:9000/user/hadoop/task.txt。测试说明:点击评测,平台会通过脚本创建/user/hadoop/task.txt文件并添加相应内容,无需你自己创建,开启hadoop,编写代

2020-10-24 22:11:56 4236

原创 Hive11 调优

Hive11 调优学习一下Hive背后的理论知识以及底层的一些实现细节,会让用户更加高效地使用Hive更多整理都在我的github上:Auraros欢迎大家。使用EXPLAINhive> DESCRIBE onecol;number inthive> SLELECT * FROM onecol;554hive> SELECT SUM(number) FROM onecol;14现在,在前面例子中最后一个查询语句前加上EXPLAIN关键字。然后这个本身并不会

2020-10-24 15:45:54 189

原创 HDFS10 快照Snapshot管理

HDFS10 快照Snapshot管理快照顾名思义,就是相当于对我们的hdfs文件系统做一个备份,我们可以通过快照对我们指定的文件夹设置备份,但是添加快照之后,并不会立即复制所有文件,而是指向同一个文件。当写入发生时,才会产生新文件。快照SnapshotHdfs的快照(snapshot)是在某一时间点对指定文件系统拷贝,快照采用只读模式,可以对重要数据进行恢复、防止用户错误性的操作。快照分为两种:建立文件系统的索引,每次更新文件不会真正的改变文件,而是新开辟一个空间用来保存更改的文件拷

2020-10-23 21:55:16 174

原创 HDFS9 小文件合并

HDFS8 小文件合并由于Hadoop擅长存储大文件,因为大文件的元数据信息比较少,如果Hadoop集群当中有大量的小文件,那么每个小文件都需要维护一份元数据信息,会大大的增加集群管理元数据的内存压力,所以在实际工作当中,如果有必要一定要将小文件合并成大文件进行一起处理。shell命令下合并-getmerge 参数下载到本地cd /export/servershdfs dfs -getmerge /config/*.xml ./hello.xmltype命令按住shift打

2020-10-23 21:07:09 320

原创 HDFS客户端操作4 伪造用户

HDFS客户端操作4 伪造用户更多整理都在我的github上:Auraros欢迎大家。hdfs的文件权限验证与linux系统的类似,但hdfs的文件权限需要开启之后才生效,否则在HDFS中设置权限将不具有任何意义!而在设置了权限之后,正常的HDFS操作可能受阻,这种情况下我们就需要伪造用户。开启设置权限如果不开启权限设置,这样会导致任何用户都可以操作HDFS带来一定的安全问题首先我们需要先停止集群,在node01机器上执行以下命令# cd /usr/local/hadoop-2.7.

2020-10-23 20:31:12 146

multisim 多功能电子钟.zip

具体要求: 1、按下启动按钮,进入时钟运行模式;按下停止按钮,系统清零停止工作(全部显示内容也都熄灭); 2、系统包括时钟、秒表和计时器三种功能模式,用三盏灯分别指示三种模式;设置一个模式切换按钮,按一次按钮,从时钟模式切换进入秒表模式,再按一次按钮,从秒表模式切换进入计时器模式,第三次按下按钮,从计时器模式切换进入时钟模式,继续按下切换按钮,则切换顺序如上所述; 3、时钟模式(24小时制): (1)完成时、分、秒的计时和显示;按下启动按钮时,时钟从零时零分零秒开始计时; (2)可通过按钮手动调整时、分、秒值; (3)在正常工作过程中,不管切换到什么模式,时钟模式保持继续计时工作但不显示(对应模式指示灯及计时显示器都熄灭),只有在时钟模式下才显示。 4、秒表模式: (1)秒表的计时范围是0S~59.99秒,计时精度是10ms; (2)具有启动/停止开关,可暂停/继续。 5、计时器模式:实现一个60秒倒计时器,当计时器显示00,同时报警;计时器具有清零、启动、暂停/继续计时功能。 内部包含详细报告和每个模块电路以及总电路

2020-05-22

空空如也

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

TA关注的人

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