打赏

06 2018 档案

摘要:1.Map端Join解决数据倾斜 1.Mapreduce中会将map输出的kv对,按照相同key分组(调用getPartition),然后分发给不同的reducetask 2.Map输出结果的时候调用了Partitioner组件(返回分区号),由它决定将数据放到哪个区中,默认的分组规 则为:根据ke 阅读全文
posted @ 2018-06-30 09:24 QueryMarsBo 阅读(1068) 评论(0) 推荐(0) 编辑
摘要:1.序列化与Writable接口 1.1.hadoop的序列化格式 序列化和反序列化就是结构化对象和字节流之间的转换,主要用在内部进程的通讯和持久化存储方面 hadoop在节点间的内部通讯使用的是RPC,RPC协议把消息翻译成二进制字节流发送到远程节点,远程节点再通过反序 列化把二进制流转成原始的信 阅读全文
posted @ 2018-06-29 09:01 QueryMarsBo 阅读(298) 评论(0) 推荐(0) 编辑
摘要:1.MapReduce程序的运行模式 <!--[if gte mso 9]><xml><o:OfficeDocumentSettings></o:OfficeDocumentSettings></xml><![endif]--><!--[if gte mso 9]><xml><w:WordDocum 阅读全文
posted @ 2018-06-27 17:15 QueryMarsBo 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1.YARN的运行机制 1.1.概述: Yarn集群:负责海量数据运算时的资源调度,集群中的角色主要有:ResourceManager、NodeManager Yarn是一个资源调度(作业调度和集群资源管理)平台,负责为运算程序提供服务器运算资源(包括运行 程序的jar包,配置文件,CPU,内存,I 阅读全文
posted @ 2018-06-26 14:25 QueryMarsBo 阅读(189) 评论(0) 推荐(0) 编辑
摘要:1.Mapreduce的shuffle机制: Mapreduce中,map阶段处理的数据如何传递给Reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle 将maptask处理后的输出结果数据,分发给reducetask,并在分发的过程中,对数据按key进行了分区和排 阅读全文
posted @ 2018-06-25 09:43 QueryMarsBo 阅读(290) 评论(0) 推荐(0) 编辑
摘要:MapTask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度那么,mapTask并行实例是否越多 越好呢?其并行度又是如何决定呢?Mapper数量由输入文件的数目、大小及配置参数决定; MapReduce将作业的整个运行过程分为两个阶段:Map阶段Reduce阶段。 Map阶 阅读全文
posted @ 2018-06-21 11:54 QueryMarsBo 阅读(689) 评论(0) 推荐(0) 编辑
摘要:需求:1.统计每一个用户(手机号)所耗费的总上行流量、下行流量,总流量 1.数据如下:保存为.dat文件(因为以\t切分数据,文件格式必须合适) 2.技术实现过程: 1.首先将Map输入中的手机号,上行流量,下行流量数据抽取出来(每一行输入数据调用一次自定义map方法处理数据), 然后根据相同的ke 阅读全文
posted @ 2018-06-20 17:28 QueryMarsBo 阅读(1128) 评论(0) 推荐(1) 编辑
摘要:1.Wordcount示例编写: MapReduce采用”分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各 个节点的中间结果,得到最终结果。简单地说,MapReduce就是”任务的分解与结果的汇总” 需求:在一堆给定的文本文件中统计输出每一个单词出 阅读全文
posted @ 2018-06-20 14:15 QueryMarsBo 阅读(411) 评论(0) 推荐(0) 编辑
摘要:1.MapReduce原理篇 Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架; Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行 在一个hadoop集群上 2.MapReduce程序结 阅读全文
posted @ 2018-06-20 07:59 QueryMarsBo 阅读(181) 评论(0) 推荐(0) 编辑
摘要:案例1:开发shell采集脚本 1.点击流日志每天都10T,在业务应用服务器上,需要准实时上传至数据仓库(Hadoop HDFS)上 2.一般上传文件都是在凌晨24点操作,由于很多种类的业务数据都要在晚上进行传输,为了减轻服务器的压力,避开高峰期。 如果需要伪实时的上传,则采用定时上传的方式 3.技 阅读全文
posted @ 2018-06-19 17:05 QueryMarsBo 阅读(1527) 评论(0) 推荐(0) 编辑
摘要:Hadoop中自己提供了一个RPC的框架。集群中各节点的通讯都使用了那个框架 1.服务端 1.1.业务接口:ClientNamenodeProtocol 1.2.业务接口实现类:MyNameNode 1.3.服务端类:将业务实现类发布为一个服务 2.客户端 我们也可以在自己的项目中使用Hadoop的 阅读全文
posted @ 2018-06-19 11:56 QueryMarsBo 阅读(349) 评论(0) 推荐(0) 编辑
摘要:对于MapReduce等框架来说,需要有一套更底层的API来获取某个指定文件中的一部分数据,而不是一整个文件 因此使用流的方式来操作 HDFS上的文件,可以实现读取指定偏移量范围的数据 1.客户端测试类代码: 2.流式上传文件: 3.流式下载文件: 4.流式读取指定长度的文件: hdfs支持随机定位 阅读全文
posted @ 2018-06-19 10:01 QueryMarsBo 阅读(1055) 评论(0) 推荐(0) 编辑
摘要:1.DataNode的工作机制: 1、DataNode工作职责:存储管理用户的文件块数据 定期向namenode汇报自身所持有的block信息(通过心跳信息上报) (这点很重要,因为,当集群中发生某些block副本失效时,集群如何恢复block初始副本数量的问题) 2.配置文件: 2.DataNod 阅读全文
posted @ 2018-06-18 19:14 QueryMarsBo 阅读(1135) 评论(0) 推荐(0) 编辑
摘要:理解NameNode的工作机制尤其是元数据管理机制,以增强对HDFS工作原理的理解,及培养hadoop集群运营中“性能调优” “NameNode”故障问题的分析解决能力 1.NameNode职责: Hadoop集群中有两种节点,一种是NameNode,还有一种是DataNode;其中DataNode 阅读全文
posted @ 2018-06-17 19:22 QueryMarsBo 阅读(1038) 评论(0) 推荐(0) 编辑
摘要:1.HDFS的工作机制: 2.HDFS的写数据流程: 2.1.概述 客户端要向HDFS写数据,首先跟Namenode通信以确认可以写文件并获得接收文件block的datanode(切块在客户端进行), 然后客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datano 阅读全文
posted @ 2018-06-17 12:32 QueryMarsBo 阅读(3197) 评论(0) 推荐(1) 编辑
摘要:通过Java API来访问HDFS 1.Windows上配置环境变量 解压Hadoop,然后把Hadoop的根目录配置到HADOOP_HOME环境变量里面 然后把HADOOP_HOME/lib和HADOOP_HOME/bin配置到path里面 2.替换bin目录 将官网下载的Hadoop目录下面的b 阅读全文
posted @ 2018-06-17 11:19 QueryMarsBo 阅读(289) 评论(0) 推荐(0) 编辑
摘要:1.HDFS的概念和特性 1.1. 首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件 1.2. 它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;重要特性如下: (1)HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( d 阅读全文
posted @ 2018-06-17 09:05 QueryMarsBo 阅读(256) 评论(0) 推荐(0) 编辑
摘要:1. MapReduce使用 MapReduce是Hadoop中的分布式运算编程框架,只要按照其编程规范,只需要编写少量的业务逻辑代码即可实现 一个强大的海量数据并发处理程序 2. 运行Hadoop自带的MapReduce程序(word count单词统计功能) 1.在HDFS中创建层级目录,并且上 阅读全文
posted @ 2018-06-16 08:59 QueryMarsBo 阅读(2442) 评论(0) 推荐(0) 编辑
摘要:1.Hdfs shell客户端命令操作: 1.1.查看命令列表:hadoop fs 1.1.1.查看文件列表:hadoop fs -ls / (/:HDFS文件系统的根目录) 1.1.2.上传文件:hadoop fs -put canglao.avi / 注意:真实的数据文件路径在DataNode节 阅读全文
posted @ 2018-06-15 18:07 QueryMarsBo 阅读(1231) 评论(0) 推荐(0) 编辑
摘要:一:Hadoop集群简介: Hadoop 集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起; HDFS集群:负责海量数据的存储,集群中的角色主要有: NameNode、DataNode、SecondaryNameNode; YARN集群:负责海量数据运算时的资源 阅读全文
posted @ 2018-06-15 08:05 QueryMarsBo 阅读(259) 评论(0) 推荐(0) 编辑
摘要:1.参考文档:Netty实战精髓篇 2.Netty介绍: Netty是基于Java NIO的网络应用框架. Netty是一个NIO client-server(客户端服务器)框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty提供了一种新的方式来 开发网络应用程序,这种新的方 阅读全文
posted @ 2018-06-13 14:27 QueryMarsBo 阅读(248) 评论(0) 推荐(0) 编辑
摘要:1.Netty发送对象简介: Netty中,通讯的双方建立连接后,会把数据按照ByteBuf的方式进行传输,例如http协议中,就是通过HttpRequestDecoder对 ByteBuf数 据流进行处理,转换成http的对象。基于这个思路,自定义一种通讯协议:Server 和 客户端直接传输 j 阅读全文
posted @ 2018-06-13 11:34 QueryMarsBo 阅读(459) 评论(0) 推荐(0) 编辑
摘要:1.Netty中handler的执行顺序 Handler在Netty中,无疑占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、 统一对日志错误进行处理、统一对请求进行计数、控制Handler执行与否。一句话,没有它 阅读全文
posted @ 2018-06-13 11:05 QueryMarsBo 阅读(6510) 评论(0) 推荐(1) 编辑
摘要:1.Netty简介: Netty是基于Java NIO的网络应用框架 Netty是一个NIO client-server(客户端服务器)框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty 提供了一种新的方式来开发网络应用程序,这种新的方式使得它很容易使用和有很强的扩展性。N 阅读全文
posted @ 2018-06-13 10:15 QueryMarsBo 阅读(449) 评论(0) 推荐(0) 编辑
摘要:1.阻塞与非阻塞 传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write() 时,该线程被阻塞,直到有一些数据被读取或写入, 该线程在此期间不能执行其他任务因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供 一个独立的线程进行处理 阅读全文
posted @ 2018-06-12 17:36 QueryMarsBo 阅读(183) 评论(0) 推荐(0) 编辑
摘要:1.通道(Channel) 由 java.nio.channels 包定义的。Channel 表示 IO 源与目标打开的连接。Channel 类似于传统的“流”。只不过 Channel 本身不能直接访问数据,Channel 只能与Buffer 进行交互 Java 为 java.nio.channel 阅读全文
posted @ 2018-06-12 11:56 QueryMarsBo 阅读(177) 评论(0) 推荐(0) 编辑
摘要:1.缓冲区(Buffer) 一个用于特定基本数据类型的容器。由 java.nio 包定义的,所有缓冲区都是 Buffer 抽象类的子类,任何时候访问 NIO 中 的数据,都是通过缓冲区进行操作 在 Java NIO 中负责数据的存取。缓冲区就是数组。用于存储不同数据类型的数据,据数据类型不同(boo 阅读全文
posted @ 2018-06-12 11:16 QueryMarsBo 阅读(135) 评论(0) 推荐(0) 编辑
摘要:概述 Java NIO 是 JDK 1.4 发布的一套全新的IO API(New IO 简称 NIO),由于 JDK 1.7 对 NIO 的更新,目前 NIO 被广泛应用,以至于 将 JDK 1.7 的改动称为 NIO.2,NIO 可以替代传统的Java IO API。NIO与原来的IO有同样的作用 阅读全文
posted @ 2018-06-12 08:28 QueryMarsBo 阅读(232) 评论(0) 推荐(0) 编辑
摘要:1.JVM参数列表 通常情况下启动一个Java应用程序就会启动JVM的虚拟机,虚拟机在启动时可以通过java 指令传递参数给JVM. java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:Max 阅读全文
posted @ 2018-06-12 08:06 QueryMarsBo 阅读(196) 评论(0) 推荐(0) 编辑
摘要:1.java监控工具使用 2.jconsole jconsole是一种集成了上面所有命令功能的可视化工具,可以分析jvm的内存使用情况和线程等信息 2.1.启动jconsole 通过JDK/bin目录下的“jconsole.exe”启动Jconsole后,将自动搜索出本机运行的所有JVM进程,不需要 阅读全文
posted @ 2018-06-11 15:36 QueryMarsBo 阅读(147) 评论(0) 推荐(0) 编辑
摘要:1.java内存模型图解 Java虚拟机在执行Java程序的过程中,会把它所管理的内存划分为若干个不同的数据区。这些区域有各自的用途,以及创建和销毁的 时间,有的区域随着虚拟机进程的启动而存在,有的区域则依赖用户线程的启动和结束而建立和销毁,我们可以将这些区域统称为Java运 行时数据区域 如下图是 阅读全文
posted @ 2018-06-11 15:08 QueryMarsBo 阅读(211) 评论(0) 推荐(0) 编辑
摘要:1.EJB中的三种Bean 1.会话bean(sessionbean) 负责与客户端交互.是编写业务逻辑的地方.在会话Bean中可以通过jdbc直接操作数据厍.但大多数情况下都是通过实体bean来完 成对数据厍的燥作· 2.实体bean(entitybean) 它实际上属于java持久化规范(简称J 阅读全文
posted @ 2018-06-11 10:26 QueryMarsBo 阅读(171) 评论(0) 推荐(0) 编辑
摘要:1.EJB概述: Enterprice JavaBeans是一个用于分布式业务应用的标准服务端组件模型。采用Enterprice JavaBeans架构编写的应用是可伸的、事务性的、 多用户安全的。采用EJB编写的这些用,可以部署在任何支持Enterprice JavaBeans规范的服务器平台,, 阅读全文
posted @ 2018-06-09 14:18 QueryMarsBo 阅读(383) 评论(0) 推荐(0) 编辑
摘要:1.什么是RPC:远程过程调用协议 RPC(Remote Procedure Call Protocol)— 远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要 了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信 阅读全文
posted @ 2018-06-09 12:18 QueryMarsBo 阅读(273) 评论(0) 推荐(0) 编辑
摘要:1.java动态代理、反射(IDEA导入JUnit4) 1.1.反射 通过反射的方式可以获取class对象中的属性、方法、构造函数等 1.2.反射代码 package cn.itcast_04_reflect; import java.lang.reflect.Constructor; import 阅读全文
posted @ 2018-06-08 18:10 QueryMarsBo 阅读(165) 评论(0) 推荐(0) 编辑
摘要:1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间, 或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提 阅读全文
posted @ 2018-06-08 16:52 QueryMarsBo 阅读(268) 评论(0) 推荐(0) 编辑
摘要:1.java并发包介绍 JDK5.0 以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程并发编程的,充分利用了现代多处理器 和多核心系统的功能以编写大规模并发应用程序。主要包含原子量、并发集合、同步器、可重入锁,并对线程池的构造提供了强力的 阅读全文
posted @ 2018-06-08 14:36 QueryMarsBo 阅读(225) 评论(0) 推荐(0) 编辑
摘要:1.synchronized同步关键词 线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同 操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个 阅读全文
posted @ 2018-06-08 09:12 QueryMarsBo 阅读(399) 评论(1) 推荐(0) 编辑
摘要:1.java多线程基本知识 1.1.进程介绍 不管是我们开发的应用程序,还是我们运行的其他的应用程序,都需要先把程序安装在本地的硬盘上。然后找到这个程序的启动文件, 启动程序的时候,其实是电脑把当前的这个程序加载到内存中,在内存中需要给当前的程序分配一段独立的运行空间。这片空间就专门负 责当前这个程 阅读全文
posted @ 2018-06-07 16:25 QueryMarsBo 阅读(291) 评论(0) 推荐(0) 编辑
摘要:6. RPC 6.1.什么是 RPC RPC(Remote Procedure Call Protocol)远程过程调用协议 通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个过程或函数,就像调用本地应用程序中的一样 正式的描述是:一种通过网络从远程计算机程序上请求服务,而不 阅读全文
posted @ 2018-06-07 14:46 QueryMarsBo 阅读(462) 评论(0) 推荐(0) 编辑
摘要:5. IO 通信模型 网络通信的本质是网络间的数据 IO。只要有 IO,就会有阻塞或非阻塞的问题,无论这个 IO 是网络的,还是硬盘的。原因在于程序是运行在系统之上的, 任何形式的 IO 操作发起都需要系统的支持 使用套接字建立TCP连接后,通过使用 I/O 流在进行通信,每一个socket都有一个 阅读全文
posted @ 2018-06-07 11:51 QueryMarsBo 阅读(229) 评论(0) 推荐(0) 编辑
摘要:1.网络编程 1.1.网络编程概述: 通过通信线路(有线或无线)可以把不同地理位置且相互独立的计算机连同其外部设备连接起来,组成计算机网络。在操作系统、网络管理软件及网络 通信协议的管理和协调下,可以实现计算机之间的资源共享和信息的传递 网络编程是指用来实现网络互联的不同计算机上运行的程序间可以进行 阅读全文
posted @ 2018-06-07 11:35 QueryMarsBo 阅读(595) 评论(0) 推荐(0) 编辑
摘要:1.ZooKeeper原理 Zookeeper虽然在配置文件中并没有指定master和slave但是,zookeeper工作时,是有一个节点为leader,其他则为follower,Leader是通 过内部的选举机制临时产生的 2.ZooKeeper选举机制 2.1.概念 2.2. zk的选举机制( 阅读全文
posted @ 2018-06-07 09:48 QueryMarsBo 阅读(236) 评论(0) 推荐(0) 编辑
摘要:1.ZooKeeper Watcher ZooKeeper 提供了分布式数据发布/订阅功能,一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象, 当这个主题对象自身状态变化时,会通知所有订阅者,使他们能够做出相应的处理 ZooKeeper 中,引入了 Wat 阅读全文
posted @ 2018-06-06 16:46 QueryMarsBo 阅读(287) 评论(0) 推荐(0) 编辑
摘要:1.分布式共享锁的简单实现 在分布式系统中如何对进程进行调度,假设在第一台机器上挂载了一个资源,然后这三个物理分布的进程都要竞争这个资源,但我们又不希望他们同时 进行访问,这时候我们就需要一个协调器,来让他们有序的来访问这个资源。这个协调器就是我们经常提到锁,比如说"进程-1"在使用该资源的时候,会 阅读全文
posted @ 2018-06-06 09:15 QueryMarsBo 阅读(305) 评论(0) 推荐(0) 编辑
摘要:1.实现分布式应用(主节点HA)及客户端动态更新主节点状态 需求:某分布式系统中,主节点可以有多台,服务器可以动态(变化)上下线,任意一台客户端都能实时感知到主节点服务器的上下线 思路:架设Zookeeper集群 代码实现:服务端:DistributedServer.java 运行:一旦会话(Ses 阅读全文
posted @ 2018-06-05 16:16 QueryMarsBo 阅读(351) 评论(0) 推荐(0) 编辑
摘要:1. Zookeeper结构 1.1.ZooKeeper数据模型Znode ZooKeeper拥有一个层次化的目录结构,命名符合常规文件系统规范 ZooKeeper树中的每个节点被称为—Znode,和文件系统的目录树一样,ZooKeeper树中的每个节点都有一个唯一的路径标识 节点Znode可以包含 阅读全文
posted @ 2018-06-05 11:52 QueryMarsBo 阅读(294) 评论(0) 推荐(0) 编辑
摘要:1.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个 阅读全文
posted @ 2018-06-04 18:19 QueryMarsBo 阅读(228) 评论(0) 推荐(0) 编辑
摘要:7、ZooKeeper应用举例 为了方便大家理解ZooKeeper,在此就给大家举个例子,看看ZooKeeper是如何实现的他的服务的,我以ZooKeeper提供的基本服务分布式锁为例。 7.1 分布式锁应用场景 在分布式锁服务中,有一种最典型应用场景,就是通过对集群进行Master选举,来解决分布 阅读全文
posted @ 2018-06-04 14:50 QueryMarsBo 阅读(161) 评论(0) 推荐(0) 编辑
摘要:1.分布式系统概述 理解1: 分布式系统:分布式系统是针对一个大系统而言,将一个大系统分成多个子系统,即多个工程系统。 我们先看下传统的系统模式: 传统的系统模式将多个功能模块全部在一个工程中写完,模块之间耦合度太高,其中一个升级其他都得升级,把系统按照模块拆分成多个子系统。即在项目中建 立多个工程 阅读全文
posted @ 2018-06-04 14:48 QueryMarsBo 阅读(209) 评论(0) 推荐(0) 编辑
摘要:1.Lucene简介 Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能 Lucene是开源项目,它是可扩展,高性能的库用于索引和搜索几乎任何类型的文本, Lucene库提供了所需的任何搜索应用程 序的核心业务。索引和搜索 实际上l 阅读全文
posted @ 2018-06-02 13:13 QueryMarsBo 阅读(195) 评论(0) 推荐(0) 编辑
摘要:1. Nginx+keepalived对后端服务器心跳检查(需要自定义脚本) 原理:Keepalived并不跟nginx耦合,它俩完全不是一家人但是keepalived提供一个机制:让用户自定义一个shell脚本去检测用户自己的程序,返回状态给keepalived就可以了 #MASTER节点 #添加 阅读全文
posted @ 2018-06-01 17:20 QueryMarsBo 阅读(2651) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示