- 博客(29)
- 资源 (7)
- 收藏
- 关注
原创 大数据知识(六):Hadoop练习
流量统计需求流量的数据1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 24681 2001363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 120.197.40.4 4 0 264 0 20013631579...
2018-05-26 15:55:02 3285 1
原创 大数据知识(六):Hadoop基础MapReduce全流程解析
前几节中,我们已经了解了MapTask并行度机制、ReduceTask并行机制、Yarn运行流程以及Partitioner和Combiner的原理,现在我们结合这几节综合讲解全流程。 1.启动任务之后,首先运行的是MapTask任务,这里会使用InputFormat组件进行数据的读取,InputFormat的默认实现类是TextInputFormat,该类使用RecordRead对于...
2018-05-26 15:16:38 1401
原创 大数据知识(六):Hadoop基础MapReduce详解(二)
Java序列化与Hadoop序列化之间的比较 Java序列化是一个很重的框架 (Serializable),一个对象被序列化以后会附带很多的额外信息,不便于网络中的高速传输。Hadoop开发了一套自己的序列化框架(Writable):精简、高效。以下代码比较两者之间的差别:public class TestSeri { public static void main(String[] ar...
2018-05-26 13:56:54 1271
转载 Java动态代理之JDK实现和CGlib实现(简单易懂)
Java动态代理之JDK实现和CGlib实现(简单易懂) 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6542259.html 一:代理模式(静态代理) 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由 业务实现类、业务代理类 两部分组...
2018-05-25 16:25:35 1174
转载 JAVA设计模式之单例模式
概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机...
2018-05-25 10:57:46 1177
原创 大数据知识(六):Hadoop基础MapReduce详解
MapReduce原理篇 MapReduce是一个分布式运算框架,主要的功能是将用户编写的业务逻辑代码和自带默认的组件整合在一起形成一个完整的分布式运算程序,并发的运行在一个集群上。客户端提交MapReduce任务的过程流程如下: 1.用户提交job任务之后,程序运行job.sumbit()方法,这是MapReduce框架会使用JobSubmitter的成员变量Cluster,...
2018-05-24 21:16:30 1462
转载 Java虚拟机类加载机制
到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚拟机相关要领的重要性。闲话不多说,老规矩,先来一段代码吊吊胃口。123456789101112131415161718192021222324252627282930313233343536373839404142public class S...
2018-05-24 14:43:51 1211
转载 理解Java Integer的缓存策略
本文将介绍 Java 中 Integer 缓存的相关知识。这是 Java 5 中引入的一个有助于节省内存、提高性能的特性。首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为。接着我们将学习这种实现的原因和目的。你可以先猜猜下面 Java 程序的输出结果。很明显,这里有一些小陷阱,这也是我们写这篇文章的原因。12345678910111213141516171819202...
2018-05-24 11:48:43 1219
原创 大数据知识(五):Hadoop基础HDFS详解
HDFS前言 设计的的思想:主要的是分而治之,将大的文件分割称为一个个小的文件,存储在各个机器上。 在大数据中的应用:为大数据框架提供储存数据的服务 重点概念:文件分块、副本存放、元数据。HDFS的概念和特性 首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件。 其次,它是分布式的,很多服务器联合实现功能。重要的特性: (1)HDFS中的...
2018-05-23 22:25:29 1574
原创 大数据知识(四):Hadoop基础
背景介绍什么是HADOOP1. HADOOP是apache旗下的一套开源软件平台2. HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理3. HADOOP的核心组件有 A. HDFS(分布式文件系统) B.YARN(运算资源调度系统) C. MAPREDUCE(分布式运算编程框架)4. 广义上来说,HADOOP通常是...
2018-05-23 17:36:31 1469
原创 大数据知识(二):Java基础加强
多线程介绍 进程介绍 不管是我们开发的应用程序,还是我们运行的其他的应用程序,都需要先把程序安装在本地的硬盘上。然后找到这个程序的启动文件,启动程序的时候,其实是电脑把当前的这个程序加载到内存中,在内存中需要给当前的程序分配一段独立的运行空间。这片空间就专门负责当前这个程序的运行。 不同的应用程序运行的过程中都需要在内存中分配自己独立的运行空间,彼此之间不会相互的影响。我们把每个独立...
2018-05-23 16:49:55 1254
原创 大数据知识(一):Zookeeper
Zookeeper简介 Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务 A、zookeeper是为别的分布式程序服务的 B、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务) C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务…… D、虽然说可以提供...
2018-05-17 21:54:43 1380
原创 大数据基础知识(二):Shell命令
Shell命令 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行 [1] 。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结...
2018-05-16 14:34:43 1948
原创 大数据基础知识(一):玩转Linux(三)Linux命令
Linux命令大全 上一个节大数据基础知识(一):玩转Linux(二) 免密码登录和基本命令简单的介绍了几个基本的LInux命令,我们知道仅仅掌握这些基本的命令是不够的,需要更加深入的了解Linux的命令。常用的命令 这一节主要讲解基础的Linux命令,这些命令在我们使用Linux时候无时无刻将会使用到,我们需要在自己的Linux上练习,达到随机可取的境界。 1.进入目录 ...
2018-05-16 10:40:09 1809
原创 大数据基础知识(一):玩转Linux(二) 免密码登录和基本命令
简介 在上一节大数据基础知识(一):玩转Linux(一)中,我们安装了CentOS和Java环境,以及一些常用的软件,今天我们来配置Linux的面密码登录,以及分析其中的原理,还有介绍一些简单的Linux常用命令。SSH免密码登录 通常,为了更加便利的在各个节点之间切换,我们需要配置各个节点之间的免密码登录。下面我们就介绍一种各个节点 (也就是各个机器之间的免密码登录)...
2018-05-15 22:22:27 1536
原创 大数据基础知识(一):玩转Linux(一)
Linux1.Linux的简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 我们学习的大数据,都是在Linux环境下...
2018-05-15 21:38:23 1877
原创 ArrayList详解
1.2ArrayList1.2.1特点线程不安全,动态数组实现1.2.2结构1.2.3实现接口实现了哪些接口public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable可以看出A...
2018-05-15 14:37:33 1462
原创 HashMap详解
1.1HashMap1.1.1特点线程不安全,允许key和value为null1.1.2结构主要分为两个部分,第一是Entry数组,第二个是每一个数组元素,维护一个链表,用于解决Hash冲突。1.1.3如何Hashstatic final int hash(Object key) { int h; return (key == null) ? 0 : (h = ke...
2018-05-15 14:36:03 1207
转载 MySQL中的索引
一、零铺垫 在介绍B树之前,先来看另一棵神奇的树——二叉排序树(Binary Sort Tree),首先它是一棵树,“二叉”这个描述已经很明显了,就是树上的一根树枝开两个叉,于是递归下来就是二叉树了(下图所示),而这棵树上的节点是已经排好序的,具体的排序规则如下:若左子树不空,则左子树上所有节点的值均小于它的根节点的值若右子树不空,则右子树上所有节点的值均大于它的根节点的值它的左、右子树也分...
2018-05-05 21:05:38 1258
转载 MyISAM和InnoDB的区别
答:主要有以下几点区别: a)构造上的区别 MyISAM在磁盘上存储成三个文件,其中.frm文件存储表定义;.MYD (MYData)为数据文件;.MYI (MYIndex)为索引文件。 而innodb是由.frm文件、表空间(分为独立表空间或者共享表空间)和日志文件(redo log)组成。 b)事务上的区别 myisam不支持事务;而innodb支持事务。 ...
2018-05-05 19:22:45 1214
转载 进程的通信方式
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)...
2018-05-05 19:08:46 1289
转载 孤儿进程与僵尸进程[总结]
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程...
2018-05-05 19:01:16 1166
转载 三次握手与四次挥手详解
TCP(Transmission Control Protocol,传输控制协议)是 面向连接的协议,也就是说在收发数据之前,必须先和对方建立连接,一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的 描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发...
2018-05-05 18:28:40 1285
转载 快速失败(fail-fast)和安全失败(fail-safe)的区别
链接:https://www.nowcoder.com/questionTerminal/95e4f9fa513c4ef5bd6344cc3819d3f7?pos=101&mutiTagIds=570&orderByHotValue=1来源:牛客网一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删...
2018-05-05 17:42:52 1441
转载 TCP的三次握手与四次挥手过程,各个状态名称与含义
三次握手第一次握手:主机A发送位码为syn=1,随机产生seq number=10001的数据包到服务器,主机B由SYN=1知道,A要求建立联机,此时状态为SYN_SENT; 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=20001的包,此时状态由LISTEN变为SYN_RECV; 第三次握手:主机A收到后...
2018-05-05 16:51:37 1601
转载 Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不清楚...
2018-05-04 19:04:09 1285
转载 HTTP1.0和HTTP1.1的区别
1、HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。HTTP 1.1则支持持久连接Persistent Connection, 并且默认使用persist...
2018-05-02 15:34:48 1218
转载 ConcurrentHashMap原理分析
曾经在 [高并发Java 五] JDK并发包1 中提到过ConcurrentHashMap,只是简单的提到了下ConcurrentHashMap的优点,以及大概的实现原理。而本文则重点介绍ConcurrentHashMap实现的细节。HashMap就不介绍了,具体请查看JDK7与JDK8中HashMap的实现HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来...
2018-05-02 15:19:25 1204
原创 常用几种排序算法
三种时间复杂度为O(n2)的排序算法 插入排序 插入排序的主要思想是:每一次得到一个新的元素,就和原来已经排序好的序列对比,然后将这个新的元素插入到正确的位置,具体的代码实现:void insertSort(int a[],int length){ if(a==NULL||length<=0) return; for(int i=1;i<length;i++) {...
2018-05-01 11:18:48 1262
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人