自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张伯毅的专栏

知者不惑,仁者不忧,勇者不惧.

  • 博客(55)
  • 资源 (13)
  • 收藏
  • 关注

原创 JAVA编程思想笔记 : 并发 [ 一 ]

程序中的所有事物,在任意时刻都只能执行一个步骤.并发的多面性并发解决的问题大体上可以分为"速度"和"设计可管理性"两种并发通常是提高运行在单处理器上的程序的性能.实现并发最直接的方式是在操作系统级别使用进程.困难: 协调不同线程驱动的任务之间的对内存/IO 资源的使用. 以使得这些资源不会同时被多个任务访问.改进代码设计Java 的线程机制是...

2019-04-30 17:29:52 612

原创 JAVA编程思想笔记 : 复用类

复用代码是 Java 众多引人注目的功能之一.但是想要成为机具革命性的语言,仅仅能复制代码并对之加以改变是不够的,它还必须能够做更多的事情.组合语法只需将对象引用置于新类中即可.初始化引用位置 定义对象的地方,他们总是能够在构造器被调用之前初始化. 在类的构造器中 就在要使用这些对象之前, --- 惰性初始化 实例初始化继承语法除非已明确指出要从其他...

2019-04-30 10:55:44 300

原创 JAVA编程思想笔记 : 访问权限控制

如何把变动的事物与保持不变的事物区分开.包:库单元包内包含有一组类,它们在单一的名字空间之下被组织在了一起.当编写一个 Java 源代码文件时,此文件通常被称为编译单元.每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个 public 类,该类的名称必须与文件的名称相同(包括大小姐,但不包括后缀名称.java). 每个编译单元只能有一个 publi...

2019-04-29 16:53:00 311

原创 管理类联考-逻辑 : 基础 [六]

2019-04-29 01:03:59 559

原创 JAVA编程思想笔记 : 初始化与清理

随着计算机革命的发展,"不安全"的编程方式已逐渐成为编程代价高昂的主因之一用构造器确保初始化方法重载任何程序设计语言都具备的一项重要特性就是对名字的运用.当创建一个对象时,就是给此对象分配到的空间取一个名字.所谓的方法就是给某个动作取名字.方法名相同且形式参数不同的构造器.构造器的名字由类名决定,所以只能有个构造器名字,如何多种方式创建对象....

2019-04-28 18:44:28 440

原创 JAVA编程思想笔记 : 控制执行流程

就像有知觉的生物一样,程序必须在执行的过程中控制它的世界.并作出选择Java 使用了 C 的所有流程控制语句.true 和 falseif-else迭代 ( while / do-while / for/ foreach)while 和 do-while 区别: do-while 中的语句至少会执行一次.return分支无需...

2019-04-28 11:30:29 203

原创 管理类联考-逻辑 : 基础 [五]

断定思维对象具有或不具有某种属性的判断,又称为直言判断。逻辑上的[有些/有的] 跟我们日常生活中的[有些/有的] 不一样[有些/有的] ==> 至少有一个.根据性质判断量和质的不同组合,可以有六种类型:1单称肯定判断 这个S是P2.单称否定判断 这个S不是P---------------------...

2019-04-26 21:14:45 846

原创 JAVA编程思想笔记 : 操作符

在最底层,Java 中的数据是通过使用操作符来操作的.更简单的打印语句System.out.println(" Rather a lot to type ");使用 Java 操作符操作符 : 接受一个或多个参数, 并生成一个新值.优先级优先级决定各个部分操作符的计算顺序.赋值取右边的值,把它复制给左边的值.右值可以是任意常数/...

2019-04-26 18:29:06 342

原创 JAVA编程思想笔记 : 一切都是对象

尽管 Java 是基于 C++的, 但相比之下,Java 是一种更"存粹"的面向对象的程序设计语言.用引用操纵对象遥控器(引用) --- 电视机(对象)必须由你创建所有对象1.存储到什么地方寄存器: 最快, 位于处理器内部.容量有限,不受控制. 程序无法感知. 堆栈:RAM 中. 通过堆栈指针控制. 向下移动,分配内存, 向上移动,释放内存. ...

2019-04-26 17:14:56 345

原创 JAVA编程思想笔记 : 对象导论

前言:程序设计其实是对复杂性的管理: 待解决问题的复杂性, 以及用来解决该问题的工具的复杂性.减少开发健壮代码所需的时间以及困难.抽象过程程序可以通过添加新类型的对象,使其适用于某个特定问题.万物皆对象. 程序时对象的结合. 每个对象都有自己的由其他对象所构成的存储. 每个对象都拥有其类型. 某一特定类型的所有对象都可以接口收同样的消息.对象具有状态 ....

2019-04-25 18:20:33 329

原创 管理类联考-逻辑 : 基础 [四]

假言推理假言推理就是以一个假言判断做大前提,一个简单判断做小前提。由于假言判断有三种不同的类型,所以,假言推理分为:充分条件假言推理、必要条件假言推理、充要条件假言推理。充分条件假言推理规则假言连锁推理又称纯假言推理,它是由两个或两个以上的假言命题作前提,推出一个假...

2019-04-24 21:12:14 536

原创 Mac系统, 切换大小写失灵

最近突然,大小姐切换失灵, 查了一下,解决方案如下:系统偏好设置-> 键盘--> 输出法:

2019-04-24 18:52:37 10832

原创 Hadoop3.2.0 源码分析: namenode 启动

通过脚本启动 namenode 的时候,不管怎么样都会调用NameNode 类. 至于脚本怎么调用的自行查看一下脚本:bin/hdfslibexec/hadoop-functions.sh输出 debug 模式下 shell 脚本日志:/Library/java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/...

2019-04-23 18:59:55 1625 1

原创 Hadoop3.2.0 源码分析: datanode 启动

通过脚本启动 namenode 的时候,不管怎么样都会调用DataNode 类. 至于脚本怎么调用的自行查看一下脚本:bin/hdfslibexec/hadoop-functions.sh输出 debug 模式下 脚本日志:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin/ja...

2019-04-23 18:59:26 1021 1

原创 Hadoop3.2.0 源码分析: SHELL启动脚本 DEBUG 模式

在调试代码的时候,需要用到 hadoop 的 debug 模式.所有做了一下记录:打开 DEBUG 模式:export HADOOP_SHELL_SCRIPT_DEBUG=true如果不好用,直接调整函数代码,把判断去掉即可 :启动脚本的时候输出的日志:查看日志文件:...

2019-04-23 18:24:25 957

原创 Hadoop3.2.0 源码分析: ResourceManager 调度 CapacityScheduler 理论

特点以队列为单位划分资源,每个队列可设定一定比例的资源最低保证和使用上限,同时,每个用户也可设定一定的资源使用上限以防止资源滥用。而当一个队列的资源有剩余时,可暂时将剩余资源共享给其他队列。总之,Capacity Scheduler主要有以下几个特点:容量保证:管理员可为每个队列设置资源最低保证和资源使用上限,而所有提交到该队列的应用程序共享这些资源 灵活性:如果一个队列中的资源有剩余,...

2019-04-23 14:05:06 926

原创 Hadoop3.2.0 源码分析: ResourceManager 调度 CapacityScheduler

在上一节中,只是讲解了ResourceManager 的启动,这次来说另外一个核心的点没说,那就是调度.// Initialize the scheduler// todo ResourceScheduler 调度器的创建,他的子类之一就是FairSchedulerscheduler = createScheduler();scheduler.setRMContext(rmCo...

2019-04-23 06:57:57 947

原创 管理类联考-逻辑 : 基础 [三]

假言判断是断定一事物情况存在是另一事物情况存在的条件的判断充分假言判断: 只要......就......充分条件假言判断:P→Q必要条件假言判断:¬P→¬Q充分必要条件假言判断:P↔Q...

2019-04-22 21:20:12 695

原创 Hadoop3.2.0 源码分析: Container 之 DefaultContainerExecutor 与 LinuxContainerExecutor

在yarn 里面Container 是可选的.本文介绍以下两种:DefaultContainerExecutor LinuxContainerExecutor由配置参数控制: yarn.nodemanager.container-executor.class有NodeManager初始化的时候,进行加载org.apache.hadoop.yarn.server.nodema...

2019-04-22 16:36:15 2796 2

原创 管理类联考-逻辑 : 基础 [二]

选言选言判断就是断定几种事物情况至少有一种事物情况存在的判断。相容选言断定几种事物情况至少有一种存在(可同时存在)的判断或者,或者 : 相容选言.是,还是 : 相容选言.或 : 相容选言(1)选言肢有一个为真,相容选言判断为真。(2)选言肢都假时,相容选言判断为假。不相容选言...

2019-04-19 21:29:32 953

原创 管理类联考-逻辑 : 基础 [一]

综合能力考试中的逻辑推理部分主要考查考生对各种信息的理解、分析和综合,以及相应的判断、推理、论证等逻辑思维能力,不考查逻辑学的专业知识。试题内容涉及自然、社会和人文等各个领域,但不考查相关领域的专业知识。判断与负判断判断种类:负判断两个判断之间一真一假的关系称为矛盾关系理解矛盾关系:矛盾关系,一真一假判...

2019-04-19 20:09:18 825

原创 MAC版本: Hadoop3.2.0 源码编译 [ 二 ]

MAC版本,Hadoop3.2.0 提供了 docker 编译的方式.构建方式非常简单, 不过首先你要先安装好 docker.1.安装 docker (自行安装)需要设置一下共享目录:2.运行:start-build-env.sh等待构建完成.安装成功如图:3. 输入命令进行编译 $ mvn packa...

2019-04-19 00:02:01 1552

原创 Intellij IDEA设置忽略部分类编译错误

有些时候我们的项目中有些错误,但这些错误并不影响项目的整体运行(或许是没有使用到),默认情况下idea是无法通过编译的,因此也就无法部署运行,要达到正确运行项目的目的需要作一些设置才行。设置如下:...

2019-04-18 22:03:03 2285

原创 IntelliJ IDEA 修改内存大小

mac 版本:配置文件路径:/Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions修改-Xms 最小内存-Xmx 最大内存建议改成一样值.设置完成之后,需要重启一下idea,然后就会看到下面的变化。注意右下角。如何显示的呢??好了,...

2019-04-18 21:40:56 5640

原创 Intellij IDEA中file size exceeds configured limit解决

把Hadoop源码导入IDEA中后,其中有个YarnProtos 文件代码为3.28MB,IDEA直接就不把它当java类看了,报file size exceeds configured limit错误。解决办法如下:你可以尝试修改intellij IDE安装目录下的bin/idea.properties,mac 地址为:/Application...

2019-04-18 21:30:46 5842

原创 Hadoop3.2.0 源码分析: NodeManager

概念NodeManager(NM)是YARN中每个节点上的代理,它管理Hadoop集群中单个计算节点,包括与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资源使用(内存、CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务。构造图:类图:...

2019-04-18 15:16:09 879 1

原创 Hadoop3.2.0 源码分析: ResourceManager启动

概述相信开始看源码的你,正在一点点的进入知识的殿堂,一起挖掘吧.ResourceManager 是Yarn 的资源调度中心,很重要,所有的资源申请都需要通过ResourceManager来调度.The ResourceManager is the main class that is a set of components."I am the ResourceMa...

2019-04-18 11:50:15 2569 1

原创 IntelliJ IDEA中设置忽略@param 注释参数不椅子报错

IntelliJ IDEA中如何设置忽略@param注释中的参数与方法中的参数列表不一致的检查解决方案如下:

2019-04-17 11:37:04 2991

原创 Hadoop3.2.0 源码编译 [一]

1.软件包版本:hadoop-3.2.0链接:https://pan.baidu.com/s/1wo8ysbGcHw5haOfKyKaEKA 密码:ygxj2.环境准备: * Unix System * JDK 1.8 * Maven 3.3 or later * ProtocolBuffer...

2019-04-13 09:47:26 8531 8

原创 mac/linux 安装cmake 3.1.0

最近在编译hadoop3.2.0源码的时候,发现cmake编译不过去,貌似需要调整cmake版本. (结果就是白折腾)估计是在安装 xcode9的时候, 软件自动做了升级.如果单独安装的话,推荐采用 brew install cmake .源码安装:cmake 版本: 3.1.0下载链接: https://pan.baidu.com/s/14rh...

2019-04-12 23:56:20 2581

原创 在Mac上搭建OpenJDK10源码调试环境

软件环境OS: macOS Sierra 10.14 IDE: Clion 2019.1 Code: OpenJDK 10下载IDE从JetBrains官网下载Clion,安装。导入项目打开Clion依次选择File>Import Project编辑配置如下图编辑DEBUG配置信息1.Executable选择之前build出...

2019-04-12 13:53:40 1369

原创 在Mac上编译OpenJDK10源码

官方说明 : Get the complete source code:hg clone http://hg.openjdk.java.net/jdk10/master Run configure:bash configure Ifconfigurefails due to missing dependencies (to either thetoolchain,...

2019-04-12 13:34:02 5923 4

转载 如何画出一张合格的技术架构图?

当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手、删了又来? 如何用一张图描述我的系统,并且让产品、运营、开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困...

2019-04-11 09:23:57 61880 2

原创 hadoop 3.x 50070端口无法访问 端口变更为9870

原来是3.x 版本NameNode 50070端口 -> 9870端口了所以把50070改成9870就可以了NameNode -http://localhost:9870/官方文档截图:单节点访问截图:...

2019-04-08 10:00:13 6158

原创 NIO与Socket笔记 :AIO的使用

AIO 也叫NIO2.0 是一种非阻塞异步的通信模式。在NIO的基础上引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现。AIO 并没有采用NIO的多路复用器,而是使用异步通道的概念。其read,write方法的返回类型都是Future对象。而Future模型是异步的,其核心思想是:去主函数等待时间。小结:AIO模型中通过AsynchronousSocketChann...

2019-04-07 20:01:10 2162

原创 NIO与Socket笔记 :Selector 类的使用

Selector类的主要作用是作为 SelectableChannel对象的多路复用器。可通过调用 Selector类的 open()方法创建选择器,该方法将使用系统的默认 Selector­ Provider创建新的选择器。也可通过调用自定义选择器提供者的 openSelector()方法来创建 选择器。在通过选择器的 close()方法关闭选择器之前,选择器一直保持打开状态。通过...

2019-04-07 18:46:36 2094

转载 Google Protocol Buffer 的使用和原理

简介什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol ...

2019-04-06 18:55:35 1594

翻译 JAVA面试常见问题200+

包含的模块Java 基础容器多线程反射对象拷贝Java Web异常网络设计模式Spring/Spring MVCSpring Boot/Spring CloudHibernateMyBatisRabbitMQKafkaZookeeperMySQLRedisJVM包含的模块本文分为十九个模块,分别是:J...

2019-04-06 16:53:58 3036

原创 NIO与Socket笔记 :Selector 的使用

选择器与 I/O 多路复用Selector选择器是 NIO 技术中的核心组件,可以将通道注册进选择器中,其主要作用就 是使用 1个线程来对多个通道中的已就绪通道进行选择,然后就可以对选择的通道进行数据 处理,属于一对多的关系,也就是使用1个线程来操作多个通道,这种机制在 NIO 技术中 称为“ I/O 多路复用” 。它的优势是可以节省 CPU 资源,因为只有 1 个线程, CPU ...

2019-04-04 18:44:27 2437

原创 NIO与Socket笔记 :实现Socket 通信[ 四 ]

基于UDP的Socket通信UDP (User Datagram Protocol,用户数据报协议)是一种面向无连接的传输层协议,提供不可靠的信息传送服务 。无连接是指通信时服务端与客户端不需要建立连接,直接把数据包从一端发送到另 一端,对方获取数据包再进行数据的处理 。UDP 是“不可靠的”,是指该协议在网络环境不好的情况下,会丢失数据包,因为没有数据包重传的功能,另外它...

2019-04-04 15:52:53 1687

jdk-8u251-macosx/linux/windows 多版本下载

多版本JDK jdk-8u251-linux-x64.rpm jdk-8u251-linux-x64.tar.gz jdk-8u251-macosx-x64.dmg jdk-8u251-windows-i586.exe jdk-8u251-windows-x64.exe

2020-06-28

虚拟机上网环境设置.doc

虚拟机上网环境设置.doc

2020-06-12

《编译原理(第二版)》带书签.pdf

编译原理 第二版 带书签, 赵建华 译

2019-06-06

Flink基础教程.pdf

原版。高清,带页签。 作为新一代的开源流处理器,Flink是众多大数据处理框架中一颗冉冉升起的新星。它以同一种技术支持流处理和批处理,并能同时满足高吞吐、低延迟和容错的需求。本书由Flink项目核心成员执笔,系统阐释Flink的适用场景、设计理念、功能、用途和性能优势

2019-05-28

数据结构与算法分析 java语言描述(原书第3版)中文PDF+源码+课后习题源码

数据结构与算法分析 java语言描述(原书第3版)中文PDF+源码+课后习题源码

2019-05-08

深入理解计算机系统(原书第3版)PDF 计算机科学丛书 [美] 兰德尔 E.布莱恩特

前言   本书(简称CS:APP)的主要读者是计算机科学家、计算机工程师,以及那些想通过学习计算机系统的内在运作而能够写出更好程序的人。   我们的目的是解释所有计算机系统的本质概念,并向你展示这些概念是如何实实在在地影响应用程序的正确性、性能和实用性的。其他的系统类书籍都是从构建者的角度来写的,讲述如何实现硬件或系统软件,包括操作系统、编译器和网络接口。而本书是从程序员的角度来写的,讲述应用程序员如何能够利用系统知识来编写出更好的程序。当然,学习一个计算机系统应该做些什么,是学习如何构建一个计算机系统的很好的出发点,所以,对于希望继续学习系统软硬件实现的人来说,本书也是一本很有价值的介绍性读物。大多数系统书籍还倾向于重点关注系统的某一个方面,比如:硬件架构、操作系统、编译器或者网络。本书则以程序员的视角统一覆盖了上述所有方面的内容。   如果你研究和领会了这本书里的概念,你将开始成为极少数的“牛人”,这些“牛人”知道事情是如何运作的,也知道当事情出现故障时如何修复。你写的程序将能够更好地利用操作系统和系统软件提供的功能,对各种操作条件和运行时参数都能正确操作,运行起来更快,并能避免出现使程序容易受到网络攻击的缺陷。同时,你也要做好更深入探究的准备,研究像编译器、计算机体系结构、操作系统、嵌入式系统、网络互联和网络安全这样的高级题目。   读者应具备的背景知识   本书的重点是执行x86-64机器代码的系统。对英特尔及其竞争对手而言,x86-64是他们自1978年起,以8086微处理器为代表,不断进化的最新成果。按照英特尔微处理器产品线的命名规则,这类微处理器俗称为“x86”。随着半导体技术的演进,单芯片上集成了更多的晶体管,这些处理器的计算能力和内存容量有了很大的增长。在这个过程中,它们从处理16位字,发展到引入IA32处理器处理32位字,再到最近的x86-64处理64位字。   我们考虑的是这些机器如何在Linux操作系统上运行C语言程序。Linux是众多继承自最初由贝尔实验室开发的Unix的操作系统中的一种。这类操作系统的其他成员包括Solaris、FreeBSD和MacOS X。近年来,由于Posix和标准Unix规范的标准化努力,这些操作系统保持了高度兼容性。因此,本书内容几乎直接适用于这些“类Unix”操作系统。   文中包含大量已在Linux系统上编译和运行过的程序示例。我们假设你能访问一台这样的机器,并且能够登录,做一些诸如切换目录之类的简单操作。如果你的计算机运行的是Microsoft Windows系统,我们建议你选择安装一个虚拟机环境(例如VirtualBox或者VMWare),以便为一种操作系统(客户OS)编写的程序能在另一种系统(宿主OS)上运行。   我们还假设你对C和C++有一定的了解。如果你以前只有Java经验,那么你需要付出更多的努力来完成这种转换,不过我们也会帮助你。Java和C有相似的语法和控制语句。不过,有一些C语言的特性(特别是指针、显式的动态内存分配和格式化I/O)在Java中都是没有的。所幸的是,C是一个较小的语言,在Brian Kernighan和Dennis Ritchie经典的“K&R”文献中得到了清晰优美的描述\[61\]。无论你的编程背景如何,都应该考虑将K&R作为个人系统藏书的一部分。如果你只有使用解释性语言的经验,如Python、Ruby或Perl,那么在使用本书之前,需要花费一些时间来学习C。   本书的前几章揭示了C语言程序和它们相对应的机器语言程序之间的交互作用。机器语言示例都是用运行在x86-64处理器上的GNU GCC编译器生成的。我们不需要你以前有任何硬件、机器语言或是汇编语言编程的经验。   给C语言初学者  关于C编程语言的建议   为了帮助C语言编程背景薄弱(或全无背景)的读者,我们在书中加入了这样一些专门的注释来突出C中一些特别重要的特性。我们假设你熟悉C++或Java。

2019-03-08

Java虚拟机规范(Java SE 8版) 带书签

Java虚拟机规范(Java SE 8版) (Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译,是深度了解Java虚拟机和

2018-10-26

Hadoop权威指南:大数据的存储与分析(第4版)

Hadoop权威指南:大数据的存储与分析(第4版) 出版社: 清华大学出版社 PDF版本

2018-10-17

HBase应用架构PDF版本

HBase应用架构 [美] 吉恩-马克·斯帕加里(Jean-Marc Spaggiari) 著,陈敏敏 夏锐 陈其生 译

2018-09-21

Thinking in UML(2 edition)

在网上下载的,有兴趣的可以看看。 ------------------------------------------------ 当你的才华还撑不起你的野心时,那你就应该静下心来学习;当你的能力还驾驭不了你的目标时,那就应该沉下心来历练、沉淀和积累!

2014-06-24

《谁说菜鸟不会数据分析》入门篇-简版电子书

整理的电子书,有喜欢的可以下载。 ------------------------------------------------------------ 当你的才华还撑不起你的野心时,那你就应该静下心来学习;当你的能力还驾驭不了你的目标时,那就应该沉下心来历练、沉淀和积累!

2014-06-24

[逻辑思维训练500题II].于雷.扫描版

整理的电子书,有喜欢的可以下载。 ------------------------------------------------------------ 当你的才华还撑不起你的野心时,那你就应该静下心来学习;当你的能力还驾驭不了你的目标时,那就应该沉下心来历练、沉淀和积累!

2014-06-24

空空如也

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

TA关注的人

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