- 博客(114)
- 资源 (26)
- 收藏
- 关注
原创 java反射
反射机制本质上就是一种用于实现动态编程的机制,可以在运行阶段动态的创建对象,并且动态的调用方法,具体功能由实参决定。反射技术破坏了面向对象,在底层发挥作用。目前主流的框架SSH等底层是采用反射机制实现。java里的动态编程技术就是反射。动态编程编译期间变量的类型和调用的方法都不确定,运行时根据参数确定。动态编程可以让代码有更广泛的适应性,一段代码可以针对很多的类,但是程序的可读性非常低,编程...
2018-10-17 09:21:20
189
原创 网络编程、TCP、UDP
七层网络协议模型为了数据安全可靠地传递到对方,ISO(国际标准委员会组织)将数据的传递从逻辑上划分为以下七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。当发送数据时需要按照上述七层协议一层层进行加包再发送出去。当接收数据时需要按照上述七层协议相反的次序一层层进行拆分再显示出来。常用的协议协议 - 本质上就是一种规则/约定,规定了通信双方统一的语言规则。http协议 ...
2018-10-17 09:21:00
215
原创 java面向对象——线程的创建、状态、常用方法、同步机制、死锁
基本概念程序 - 主要指存放在硬盘/磁盘上的可执行文件。进程 - 主要指运行在内存中的程序。目前主流的操作系统都支持多进程,为了同时执行多个任务,进程是重量级的,新建进程对系统的资源消耗比较大,因此进程的数量还是有限的。线程就是指进程内部的程序流,是轻量级的,新建线程会共享所在进程的资源,因此对系统的资源消耗比较小,以后开发中采用多线程技术是主流的方式。目前主流的操作系统都是采用时间片轮...
2018-10-17 09:20:48
235
原创 java面向对象——IO流:File类
基本概念I/O就是Input/Output的简写,也就是输入/输出的含义。 I/O流就是指像流水一样不间断地进行读写的过程。按照读写单位的不同分为:字节流 - 主要指以字节为单位进行读写的流,可以用于任何文件的读写操作。字符流 - 主要指以字符(2字节)为单位进行读写的流,只能用于文本文件的读写操作按照数据流动方向的不同分为:输入流 - 主要指读取文件中的内容输入到程序中,也就是读文...
2018-10-17 09:20:39
462
原创 java面向对象——异常
异常表示不正常的意思,在java中主要指在程序运行阶段产生的错误异常的分类可检测异常:可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则,不捕捉这个异常,编译器就通不过,不允许编译。非检测异常:非检测异常不遵循处理或者声明规则。在产生此类异常时,不一定非要采取任何适当措施,编译器不会检查是否已经解决了这个异常。自定义异常:为了表示应用程序的一些错误类型,为...
2018-10-17 09:20:30
259
原创 java面向对象——集合:list、queue、set、map
数组 - 本质上就是一段连续的内存空间,用于记录多个类型相同的数据。 - 数组一旦定义则内存空间固定,若太大或太小都会造成麻烦。 - 插入和删除元素时可能会移动大量元素,因此效率比较低。 - 使用下标访问元素非常便利,支持随机访问。 - 数组中的元素可以是基本数据类型,也可以是引用数据类型。集合 - 内存空间可以连续也可以不连续,元素类型可以相同也可以...
2018-10-17 09:20:21
433
原创 java面向对象——正则表达式
正则表达式本质上就是一个用于进行格式验证的字符串,可以使用^开头,使用$结尾,也可以省略不写。常用的规则[abc] - 表示可以出现a、b或者c。[^abc] - 表示可以出现任何字符,除了a、b和c。[a-zA-Z] - 表示可以出现a-zA-z之间的任何字符,包括两头的字符。[a-z&&[^bc]] - 表示a-z中除了b,c外的任何字符 . - 表示可以出...
2018-10-17 09:20:10
176
原创 java面向对象——String类
java.lang.String 类由final关键字修饰,表示该类不能被继承该类用于描述字符串,使用该类创建的对象可以描述java应用程序中的所有字符串字面值(常量)如:“abc” , 而且该字符串字面值是个常量不能更改。String s1 = "hello";s1 = "world"; //本质上就是在改变s1本身的指向,而不是指向的内容。String s1 = null; 和 ...
2018-10-17 09:19:49
1654
原创 Hadoop2.0 HA高可用机制
单点故障HDFS:Hadoop1.x版本中单NameNode设计,其单点处理能力成为HDFS的主要瓶颈 单点故障、内存受限,制约集群扩展性和缺乏隔离机制(不同业务使用同一个NameNode导致业务相互影响)等 因为客户端对HDFS的读、写操作之前都要访问NameNode服务器。存在【单点故障问题】 1.计划内的软件或硬件升级,将导致集群在短时间范围内不可用。 ...
2018-10-17 09:19:39
1903
1
原创 java面向对象——包装类
在某些场合(集合)中要求所有的数据内容都是对象,但java中8种基本数据类型定义的变量并不是对象,为了满足该场合的需求就需要对变量进行对象化处理,此时借助包装类常用的包装类int => 采用java.lang.Integer类包装(重点) char => java.lang.Character类byte => java.lang.Byte类 ...
2018-10-16 20:36:19
577
原创 java面向对象——Object类
1. 常用的包java.lang包 - 是java的核心包,该包中的所有类由java虚拟机自动导入。如:String/System/Math/thread等java.util包 - 是java的工具类/接口/集合框架类包, 如:Arrays、List、Set、Scanner、Random类等java.io包 - 是java的输入/输入编程相关的类、接口包,如:FileInputStream类...
2018-10-16 20:33:11
216
原创 java关键字——this、super、final、static
this()和super()必须出现在构造的第一行,因此不可能同时出现。并且this和super关键字不能出现在static修饰的方法中,static修饰的方法是属于类的,该方法的调用者可能是一个类,而不是对象。所以this和super限定也就失去了意义。1. this关键字this关键字表示本类的对象/引用所有的属性变量不能重名,在同一区域的局部变量不能重名,但属性和局部变量可以重名,在...
2018-10-16 20:21:14
245
原创 java面向对象——封装、继承、多态
将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。1. 私有化的流程a.私有化成员变量使用private关键字修饰。b.提供公有的get成员变量和set成员变量方法,并在set方法体中进行合理性的判断。2. 访问控制符如果一个java源文件里定义的所有类都没有使用public修饰,则这个java源文件的文件名可以是一...
2018-10-16 20:14:50
292
原创 java面向对象——方法详解
1. 方法的所属方法是类或对象的行为特征的抽象,方法是类或对象最重要的组成部分。在逻辑上要么属于类,要么属于对象。从功能上看,方法完全类似于传统结构化程序设计里的函数。实际上,方法确实是传统的函数发展而来。方法和函数的区别:1. 在结构化编程语言中:函数是一等公民,整个软件是由一个个的函数组成。2. 在面向对象编程语言中:类才是一等公民,整个系统由一个个类组成,因此在java中方法不能独立...
2018-10-16 10:31:36
758
原创 java面向对象——类与对象
1. 类的定义类是某一批对象的抽象,可以把抽象理解成某种概念。类名需要每个单词的首字母大写类的定义包含:构造方法(构造器)、成员变量、成员方法。类里个成员之间的定义顺序没有任何影响,各成员之间可以相互调用,但static修饰的成员不能访问没有static修饰的成员。[修饰符] class 类名称{ //修饰符:private、protected、public、final、abstra...
2018-10-16 10:24:03
865
原创 解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
在Windows环境下使用IDEA、eclipse运行hadoop、spark程序时产生如下异常:1、java.io.IOException: Could not locate executablenull\bin\winutils.exe in the Hadoop binaries.2、java.io.IOException: Failed to locate the winutils ...
2018-10-12 10:03:45
5136
原创 集群硬件规划
1. 总体规划的考虑Hadoop集群的瓶颈:IO(Disk,Net) Spark集群的瓶颈:CPU,内存hadoop可以在一台机器上运行,该方式主要用于测试,显然不适合大量的数据。许多人从一个小的集群开始,并根据需要增长它最初可能只有4到6个节点。随着数据量的增长,可以很容易地添加更多的节点。决定集群何时需要增长的方法: 需要增加计算能力,增加需要存储的数据量,增加处理任务所需的内...
2018-04-13 00:48:13
4307
转载 Hadoop3.0版本新特性
Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK 1.8重新发布一个新的Hadoop版本,而这正是hadoop 3.0。Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR Native Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN con...
2018-04-12 23:25:14
2364
原创 Hadoop yarn中Scheduler资源调度器
理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。双层调度框架:RM将资源分配给AM,AM...
2018-04-12 23:17:07
1693
原创 Hadoop Yarn工作机制
在yarn上写应用程序并不同于我们熟知的MapReduce应用程序,必须牢记yarn只是一个资源管理的框架,并不是一个计算框架,计算框架可以运行在yarn上。我们所能做的就是向RM申请container,然后配合NM一起来启动container。就像MRv2一样,jobclient请求用于MR AM运行的container,设置环境变量和启动命令,然后交由NM去启动MR AM,随后map/re...
2018-04-12 22:59:32
362
原创 Hadoop Yarn资源管理——核心组件详解
相关链接: Hadoop Yarn资源管理——Hadoop1.0与Hadoop2.0对比YARN是Hadoop 2.0的一个通用的资源管理系统,可为上层应用提供统一的资源管理和调度。在整个资源管理框架中ResourceManager为Master,NodeManager为Slave ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提...
2018-04-12 21:41:55
3098
原创 Hadoop Yarn资源管理——Hadoop1.0与Hadoop2.0对比
相关链接: Hadoop Yarn资源管理——核心组件详解Yarn(Yet Another Resource Negotiator)是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率(内存、IO、网络、磁盘等)。它仍可认为采用了master/slave结构,总体上采用了双层调度架构。1、Hadoop1.0缺陷JobTracker是Map-reduce的集中处理...
2018-04-12 20:45:32
2266
原创 MapReduce优化——配置调优
相关链接: MapReduce优化——Combiner与Partitioner1、配置调优调优总的原则给shuffle过程尽量多提供内存空间,在map端,可以通过避免多次溢出写磁盘来获得最佳性能(相关配置io.sort.*,io.sort.mb),在reduce端,中间数据全部驻留在内存时,就能获得最佳性能,但是默认情况下,这是不可能发生的,因为一般情况所有内存都预留给reduc...
2018-04-11 17:43:18
8761
原创 MapReduce优化——Combiner与Partitioner
相关链接: MapReduce优化——配置调优Combiner和Partitioner是用来优化MapReduce的。可以提高MapReduce的运行效率。Combiner集群上的可用带宽限制了MapReduce作业的数量,因此尽量避免map和reduce任务之间的数据传输是有利的。Hadoop允许用户针对map任务的输出指定一个combiner(就像mapper,redu...
2018-04-11 17:34:53
5271
1
原创 MapReduce中Shuffle机制详解——Map端Shuffle
相关链接 MapReduce运行机制 MapReduce中Shuffle机制详解——Reduce端Shuffle链接Shuffle阶段是指从Map的输出开始,包括系统执行排序以及传送Map输出到Reduce作为输入的过程。Sort阶段是指对Map端输出的Key进行排序的过程。不同的Map可能输出相同的Key,相同的Key必须发送到同一个Reduce端处理。Shuffle阶段...
2018-04-11 17:07:05
6167
原创 Mapreduce中Map与Reduce任务的个数
1、Map任务的个数读取数据产生多少个Mapper?? Mapper数据过大的话,会产生大量的小文件,过多的Mapper创建和初始化都会消耗大量的硬件资源 Mapper数太小,并发度过小,Job执行时间过长,无法充分利用分布式硬件资源Mapper数量由什么决定?? (1)输入文件数目(2)输入文件的大小(3)配置参数 这三个因素决定的。 输入的目录中文件的数量决定多少个map会...
2018-04-11 16:30:11
17962
原创 MapReduce运行机制
相关链接 MapReduce中Shuffle机制详解——Map端Shuffle链接 MapReduce中Shuffle机制详解——Reduce端Shuffle链接MapReduce将作业job的整个运行过程分为两个阶段:Map阶段和Reduce阶段。按照时间顺序包括:输入分片(input split)、map阶段、combiner阶段、shuffle阶段和reduce阶段。...
2018-04-11 16:27:51
1179
原创 Hadoop YARN容错机制
在现实情况中,用户代码错误不断,进程崩溃,机器故障等情况均容易造成任务失败。hadoop最主要的好处之一就是它能处理此类故障并能够成功完成作业。1、任务失败 首先应考虑任务的失败,最常见的情况是map任务或reduce任务中代码运行异常。遇到此情况任务JVM会在退出之前向其父application master发送错误报告,并将此次任务尝试标记为failed(失败),然后释放容器以便资源可以...
2018-04-11 15:59:42
3420
原创 Hadoop作业运行机制
hadoop会为每个分片构建一个map任务,map和reduce每个阶段都以键值对作为输入和输出。键是某一行起始位置相对于文件起始位置的偏移量(行偏移量)。1.为什么要将MapReduce计算转移到存储有部分数据的各台机器上 这样可以获得最佳性能,因为它无需使用宝贵的集群【网络带宽资源】,这就是所谓的.数据本地化优化(移动计算而不移动数据)。2.为什么最佳分片的大小应该与块大小相同 因...
2018-04-11 15:49:48
3374
2
原创 Hadoop MapReduce编程开发
用户编写完MapReduce程序后,按照一定的规则指定程序的输入和输出目录,并提交到Hadoop集群中。 Hadoop将输入数据切分成若干个输入分片(input split),并将每个split交给一个Map Task处理;Map Task不断的从对应的split中解析出一个个key/value,并调用map()函数处理。处理完之后根据Reduce Task个数将结果分成若干个分片(partit...
2018-04-11 15:25:02
334
原创 Hadoop MapReduce简介
MapReduce分布式并行计算框架是一种可用于数据处理的编程模型,可运行由个中语言编写的MapReduce程序:java、Ruby、Python、R、C++等语言。它用于处理超大规模数据的计算,同时具有可并行计算的特性,因此可以将大规模的数据分析任务交给任何一个拥有足够多机器的集群。并采用函数式编程的思想,在各函数之间串行计算(Map执行完毕,才会开始执行Reduce任务)。简单来说Map将...
2018-04-11 14:57:45
940
原创 Hadoop RPC简介
RPC(Remote Procedure Call)————远程过程调用协议 Hadoop RPC在Hadoop中应用非常广泛,Client、DataNode、NameNode之间的通讯全依赖于它(1)它允许一台计算机程序远程调用另外一台计算机的子程序,而不用去关心底层的网络通信细节。对我们来说是透明的。因此,它经常用于分布式网络通信中。RPC协议假定某些传输协议的存在,如TCP或UDP,为...
2018-03-31 13:18:38
653
原创 Hadoop Federation联邦机制
Hadoop1.0 单namenode架构局限性NameSpace(命名空间的限制) 由于Namenode在内存中存储所有的元数据(metadata)。NN在管理大规模的命名空间时,单个Namenode所能存储的对象(文件+块)数目受到Namenode所在JVM的堆【内存大小的限制】。 随着数据的飞速增长,存储的需求也随之增长。50G的heap能够存储20亿个对象—>4000个d...
2018-03-27 20:55:01
5461
1
原创 Hadoop HA机制
Hadoop1.0版本容易引发单点故障HDFS:Hadoop1.x版本中单NameNode设计,其单点处理能力成为HDFS的主要瓶颈 单点故障、内存受限,制约集群扩展性和缺乏隔离机制(不同业务使用同一个NameNode导致业务相互影响)等因为客户端对HDFS的读、写操作之前都要访问NameNode服务器。存在【单点故障问题】计划内的软件或硬件升级,将导致集群在短时间范围内不可用。...
2018-03-27 20:34:06
915
1
原创 Hadoop数据完整性与CheckSum校验原理
一、HDFS数据完整性用户肯定都希望系统在存储和处理数据时,数据不会有任何丢失或损坏。但是,受网络不稳定、硬件损坏等因素,IO操作过程中难免会出现数据丢失或脏数据,难免会出现数据丢失或脏数据,数据传输的量越大,出现错误的概率就越高。检测数据是否损坏的常见措施是,在数据第一次引入系统时计算校验和(checksum)并存储,在数据进行传输后再次计算校验和进行对比,如果计算所得的新校验和和原来的...
2018-03-27 19:57:54
10715
2
原创 HDFS文件读写操作
HDFS读文件客户端首先调用FileSystem对象的open方法打开文件,其实获取的是一个DistributedFileSystem的实例。DistributedFileSystem通过调用RPC(远程过程调用)向namenode发起请求,获得文件的第一批block的位置信息。同一block按照备份数会返回多个DataNode的位置信息,并根据集群的网络拓扑结构排序,距离客户端近的排在前...
2018-03-27 19:17:03
12994
原创 Hadoop元数据存储、加载、恢复
1. 元数据加载 为了保证交互速度,HDFS文件系统的metadata是被load到namenode机器的内存中的。并会将内存中的这些数据保存到磁盘进行持久化存储,但对块的位置信息不进行持久化存储,在DataNode向namenode进行注册时动态加载。当NameNode启动时,它从硬盘中读取Editlog和FsImage。将所有Editlog中的事务作用在内存中的FsImage上,以恢...
2018-03-27 19:01:06
5247
原创 Hadoop中SecondaryNameNode工作机制
SecondaryNameNode是一个用来监控HDFS状态的辅助后台程序,部署在一个单独的服务器上。与NameNode进行通信,以便定期地保存HDFS元数据的快照(周期性将Edits日志文件与fsimage进行合并)。由于NameNode是单点的,通过SecondaryNameNode快照功能,可将NameNode宕机时间和数据损失降低到最小。SecondaryNameNode产生原因 H...
2018-03-27 18:54:06
942
原创 Hadoop DataNode详解
一个集群可能包含上千个DataNode节点,这些DataNode定时和NameNode进行通信,接受NameNode的指令 为了减轻NameNode的负担,NameNode上并不永久保存哪个DataNode上有哪些数据块的信息,而是通过DataNode启动时的上报来更新NameNode上的映射表。根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送所存储的块...
2018-03-27 18:48:45
10857
原创 HDFS分布式文件系统简介
HDFS(Hadoop Distributed File System)Hadoop 分布式文件系统基于流数据模式访问 就是可以字节序列化的数据,java.io.Serializable接口 分布式文件系统处理的数据必须是流数据,可以写IO操作的数据以128MB的数据块存储文件 其中每一个存储节点上都有一个DataNode进程,由NameNode来进行协调。1...
2018-03-27 14:18:36
3819
hadoop技术内幕三件套
2019-01-23
flink依赖jar包——解决NoClassDefFoundError: com/sun/jersey
2019-01-22
Scala程序设计第二版
2018-10-26
apache kafka实战pdf
2018-10-13
hadoop2.7-common-bin
2018-10-12
elasticsearch指南
2018-10-09
Spark大数据分析:核心概念、技术及实践
2018-10-09
spark大数据分析实战
2018-10-09
spark性能调节与优化
2018-10-09
HBase不睡觉书(完整目录)
2018-10-09
spark性能调优
2018-10-09
Flink学习书籍
2018-10-09
Flink高可用集群部署
2018-10-09
Flink学习资料
2018-10-09
apache kafka实战
2018-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅