自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 HDFS文件系统介绍(1)

在Hadoop(CDH)分布式环境搭建(简单易懂,绝对有效!)这篇博客中,小菌在最后为大家带来了HDFS的初体验。一些大数据专业的粉丝私信小菌希望能再详细讲讲HDFS的相关内容。于是本次分享,小菌将为大家带来HDFS的文件系统介绍。 在介绍文件系统之前我们需要先弄清楚HDFS的作用。我们都知道HDFS是Hadoop的一个核心组件,那在Hadoop中HDFS扮演着怎样的一个角色呢?相信通过下面这张图小伙伴们就一目了然了!总结:Hadoop的主要组成部分: Hadoop...

2021-10-26 19:53:29 1097

转载 HDFS中namenode故障恢复(8)

secondaryNamenode对namenode当中的fsimage和edits进行合并时,每次都会先将namenode的fsimage与edits文件拷贝一份过来,所以fsimage与edits文件在secondarNamendoe当中也会保存有一份,如果namenode的fsimage与edits文件损坏,那么我们可以将secondaryNamenode当中的fsimage与edits拷贝过去给namenode继续使用,只不过有可能会丢失一部分数据。 这里涉及到几个配置选项:...

2021-10-26 19:47:12 308

转载 HDFS中SecondaryNamenode工作原理(7)

我们在刚开始学习HDFS的时候,知道HDFS主要由管理者NameNode和DataNode组成。其中还有一个SecondaryNameNode在HDFS中扮演着辅助的作用,负责辅助NameNode管理工作。那么这篇博客,小菌就为大家分享secondarynameNode究竟是如何辅助管理的? 看过小菌的上一篇博客《HDFS中Fsimage,Edits详解(6)》的小伙伴们都清楚,在NameNode已经启动情况下对HDFS进行的各种更新操作都会被记录在editlog中。但正是由于editlo...

2021-10-26 19:43:32 737

转载 HDFS中Fsimage,Edits详解(6)

在之前的分享中,我们在谈到NameNode的作用时,有一个作用就是管理文件系统的元数据。接下来小菌将先为大家带来的是NameNode元数据解析的过程。NameNode元数据解析NameNode元数据解析(1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载edits和fsimage文件到内存。(2)客户端对元数据进行增删改的请求。(3)namenode记录操作日志,更新滚动日志。(4)namenode在内存中对数据进行增删改查。..

2021-10-26 19:39:02 370

转载 HDFS的安全模式与文件权限检验(5)

安全模式 安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,当整个系统达到安全标准时,HDFS自动离开安全模式。 如果HDFS处于安全模式下,则文件block不能进行任何的副本复制操作,因此达到最小的副本数量要求是基于datanode启动时的状态来判定的,启动时不会再做任何复制(从而达...

2021-10-26 19:34:23 231

转载 HDFS的高级命令使用——文件限额配置(4)

相信看过小菌之前的博客《HDFS的shell常用命令大全》的小伙伴们,肯定对于HDFS的shell常用命令已经不满足了,那么这篇博客,小菌为大家带来的是HDFS的高级命令使用——文件限额配置! 首先让我们来看看这个命令的作用吧~hdfs文件的限额配置允许我们以文件大小或者文件个数来限制某个目录下上传的文件数量或者文件内容总量,以便达到我们类似百度网盘网盘等限制每个用户允许上传的最大的文件的量 我们可以从上述知道HDFS限额配置可以从文件数量限额和空间大小限额两个方面来...

2021-10-26 19:31:42 236

转载 HDFS特性及缺点分析(3)

因为在前面几期的分享中,大家看到的更多是HDFS的底层原理,内部结构,并没有谈到其自身优势和劣势的一个比较!因此,本次小菌为大家带来的就是HDFS的特性以及缺点分析。HDFS特性 关于HDFS的特性,相信从系列1《HDFS文件系统介绍(1)》开始,大家就对HDFS产生了浓厚的兴趣。虽然在前面我们也或多或少的提到了一些它的用途。但如果精炼概况HDFS的特性,大致要分为下面3点:1、海量数据存储: HDFS可横向扩展,其存储的文件可以支持PB级别数据。2、高容错性:节点丢失,系统依然...

2021-10-26 19:28:30 1084

转载 HDFS文件读写流程(2)

因为在之前的几篇博客中,小菌已经为大家带来了HDFS的基本概念及一些常用操作,这篇博客小菌将接着HDFS文件系统介绍的内容,为大家带来HDFS的读写流程!文章目录目录文章目录文件写入过程(重点) 文件读取过程(重点) HDFS数据的完整性文件写入过程(重点)详细步骤解析:1、 client发起文件上传请求,通过RPC与NameNode建立通讯,NameNode检查目标文件是否已存在,父目录是否存在,返回是否可以上传;RPC 指的是 远程过程调用。是集群中多个组...

2021-10-26 19:26:20 121

转载 HDFS的shell常用命令大全

本次分享小菌带来的是关于在HDFS中shell的常用命令! 首先介绍基本语法 hdfs dfs 具体命令 或者 hadoop fs 具体命令 都是可以的。 在Linux中Hadoop的安装目录下,执行如下命令:[root@node01 Hadoop-2.6.0-cdh5.14.0]# bin/hdfs dfs 将显示shell命令的参数大全Usage: Hadoop fs [generic options][-appendTo...

2021-10-26 19:11:37 251

原创 Mybatis

1、什么是 Mybatis? 1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性 能,灵活度高。 2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数 据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 3、通过 xml 文件或注

2021-10-24 18:44:28 155

转载 外观数列[C++,模拟]

给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = "1"countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一项,这个数是 1 即...

2021-10-24 18:38:37 85

转载 字符串转换整数 (atoi)

请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,"123"

2021-10-24 18:37:05 127

原创 jQuery(2)

1.window.onload()函数和jQuery中的document.ready()有什么区别? a、执行时间:window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。$(document).ready()是DOM结构绘制 完毕后就执行,不必等到加载完毕。$(document).ready()在 window.onload之前执行。 b、简化写法:window.onload没有简化写法。$(document).ready(function(){})可以简写成$(func

2021-10-21 09:02:49 93

原创 jQuery技术(1)

1.jQuery 库中的 $() 是什么? $() 函数是 jQuery() 函数的别称。$() 函数用于将任何对象包裹成 jQuery 对象,接着你就被允许调用定义在 jQuery 对象上的多 个不同方法。你可以将一个选择器字符串传入 $() 函数,它会返回一个包含所有匹配的 DOM 元素数组的 jQuery 对象。 2.JQuery有几种选择器? a、基本选择器:#id,class,element,*; b、层次选择器:parent > child,prev + n

2021-10-09 09:00:18 76

原创 JavaScript语言(2)

3.如何在JavaScript中每x秒调用一个函数?setInterval(function (){ alert("Hello"); }, 3000);4.JS 中 == 和 === 区别是什么? a、对于string,number等基础类型,==和===有区别:不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等, ===如 果类型不同,其结果就是不等。同类型比较,直接进行“值”比较,两者结果一样。 b、对于Array,Object等高级类型,==和===没有区别

2021-10-09 08:58:16 55

原创 JavaScript语言(1)

1.JS中如何将页面重定向到另一个页面? a、使用 location.href:window.location.href =“https://www.baidu.com/” b、使用location.replace:window.location.replace(" https://www.baidu.com/;"); 2.undefined,null 和 undeclared 有什么区别? a、null表示"没有对象",即该处不应该有值,转为数值时为0。典型用法是:作为函数的参数,

2021-10-09 08:56:18 80

原创 数据库的类型

1.数据库设计中,多对多一般如何处理?引入中间表,把一个多对多表示为两个一对多。2.MySQL数据库中,常用的数据类型 类型名称 说明 int(integer) 整数类型 double 小数类型 decimal(m,d) 指定整数位与小数位长度的小数类型 date 日期类型,格式为yyyy

2021-10-09 08:54:39 130

原创 数据库设计中,一对多如何处理?

数据库外键关系表示的其实是一种一对多关系,所以处理一对多时可以使用外键。

2021-09-29 18:37:11 413

原创 有两张表;请用SQL查询,所有的客户订单日期最新的前五条订单记录。

客户信息表(c CUSTOM)有以下字段:id、name、mobile 客户订单表(C_ORDER)有以下字段:id、custom_id、commodity、count、order _date Select * from c_order order by order_date desc limit 0,5;

2021-09-29 18:36:27 685

原创 根据你以往的经验简单叙述一下MYSQL的优化

a、尽可能使用更小的整数类型.(mediumint就比int更合适). b、尽可能的定义字段为not null,除非这个字段需要null. c、如果想要清空表的所有记录,建议用truncate table tablename而不是delete from tablename. d、避免出现SELECT * FROM table 语句,要明确查出的字段。 e、小心使用 IN 和 OR,需要注意In集合中的数据量。建议集合中的数据不超过200个。...

2021-09-29 18:35:56 84

原创 数据库MySQL分页时用的语句

使用limit关键字。Select * from 表名 where 条件 limit 开始位置,结束位置。通过动态的改变开始和结束位置的值来实现分页。

2021-09-29 18:35:25 126

原创 什么是JDBC的最佳实践?

a、数据库资源是非常昂贵的,用完了应该尽快关闭它。Connection, Statement, ResultSet等JDBC对象都有close方法,调用它 就好了。 b、养成在代码中显式关闭掉ResultSet,Statement,Connection的习惯,如果你用的是连接池的话,连接用完后会放回池里, 但是没有关闭的ResultSet和Statement就会造成资源泄漏了。 c、在finally块中关闭资源,保证即便出了异常也能正常关闭。 d、尽量使用PreparedStatement而不是

2021-09-29 18:34:58 50

原创 数据库连接池的原理。为什么要使用连接池?

a、数据库连接是一种关键的有限的昂贵的资源,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。 b、数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对 数据 库操作的性能。c、数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最

2021-09-29 18:34:27 407

原创 说说事务的概念,在JDBC编程中处理事务的步骤?

事务是作为单个逻辑工作单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务 。JDBC处理事务有如下操作: conn.setAutoComit(false);设置提交方式为手工提交 conn.commit()提交事务 conn.rollback(),回滚 提交与回滚只选择一个执行。正常情况下提交事务,如果出现异常,则回滚。...

2021-09-29 18:32:56 107

原创 java.util.Date和java.sql.Date有什么区别?

java.util.Date包含日期和时间,而java.sql.Date只包含日期信息,而没有具体的时间信息。如果你想把时间信息存储在数据库里,可以考虑使用Timestamp或者DateTime字段。

2021-09-29 18:31:48 50

原创 JDBC的PreparedStatement是什么?

在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了, next()方法会返回false。可以在for循环中用它来遍历数据集。...

2021-09-29 18:31:15 49

原创 execute,executeQuery,executeUpdate的区别是什么?

a、Statement的execute(String query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回 true。如果结果不是ResultSet,比如insert或者update查询,它就会返回false。 b、Statement的executeQuery(String query)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的 ResultSet也不会为null。我们通常使用executeQuery来执行查询语句,这样的

2021-09-29 18:30:21 51

原创 JDBC技术

1.什么是JDBC,在上面时候会用到它? JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类 在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。JDBC接口让Java程 序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单。 2.JDBC访问数据库的基本步骤是什么? a、加载(注册)数据库驱动(到JVM) b、建立(

2021-09-26 19:07:19 47

原创 乐 观 锁 一 定 就 是 好 的 吗 ?

乐 观 锁 避 免 了 悲 观 锁 独 占 对 象 的 现 象 , 同 时 也 提 高 了 并 发 性 能 , 但 它 也有 缺 点 : a、乐 观 锁 只 能 保 证 一 个 共 享 变 量 的 原 子 操 作 。 如 果 多 一 个 或 几 个 变 量 , 乐观 锁 将 变 得 力 不 从 心 , 但互 斥 锁 能 轻 易 解 决 , 不 管 对 象 数 量 多 少 及 对 象颗 粒 度 大 小 。 b、长 时 间 自 旋 可 能 导 致 开 销 大 。 假 如 CAS 长 时 间 不 成

2021-09-26 19:04:03 79

原创 为 什 么 说 Synchronized 是 非 公 平 锁 ?

非 公 平 主 要 表 现 在 获 取 锁 的 行 为 上 , 并 非 是 按 照 申 请 锁 的 时 间 前 后 给 等待 线 程 分 配 锁 的 , 每 当 锁 被释 放 后 , 任 何 一 个 线 程 都 有 机 会 竞 争 到 锁 ,这 样 做 的 目 的 是 为 了 提 高 执 行 性 能 , 缺 点 是 可 能 会 产 生线 程 饥 饿 现 象 。...

2021-09-26 19:01:26 472 1

原创 Synchronized 用 过 吗 , 其 原 理 是 什 么 ?

a、Synchronized 是 由 JVM 实 现 的 一 种 实 现 互 斥 同 步 的 一 种 方 式 , 如 果你 查 看 被 Synchronized 修 饰 过 的 程 序块 编 译 后 的 字 节 码 , 会 发 现 ,被 Synchronized 修 饰 过 的 程 序 块 , 在 编 译 前 后 被 编 译 器 生 成 了 monitorenter 和 monitorexit 两 个 字 节 码 指 令 。 b、这 两 个 指 令 是 什 么 意 思 呢 ?在 虚 拟 机 执 行

2021-09-26 18:59:40 185

原创 HashMap 和 Hashtable 的区别?

a、线程是否安全: HashMap 是非线程安全的,HashTable 是线程安全的;HashTable 内部的方法基本都经过 synchronized 修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap 吧!); b、效率: 因为线程安全的问题,HashMap 要比 HashTable 效率高一点。另外,HashTable 基本被淘汰,不要在代码中使用 它;c、对Null key 和Null value的支持: HashMap 中,null 可以作为键,这样的键只有

2021-09-26 18:57:42 39

原创 ArrayList、LinkedList、Vector 的区别?

a、ArrayList,Vector 底层是由数组实现,LinkedList 底层是由双线链表实现,从底层的实现可以得出它们的性能问题。 b、ArrayList,Vector 插入速度相对较慢,查询速度相对较快,而LinkedList 插入速度较快,而查询速度较慢。再者由于 Vevtor 使 用了线程安全锁,所以ArrayList 的运行效率高于 Vector。 ...

2021-09-26 18:57:11 53

原创 Java 为每个原始类型提供了哪些包装类型?

a、原始类型: boolean,char,byte,short,int,long,float,double b、包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

2021-09-26 18:56:40 61

原创 int 和 Integer 有什么区别?

Java 是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成 对象操作,Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是 Integer,从 Java 5 开 始引入了自动装箱/拆箱机制,使得二者可以相互转换。...

2021-09-26 18:56:10 36

原创 自动装箱与拆箱

a、装箱:将基本类型用它们对应的引用类型包装起来; b、拆箱:将包装类型转换为基本数据类型;

2021-09-26 18:55:37 62

原创 String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的?

StringBuffer 仅能获得10%~15% 左右的性能提升,但却要冒多线程不安全的风险。 对于三者使用的总结:如果要操作少量的数据用 = String,单线程操作字符串缓冲区 下操作大量数据 = StringBuilder,多线 程操作字符串缓冲区 下操作大量数据 = StringBuffer...

2021-09-26 18:55:06 35

原创 String 类的常用方法都有那些?

a、indexOf():返回指定字符的索引。 b、charAt():返回指定索引处的字符。 c、replace():字符串替换。 d、trim():去除字符串两端空白。 e、split():分割字符串,返回一个分割后的字符串数组。 f、getBytes():返回字符串的 byte 类型数组。 g、length():返回字符串长度。 h、toLowerCase():将字符串转成小写字母。 i、toUpperCase():将字符串转成大写字符。

2021-09-24 09:05:05 49

原创 == 和 equals 的区别是什么?

a、== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数据类型 == 比较的是值,引用数 据类型 == 比较的是内存地址) b、equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况: 情况1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。 情况2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来两个对象的内容相等;若它们的内

2021-09-24 09:04:22 45

原创 面向对象三大特性

a、封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。 b、继承:继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的 功 能,但不能选择性地继承父类。通过使用继承可以提高代码复用性。继承是多态的前提。 c、所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序 运 行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发

2021-09-24 09:03:40 43

空空如也

空空如也

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

TA关注的人

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