自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ROGEN1-秀发

秀发的学习历程

  • 博客(54)
  • 收藏
  • 关注

原创 多线程--线程间通信(二)

上篇说到了线程间的同步互斥和比较经典的消费者生产者问题,其中涉及到了线程间通信和线程锁这两个概念,下面就来谈谈这两个概念和具体实现方法。一、线程状态正式开始之前,先来普及线程的几种状态:    1. 新建状态(New):新创建了一个线程对象。    2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运

2016-09-21 02:57:46 561

原创 多线程--同步互斥&生产者消费者(一)

一、线程同步&互斥在实际应用中,多个线程往往会共享一些数据,并且各个线程之间的状态和行为是相互影响的。线程之间的影响有两种,一种是线程间的互斥,另一种是线程间的同步。---线程安全(Thread-Safe)---线程间的互斥---线程间的同步线程之间的关系大致可以分为两类1、线程之间通过对资源的竞争,包括共享的数据和硬件资源,所产生的相互制约关系,这类线程间的主要问

2016-09-21 01:59:06 904

原创 Hadoop回顾--HDFS的HA机制&Federation机制

为了解决hadoop集群上所谓的“单点”和单NameNode起作用问题,一群NB的程序员引入了HA和Federation机制。一、HA机制1、概念由于原先的集群中只有一个NameNode,所以一旦这个NameNode出问题或者要升级,整个集群就得停止一段时间。于此,就有了HA机制。说白了所谓的HA机制就是给NameNode弄了一个热备:给一个HA集群中配置了俩NameNode,平时

2016-09-20 02:47:52 1427 1

转载 Linux--Linux常用命令

常用指令ls          显示文件或目录     -l           列出文件详细信息l(list)     -a          列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir         创建目录     -p           创建目录,若无父目录,则创建p(parent)cd               切

2016-09-20 02:02:33 380

转载 Hadoop回顾--hive中order by,sort by, distribute by, cluster by作用以及用法

转自:http://blog.csdn.net/jthink_/article/details/389037751. order by    Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有

2016-09-20 01:56:27 398

原创 数据库--索引的类型及特点

前面说了很多关于索引的问题,今天来回顾下索引最基础的东西,分类和特点。一、什么是索引 索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(name)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据

2016-09-20 01:47:56 819

原创 Hadoop回顾--MapReduce的负载均衡

接触了近一年的Hadoop,对MapReduce的工作流程,容错机制都有了一些浅显的理解。自己也写过一些加载文件和排序的MapReduce,但一直处于学习阶段,对MapReduce在集群上的应用理解还是太浅,在这说说我对MapReduce负载均衡的认识。一、Randomized Hydrodynamic Load Balancing:基本内容负载平衡用来确保在使用其

2016-09-20 01:24:58 2538

原创 Hadoop回顾--MapReduce异常处理

一、MapReduce任务异常的处理方式1、异常最常见的是:(1)Map或Reduce任务中的某些代码抛出异常,此时Hadoop强行停止java虚拟机,并向JobTracker汇报,JobTracker将任务标记为失败显示给用户,同时写入日志目录。(2)MapReduce因为JVM的bug或者节点硬件的问题产生异常(非代码问题),TaskTracker重新更换节点运行,若一个任务在不同

2016-09-20 01:10:21 2225

转载 计网--OSI七层与TCP/IP五层网络架构详解

OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助。今天偶又复习了一下: (1)OSI七层模型 OSI中的层 功能 TCP/IP协议族应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层 数据格式化,代码转换,数据加密 没有协议会话

2016-09-19 00:46:37 6426

转载 JAVA基础--JMM(二)

深入理解Java内存模型(一)——基础并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来

2016-09-18 22:58:00 621

转载 JAVA基础--JVM原理(二)

这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。线程JVM 系统线程每个线程相关的程序计数器栈本地栈栈限制栈帧局部变量数组操作数栈动态链接线程共享堆内存管理非堆内存即时编译方

2016-09-18 22:48:58 293

转载 JAVA基础--JVM原理(一)

一、java虚拟机的生命周期:  Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须给Java虚拟机指明这个包换main

2016-09-18 22:46:25 282

转载 JAVA基础--泛型的好处

java 泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。         泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指

2016-09-18 22:40:36 358

转载 JAVA基础--接口&抽象类

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。       抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。      一、抽象类       我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类

2016-09-18 22:28:51 307

转载 JAVA基础--类加载&对象创建过程

类加载过程:1, JVM会先去方法区中找有没有相应类的.class存在。如果有,就直接使用;如果没有,则把相关类的.class加载到方法区2, 在.class加载到方法区时,会分为两部分加载:先加载非静态内容,再加载静态内容3, 加载非静态内容:把.class中的所有非静态内容加载到方法区下的非静态区域内4, 加载静态内容:4.1、把.class中的所有静态

2016-09-18 22:25:56 302

转载 JAVA基础--I/O

一.理论准备流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行,设备可以是文件、网络、内存等。流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序(小马哥说的是机器)为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流,可以将流想象成一个“水流管道”(很多资料都这么讲的),自然就出现了方向的概念。流把I/

2016-09-18 22:09:39 341 2

原创 Hadoop回顾--Hive基本知识(二)

一、创建表- 创建表时ROW FORMAT DELIMITED 必须写在其他子句之前(除了STORED AS...)- 设置列分隔符:FIELDS TERMINATED BY '\001'- 设置集合元素间分隔符:COLLECTION ITEMS TERMINATED BY '\002'- 设置map键和值之间的分隔符:MAP KEYS TERMINATED BY 

2016-09-18 21:54:22 344

原创 Hadoop回顾--Hive特性(一)

一、Hive的特点- HQL:一种类SQL语言- 存储位置    - Hive:所有数据存储在HDFS上    - 数据库:存储在块设备或者本地文件系统中- 数据格式    - Hive:没有专门的数据格式,数据格式可以自定义,文件格式有三个默认格式(TextFile、SequenceFile、RCFile),由于在加载数据时不用进行格式转换

2016-09-18 21:51:38 521

转载 数据库--MySQL体系结构

mysql体系结构:     由:连接池组件、管理服务和工具组件、sql接口组件、查询分析器组件、优化器组件、                缓冲组件、插件式存储引擎、物理文件组成。     mysql是独有的插件式体系结构,各个存储引擎有自己的特点。                  mysql各个存储引擎概述:     innodb存储引擎:[/colo

2016-09-18 16:55:57 396

转载 数据库--MySQL三种常用数据存储引擎

MySQL 的存储引擎可能是所有关系型数据库产品中最具有特色的了,不仅可以同时使用多种存储引擎,而且每种存储引擎和MySQL之间使用插件方式这种非常松的耦合关系。由于各存储引擎功能特性差异较大,这篇文章主要是介绍如何来选择合适的存储引擎来应对不同的业务场景。MyISAM特性不支持事务:MyISAM存储引擎不支持事务,所以对事务有要求的业务场景不能使用表级锁定:其锁定

2016-09-18 16:52:18 387

转载 数据库--使用索引的注意事项及常见场景

一、索引的原理与作用,各种书籍和网络上的介绍可以说是铺天盖地,基本上主流数据库系统的也都是一致的。选择索引字段的原则,比如外键字段、数据类型较小的字段、经常用于查询或排序的字段、表关联的字段等等,在此不做赘述。本人在工作中见到过很多人创建的索引,回想自己以前也会有理论知识空洞的体会,总感觉理论知识无法与具体的工作问题相匹配。在此仅以工作学习中积累的一点经验和问题场景整理以飨读者。先把常见的

2016-09-18 15:08:58 1861

转载 数据库--SQL索引基础

SQL索引目录   索引基础知识  聚集索引  非聚集索引  认识执行计划  灵活设计数据库      页和区要想做好索引优化,知道索引的存储结构是至关重要的。谈到存储就需要了解SQL中的页和区的概念:  SQL中存储数据的基础单位就是页,一个页大小为8K,数据库可以将数据从逻辑上分成页,磁盘的I/O操作就是在页级执行。页包信三项内容:96字节大小的标头,存

2016-09-18 14:59:19 385

转载 数据库--SQL查询优化

1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库.备

2016-09-18 14:51:14 282

转载 计网--ARQ与滑动窗口协议

ARQ与滑动窗口概念       滑动窗口协议,是TCP使用的一种流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。   自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠服务的基

2016-09-18 14:47:39 1599

转载 计网--TCP流量控制与拥塞控制

TCP的流量控制1. 利用滑动窗口实现流量控制    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。    利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。    设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里

2016-09-18 14:45:36 740

转载 计网--TCP三挥四握&TCP与UDP的区别

TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,

2016-09-18 14:40:20 502

转载 Hadoop回顾--HDFS工作流程

简介HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统(中文,英文)。HDFS有很多特点:    ① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。    ② 运行在廉价的机器上。(商用机)    ③...

2016-09-18 13:43:12 545

转载 Hadoop回顾--MapReduce错误处理

错误处理出现错误主要有以下三种: 1、Task任务 2、JobTracker失败 3、TaskTracker失败Task任务1、当map或者reduce子任务中的代码抛出异常,JVM进程会在退出之前向服务tasktracker进程发送错误报告,tasktracker会将此(任务尝试)taskattempt标记为failed状态,释放一个槽以便运行另外一个任务。

2016-09-18 12:53:50 415

转载 Hadoop回顾--HFDS原理、架构与特性介绍(一)

1:当前HDFS架构详尽分析    HDFS架构 •NameNode •DataNode •Sencondary NameNode 数据存储细节 NameNode 目录结构 Namenode 的目录结构:            ${ dfs.name.dir}/current /VERSION

2016-09-17 16:46:26 8672

转载 Hadoop回顾--MapReduce工作原理(二)

目录:1.MapReduce作业运行流程2.Map、Reduce任务中Shuffle和排序的过程 正文: 1.MapReduce作业运行流程下面贴出我用visio2010画出的流程示意图:   流程分析:1.在客户端启动一个作业。2.向JobTracker请求一个Job ID。3.将运行

2016-09-17 16:32:03 280

转载 Hadoop回顾--MapReduce工作原理(一)

第一部分:MapReduce工作原理   MapReduce 角色•Client :作业提交发起者。•JobTracker: 初始化作业,分配作业,与TaskTracker通信,协调整个作业。•TaskTracker:保持JobTracker通信,在分配的数据片段上执行MapReduce任务。提交作业•在作业提交之前,需要对作业进行配置•程序代码

2016-09-17 16:03:31 274

转载 JAVA基础--十大常见异常

NO.1 java.lang.NullPointerException  这个异常大家肯定都经常遇到,异常的解释是 “程序遇上了空指针 “,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初

2016-09-17 12:00:08 387

转载 JAVA基础--接口和抽象类

抽象是面向对象设计的几大特点之一,在Java中的体现则是抽象类和接口。这两者十分的相似,想很多初学者甚至接触Java几年的人也很难分清他们。今天笔者在查看集合类相关的代码的时候,发现了有部分是接口如List、Map等,有部分是抽象类如AbstractList、AbstractSet等,由于对两者不是十分的清楚,比较迷惑。所以今天笔者在本文则主要介绍下这两者的区别。抽象类抽象

2016-09-16 23:42:25 271

转载 JAVA应用--读取文件

1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 public class ReadFromFile {    /**     * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。     */    public static void readFileByBytes(String fileN

2016-09-16 23:37:11 223

转载 JAVA基础--Synchronized

在我们的实际应用当中可能经常会遇到这样一个场景:多个线程读或者、写相同的数据,访问相同的文件等等。对于这种情况如果我们不加以控制,是非常容易导致错误的。在java中,为了解决这个问题,引入临界区概念。所谓临界区是指一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程访问。在java中为了实现临界区提供了同步机制。当一个线程试图访问一个临界区时,他将使用一种同步机制来查

2016-09-16 19:08:02 266

转载 JAVA基础--多线程实践

Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 可以用如下方式用java中创建一个线程:Tread thread = new Thread();执行该线程可以调用该线程的start()方法:thread.start();在上面的例子中,我们并没有为线程编

2016-09-16 19:04:44 263

转载 JAVA基础--LinkedHashSet 和 LinkedHashMap

总体介绍如果你已看过前面关于HashSet和HashMap,以及TreeSet和TreeMap的讲解,一定能够想到本文将要讲解的LinkedHashSet和LinkedHashMap其实也是一回事。LinkedHashSet 和 LinkedHashMap 在Java里也有着相同的实现,前者仅仅是对后者做了一层包装,也就是说LinkedHashSet里面有一个LinkedHas

2016-09-16 18:58:53 434

转载 JAVA基础--HashSet 和 HashMap

总体介绍之所以把HashSet和HashMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此本文将重点分析HashMap。HashMap实现了Map接口,允许放入null元素,除该类未实现同步外,其余跟Hashtable大致相同,跟TreeMap不同,该容器

2016-09-16 18:54:59 336

转载 JAVA基础--ArrayList

总体介绍ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添加元素时,如果容量不足,容器会自动增大底层数组的大小。前面已经提过,

2016-09-16 18:51:35 230

转载 JAVA基础--LinkedList

总体介绍LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。这样看来,LinkedList简直就是个全能冠军。当你需要使用栈或者队列时,可以考虑使用LinkedList,一方面是因为Java官方已经声明不建议使用Stack类,更遗憾的是,Java里根本没有一个叫做Qu

2016-09-16 18:49:58 247

空空如也

空空如也

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

TA关注的人

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