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