- 博客(37)
- 资源 (6)
- 收藏
- 关注
转载 欢迎使用CSDN-markdown编辑器
map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完,此称之为数据倾斜。 1.万能膏药:hive.groupby.skewindata=true
2017-09-08 14:32:56
374
转载 hive中的NULL(hive空值处理)
HIVE表中默认将NULL存为\N,可查看表的源文件(hadoop fs -cat或者hadoop fs -text),文件中存储大量\N, 这样造成浪费大量空间。而且用java、python直接进入路径操作源数据时,解析也要注意。另外,hive表的源文件中,默认列分隔符为\001(SOH),行分隔符为\n(目前只支持\n,别的不能用,所以定义时不需要显示声明)。元素间分隔符\002,map中ke
2017-09-08 14:26:49
23451
转载 hive mapjoin使用
今天遇到一个Hive的问题,如下hive sql:select f.a,f.b from A t join B f on ( f.a=t.a and f.ftime=20110802) 该语句中B表有30亿行记录,A表只有100行记录,而且B表中数据倾斜特别严重,有一个key上有15亿行记录,在运行过程中特别的慢,而且在reduece的过程中遇有内存不够而报错。为了解决
2017-09-08 14:22:02
623
原创 Hadoop权威指南--Hive笔记
关于HiveHive是一个构建在Hadoop上的数据仓库框架SQL语句不适合开发复杂的机器学习算法Hive把SQL查询转换为一系列在Hadoop集群上运行的MapReduce作业Hive把数据组织为表,通过这种方式为存储在hdfs的数据赋予结构,元数据(如表模式)存储在metastore数据库中Hive能和哪些版本的Hadoop共同工作:Hive支持
2017-09-08 14:19:36
1036
原创 Hive自定义函数UDF
自定义函数自定义函数包括三种 UDF、UDAF、UDTFUDF(User-Defined-Function) 一进一出UDAF(User- Defined Aggregation Funcation) 聚集函数,多进一出。Count/max/min UDTF(User-Defined Table-Generating Functions) 一进多出,如 la
2017-09-08 14:15:48
300
原创 hbase权威指南学习笔记
一、简介1.列式存储数据库以列为单位聚合数据,然后将列值顺序的存入磁盘,而传统数据库时为行式数据库,连续地存储整行列式数据库:对于特定的查询,不需要所有的值,在分析型数据库最常见1)关系型数据库存在的问题高并发的解决步骤增加用于读取的从服务器,将读写分离增加缓存,如Memcached,但无法保证数据的一致性将数据分区到多个数据库中,运维成本高。分区主要描述了逻辑上水
2017-08-05 10:46:08
3268
转载 mybatis从入门到精通
转自:http://www.yihaomen.com/article/java/302.htm(读者注:其实这个应该叫做很基础的入门一下下,如果你看过hibernate了那这个就非常的简单)写在这个系列前面的话:以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目
2017-07-30 09:43:08
1228
原创 HBase基础
1.简介:Hbase是高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库利用HDFS作为其文件存储系统,利用mapreduce处理hbase中的海量数据,利用ZooKeeper作为分布式协同服务主要用来存储非结构化和半结构化的松散数据2.概念介绍:rowkey决定一行数据,按照字典顺序排序,只能存储64K字节数据设计row key时,要充分利用这个排序特点,
2017-07-23 20:14:07
349
转载 impala 学习笔记
部分内容摘自:https://my.oschina.net/weiqingbin/blog/1926121.impala特点:1)基于内存进行计算,能够对PB级数据进行交互式实时查询、分析2)无需转换为MapReduce,直接读取HDFS数据3)C++编写,LLVM编译运行4)兼容HiveSQL5)兼容数据仓库的特性,可对hive数据直接做数据分析6)支持Data
2017-07-23 20:10:13
1484
原创 kafka学习笔记
1.消息队列的特点生产者消费者模式先进先出(FIFO)顺序保证可靠性保证-自己不丢数据(数据不经过内存,直接存储到磁盘)-消费者不丢数据:“至少一次,严格一次”2.消息队列常用场景:系统间解耦(queue模型、publish-subscribe模型)峰值压力缓冲异步通信3.kafka一个高吞吐的分布式消息系统(publis
2017-07-23 19:47:57
302
原创 Oozie学习笔记
Oozie:Hadoop平台开源的工作流调度引擎,管理Hadoop作业,由server和client两个组件组成运行java servlet的web程序官网:https://oozie.apache.org/1.特点:1)统一调度Hadoop系统中的mr任务启动,hdfs操作,shell调度,hive操作2)一组任务使用DAG来表示3)复杂的依赖关系,时间触发,事件
2017-07-23 19:30:25
728
转载 Hive几种数据导出方式
Hive中的几种不同的数据导出方式。可以根据导出的地方不一样,将这些方式分为三种:导出到本地文件系统; 导出到HDFS中; 导出到Hive的另一个表中。 导出到本地文件系统hive>insertoverwritelocal directory '/home/wyp/wyp' >select*fromwyp;这条HQL的
2017-07-17 12:25:50
367
原创 mysql索引
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction) InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能 MyISAM与InnoDB区别:1)事务支持:MYISAM:强调的是性能,每次查询具有原子性,其执行速度比InnoDB快,但是不支持
2017-07-17 12:22:22
238
转载 pig入门
Pig是一种操作大规模数据集的脚本语言,是在HDFS和MapReduce之上的数据流处理语言,将数据流翻译成多个MR函数。 Pig包括两部分:PigLatin:用于描述数据流的语言用于运行pig Latin程序的执行环境 PigLatin程序有一系列的operation和transformation组成,每个操作或变换对属于进行数据处理,将这些操作转换为一系列的MapRed
2017-07-17 12:18:18
775
转载 使用JobControl管理mapreduce多job依赖
当MapReduce中作业不止一个,如果管理这些作业按照顺序执行,主要考虑是否有个线性的作业链或有向无环图(DAG)对于线性链表最简单的就是一个接一个的运行作业,对于比线性链表更复杂的结构,有相关的类库可以帮助你合理安排工作流,最简单的就是org.apache.hadoop.mapred.jobcontrol包中的JobControl类,JobControl实例代表一个作业的运行图,可以加入作
2017-05-08 17:25:02
702
原创 MapReduce基础
MapReduce分布式计算框架分布式计算:移动计算,而不是移动数据MapReduce的split大小:max(min.split,min(max.split,block))Mapper:把复杂任务分解为多个简单的任务执行简单任务:1)数据或计算规模缩小2)就近计算,即会被分配倒存放了所需数据的节点进行计算3)这些小任务可以并行计算,彼此之间没有依赖关系ma
2017-05-08 17:19:04
348
转载 Hadoop2.x: HA
HDFS1.x存在问题:NameNode单点故障,压力过大内存受限,影响系统扩展MapReduce缺点:JobTracker容易引起单点故障JobTracker既要负责资源管理,又要进行作业调度当mapreduce job非常多的时候,会造成很大的内存开销,在Tasktracker端,以mapreduce task的数目作为资源的表示过于简单,如果两个大内存消耗的t
2017-05-08 16:45:51
515
原创 Hadoop IO
数据完整性:HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和,针对每个有io.bytes.per.checksum指定字节的数据计算校验和datanode负责在收到数据后存储该数据及验证校验和客户端讲数据及其检验和发送到由一系列的datanode组成的管线(pipeline),管线中最后一个datanode负责验证校验和每个datanode均持久保存一个用于验
2017-05-08 16:05:53
302
原创 hadoop1.x:hdfs
HDFS:Hadoop Distributed File System分布式存储系统,提供了高可靠、高扩展性和高吞吐率的数据存储服务HDFS优点:1.高容错性:数据自动保存多个副本;副本丢失后,自动恢复2.适合批处理:移动计算而非数据,数据位置暴露给计算框架3.适合大数据处理4.可构建在廉价的机器上:通过多副本提高可靠性;提供了容错和恢复机制HDFS缺点
2017-05-08 15:50:34
480
转载 认识与学习bash
1. 认识 BASH 这个 Shell 1.1 硬件、核心与 Shell 1.2 为何要学文字接口的 shell 1.3 系统的合法 shell 与 /etc/shells 功能 1.4 Bash shell 的功能 1.5 Bash shell 的内建命令: type 1.6 命令的下达2. Shell 的变量功能 2.1 什么是变量? 2
2016-07-15 15:07:57
878
转载 用Kibana和logstash快速搭建实时日志查询、收集与分析系统
Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。kibana 也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面说到这里,我们
2016-05-31 16:04:54
4149
转载 HTTP协议及报文分析
一次HTTP操作称为一个事务,其工作过程可分为四步: 首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版
2016-05-27 11:38:33
480
原创 自己动手实现http协议(看透spring mvc笔记)
引言:Http协议是在应用层解析内容的,具体得传输还是使用的Socket1.NioSocket从jdk1.4开始,java增加了新的nio(new IO)模式,nio在底层采用了新的处理方式,极大的提高了IO的效率我们使用的socket也属于IO的一种,nio提供了相应的工具,ServerSocketChannel和SocketChannel,分别对应原来的ServerSocket和Soc
2016-05-27 11:06:00
1616
1
转载 freemarke之TemplateDirectiveModel详解
TemplateDirectiveModel接口是freemarker自定标签或者自定义指令的核心处理接口。通过实现该接口,用户可以自定义标签(指令)进行任意操作,、 任意文本写入模板的输出。 该接口中只定义了如下方法,当模板页面遇到用户自定义的标签指令时,该方法会被执行。public void execute(Environment env, Map params,
2016-05-17 10:11:08
2017
转载 Spring 处理器拦截器
Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 5.1.1、常见应用场景1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录
2016-05-16 09:08:56
253
转载 JAVA自定义注释
Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。 注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。1、元注解元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。1.1、@Retentio
2016-05-13 09:09:43
450
转载 Java中接口里定义的成员变量
首先你要弄清接口的含义.接口就是提供一种统一的'协议’,而接口中的属性也属于'协议’中的成员.它们是公共的,静态的,最终的常量.相当于全局常量。\在interface里面的变量都是public static final 的。所以你可以这样写: public static final int i=10; 或则 int i=10;(可以省略掉一部分)
2016-05-10 09:11:47
392
转载 按需构建多模块,玩转Maven反应堆
在多模块Maven项目中,反应堆(Reactor)是一个包含了所有需要构建模块的抽象概念,对于Maven用户来说,主要关心的是两点: 哪些模块会被包含到反应堆中?反应堆中所有模块的构建顺序是什么? 例如有这样的一个多模块项目: plexus-security包含了8个子模块,其中security-realms还包括了更进一层的两个子
2016-05-04 16:47:56
416
转载 Nexus入门指南(图文)
Nexus介绍Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST
2016-05-04 15:19:19
363
转载 oracle中的decode的使用
含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)
2016-05-04 09:57:27
232
原创 Oracle 排序中使用nulls first 或者nulls last 语法
Oracle 排序中使用nulls first 或者nulls last 语法Nulls first和nulls last是Oracle Order by支持的语法如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是
2016-04-26 14:15:54
435
转载 java的动态代理机制详解
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或
2016-04-21 14:38:54
217
转载 EasyMock的使用
1.Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。同时也可以当调用别人的模块,而该模块又没有实现时(只提供接口),我们可以在独立的环境中测试自己的模块逻辑。2.使用前的准备,下载所需的jar包:easymock-3.0.jar(或以上版本),junit-4.4.jar,cglib-nodep-2.
2016-04-19 14:37:40
691
转载 java反射调用private方法,获取修改private属性值
class DemoTest{ private String name="123"; public getName(){ system.out.println("public getName " + name); return name; } private getName2(){ syst
2016-04-15 15:46:47
9371
JMS与Spring之二(用message listener container异步收发消息)
2014-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人