MapReduce提交job到Yarn的流程学习 以MapReduce为例,提交一个MapReduce application的大致流程如下,其中Resource Manager简写为RM,Node Manager简写为NM,Application Master简写为AM。提交application大致流程(1)首先client里执行一个MapReduce程序,这个程序运行在client端的JVM里,在main方法中最后有一个job...
Yarn资源调度器入门学习 调度器scheduler是yarn中重要角色之一,它负责分配container资源给application,有如下三种调度器可供配置选择,分别是FIFO Scheduler,Capacity Scheduler和Fair Scheduler,可以通过yarn-site.xml配置自己的调度器。FIFO SchedulerFIFO调度器使比较low的一种调度器,它遵循先进先出的原则,即...
Spring AOP入门基础-继承、装饰者,代理的选择 关于Spring AOP,底层是基于动态代理实现的,下面简单的学习下为什么选择动态代理,而不选择继承实现,装饰者模式实现,下面参考如下业务场景下理解。业务场景业务层如果有业务需求,需要在注册用户,升级用户,和删除用户方法前都进行一次权限验证,最原始的方法就是在业务层每个方法前都添加代码验证。这是最原始的方式,在实际业务中有很多的方法,那都需要重写修改,很显然这是不合理的,因此衍生...
Java Ajax入门 接下来整理一下Ajax相关的内容,AJAX(asynchronous js and xml),即异步的JavaScript和xml,它的主要作用就是让页面不必等待服务器返回整个页面信息,而可以通过异步的方式给服务器发送数据和获取数据,对页面进行局部刷新,是一种提高用户体验的技术。同步和异步同步和异步的主要区别如下;(1)同步:一个响应结束后才能发送下一个请求,页面在请求期间不...
Servlet Config和Context入门 接下来学习一下ServletConfig和ServletContext的内容,简单来说ServletConfig是相对当前servlet的,ServletContext是相对整个web应用的,此外ServletContext还可以获得资源路径,下面简单整理一下。Servlet Config获取当前servlet对象的配置信息Servlet Config代表当前servlet在...
MapReduce-Shuffle入门 接下来了解了一下MapReduce中的shuffle,它就是map端产生输出到reduce端消化map端输出的全部过程。map端本地磁盘的文件如果有多份,会保存不同的block块到datanode,block块的个数决定了map任务数的个数,如图有3个block块,对应有3个map任务在执行,以第一为例,刚开始map方法会逐行读取block块信息,将当前行相对block块的字节偏...
Servlet Response常用方法 接下来记录一下Servlet Response相关的信息,在service方法中使用的是HttpServletResponse,它继承自ServletResponse,扩展了Http协议相关的内容,下面简单记录一下它的基本用法。response组成内容以下是一个常见response响应的内容,它包括状态行、响应头、一个空行和实体内容,其中"HTTP/1.1 200 OK"就是状态...
Servlet Request常用方法 接下来记录一下Servlet Request和Response的常用API,以及乱码问题。RequestRequest即HttpRequest,可以获取客户端相关的信息、获取请求头以及获取请求参数等。获取客户端相关的信息常使用的API有如下(1)getRequestURL方法 -- 返回客户端发出请求完整URL(2)getRequestURI方法 -- 返回请求行中的...
Servlet入门 Servlet是JavaWeb三大组件(Servlet,Filter,Listener)之一,是SUN公司提供的一门动态资源开发的技术,下面简单记录一下如何在IDEA下创建一个自定义Servlet、如何修改Servlet模板、Servlet运行过程简单分析等。IDEA创建自定义ServletServlet是顶级接口,下面是GenericServlet抽象类,这个抽象类实现了Ser...
MySQL入门 这里简单的记录一下,MySQL的基本语法,包括建表,删除表,以及增删改查等操作。数据库的创建建表常用使用语法为CREATE DATABASE [IF NOT EXISTS] 表名 ,后面也可以指定字符集和校对规则,如果不指定就是默认的,可以通过命令来查看。1 CREATE DATABASE mydb1; 2 --指定字符集3 CREA...
Tomcat基本使用 Java Web项目有多种服务器的选择,比较常见的是Tomcat,WebLogic和WebSphere,接下来主要了解Tomcat。另外Web项目需要有HTTP的知识,这里对request和response消息也进行基本了解。Web服务器简单对比(1)Tomcat:免费,是apache下产品,支持全部的JSP以及Servlet规范,现在也开始支持其他JavaEE规范,如可以支持J...
Java线程入门 下面学习线程的基本知识,包括线程与进程区别、开辟新线程的方法、线程安全隐患、死锁、等待唤醒机制和生产者消费者模式等知识。线程线程:负责进程中程序的执行,是进程的一个执行单元,一个进程中允许有多个线程,为多线程,如果只有一条线程,称之为单线程。一个进程至少有一条线程。多线程并没有真的提高了运行速度,在同一时刻只有一条线程在执行,由于切换速度很快,感觉好像很多线程在同时执行。进程:正...
Linux下扩展根分区-非LVM 在配置大数据节点的过程中,node03节点由于安装了图形化界面,以及IDEA等工具,导致/根分区只有几百兆了,因此需要对根分区进行扩容,本文是在参考如下博文(https://www.jianshu.com/p/9db2df60fd0a)的基础上完成的,感谢被引用的博主,这里也记录一下。VMware虚拟机中配置(1)进入虚拟机设置界面,选择扩展磁盘容量。(2) 本次是在原来...
Java面向对象入门 面向对象面向对象是一种思维方式,是相对于面向过程来说的。面向过程需要注重流程中的每一个细节,面向对象注重的是对象,只要找到这个对象,就能够拥有对象身上的一切功能。以做饭为例,如果是面向过程需要知道做饭的每一个步骤才能做饭,如果是面向对象只要找到做饭的厨师(厨师就是对象),让厨师就可以完成做饭。面向对象是基于面向过程的,面向过程里可能又有面向对象的使用。面向对象不一定比面向过程好,如果...
Java枚举入门学习 接下来学习枚举的概念,以及基本使用。JDK1.5 特性-枚举在开发中有一类数据集比较特殊,它们数值稳定并且元素个数有限,如一个星期的7天,一年的四个季节,一年的12个月等,这种有固定的内容的情况可以使用枚举,枚举的个数是固定的,不容许随意改动,它也是一个类,是JDK1.5引入的一个新的类型。如下代码1和代码2是参考了博客的枚举简单使用,枚举中的值建议全部大写,语法格式如下:enu...
JDBC入门 接下来记录一下,JDBC的相关知识点为什么使用JDBC不同的数据库有不同的驱动,为了使用这些数据库如果没有JDBC就需要每个驱动都需要了解,但是有了JDBC后,就只需要了解JDBC的API就可以了。JDBC是数据库驱动的上层,里面主要包含一些接口,而各个数据库厂商需遵循这个接口来开发驱动。组成JDBC需要2个包的支持,其为java.sql包和javax.sql包,另...
Java数组复制和二维数组 接下来对数组的复制,以及二维数组的知识进行整理。数组的复制一维数组的复制常用有两种方法,一个为System.arraycopy(原数组,原数组复制起始位置,新数组,新数组复制起始位置,要复制的长度),一个为Arrays.copyOf(原数组,要复制的长度)方法,两者复制的过程中都将创建新数组,下面记录一下。import java.util.Arrays;public class ...
克隆虚拟机配置节点以及Xshell连接不上虚拟机解决 先克隆以前搭建的虚拟机,需要修改主机名,配置网卡,配置hosts文件等配置Hadoop虚拟机省略克隆过程,现在直接登进去在虚拟机中先进行配置。修改主机名可以有两种方式修改主机名,可以直接修改/etc/hostname,或者使用命令,在centos7中我采用命令的方式。配置网卡首先查看,然后修改ip,子网掩码,网关,dns1和dns2。修改后如下,使用v...
Eclipse常用快捷键 以下是Eclipse使用过程中需要经常使用的快捷键,记录一下。Eclipse 常用快捷键Alt+/ 跳出快捷提示Ctrl+1 跳出错误提示Ctrl+F11 运行Ctrl+Shift+o 导包Alt+Shift+s 呼出set set 构造方法自动生成Ctrl+Shift+f 调整格式 不能在任何输入法下使用,会有冲突Alt+↑/↓ 整行上移或下移动Ctrl+F 搜索C...
Java数组的简单应用 本文记录Java数组的几个基本应用。数组的初始化和遍历数组初始化和遍历都有三种方式,参考如下代码。 1 import java.util.Arrays; 2 public class ArrayDemo{ 3 public static void main(String[] args){ 4 //定义数组的三种方式 5 ...