欢迎使用CSDN-markdown编辑器 map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完,此称之为数据倾斜。 1.万能膏药:hive.groupby.skewindata=true
hive中的NULL(hive空值处理) HIVE表中默认将NULL存为\N,可查看表的源文件(hadoop fs -cat或者hadoop fs -text),文件中存储大量\N, 这样造成浪费大量空间。而且用java、python直接进入路径操作源数据时,解析也要注意。另外,hive表的源文件中,默认列分隔符为\001(SOH),行分隔符为(目前只支持,别的不能用,所以定义时不需要显示声明)。元素间分隔符\002,map中ke
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的过程中遇有内存不够而报错。为了解决
Hadoop权威指南--Hive笔记 关于HiveHive是一个构建在Hadoop上的数据仓库框架SQL语句不适合开发复杂的机器学习算法Hive把SQL查询转换为一系列在Hadoop集群上运行的MapReduce作业Hive把数据组织为表,通过这种方式为存储在hdfs的数据赋予结构,元数据(如表模式)存储在metastore数据库中Hive能和哪些版本的Hadoop共同工作:Hive支持
Hive自定义函数UDF 自定义函数自定义函数包括三种 UDF、UDAF、UDTFUDF(User-Defined-Function) 一进一出UDAF(User- Defined Aggregation Funcation) 聚集函数,多进一出。Count/max/min UDTF(User-Defined Table-Generating Functions) 一进多出,如 la
hbase权威指南学习笔记 一、简介1.列式存储数据库以列为单位聚合数据,然后将列值顺序的存入磁盘,而传统数据库时为行式数据库,连续地存储整行列式数据库:对于特定的查询,不需要所有的值,在分析型数据库最常见1)关系型数据库存在的问题高并发的解决步骤增加用于读取的从服务器,将读写分离增加缓存,如Memcached,但无法保证数据的一致性将数据分区到多个数据库中,运维成本高。分区主要描述了逻辑上水
mybatis从入门到精通 转自:http://www.yihaomen.com/article/java/302.htm(读者注:其实这个应该叫做很基础的入门一下下,如果你看过hibernate了那这个就非常的简单)写在这个系列前面的话:以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目
HBase基础 1.简介:Hbase是高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库利用HDFS作为其文件存储系统,利用mapreduce处理hbase中的海量数据,利用ZooKeeper作为分布式协同服务主要用来存储非结构化和半结构化的松散数据2.概念介绍:rowkey决定一行数据,按照字典顺序排序,只能存储64K字节数据设计row key时,要充分利用这个排序特点,
impala 学习笔记 部分内容摘自:https://my.oschina.net/weiqingbin/blog/1926121.impala特点:1)基于内存进行计算,能够对PB级数据进行交互式实时查询、分析2)无需转换为MapReduce,直接读取HDFS数据3)C++编写,LLVM编译运行4)兼容HiveSQL5)兼容数据仓库的特性,可对hive数据直接做数据分析6)支持Data
kafka学习笔记 1.消息队列的特点生产者消费者模式先进先出(FIFO)顺序保证可靠性保证-自己不丢数据(数据不经过内存,直接存储到磁盘)-消费者不丢数据:“至少一次,严格一次”2.消息队列常用场景:系统间解耦(queue模型、publish-subscribe模型)峰值压力缓冲异步通信3.kafka一个高吞吐的分布式消息系统(publis
Oozie学习笔记 Oozie:Hadoop平台开源的工作流调度引擎,管理Hadoop作业,由server和client两个组件组成运行java servlet的web程序官网:https://oozie.apache.org/1.特点:1)统一调度Hadoop系统中的mr任务启动,hdfs操作,shell调度,hive操作2)一组任务使用DAG来表示3)复杂的依赖关系,时间触发,事件
Hive几种数据导出方式 Hive中的几种不同的数据导出方式。可以根据导出的地方不一样,将这些方式分为三种:导出到本地文件系统; 导出到HDFS中; 导出到Hive的另一个表中。 导出到本地文件系统hive>insertoverwritelocal directory '/home/wyp/wyp' >select*fromwyp;这条HQL的
mysql索引 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction) InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能 MyISAM与InnoDB区别:1)事务支持:MYISAM:强调的是性能,每次查询具有原子性,其执行速度比InnoDB快,但是不支持
pig入门 Pig是一种操作大规模数据集的脚本语言,是在HDFS和MapReduce之上的数据流处理语言,将数据流翻译成多个MR函数。 Pig包括两部分:PigLatin:用于描述数据流的语言用于运行pig Latin程序的执行环境 PigLatin程序有一系列的operation和transformation组成,每个操作或变换对属于进行数据处理,将这些操作转换为一系列的MapRed
使用JobControl管理mapreduce多job依赖 当MapReduce中作业不止一个,如果管理这些作业按照顺序执行,主要考虑是否有个线性的作业链或有向无环图(DAG)对于线性链表最简单的就是一个接一个的运行作业,对于比线性链表更复杂的结构,有相关的类库可以帮助你合理安排工作流,最简单的就是org.apache.hadoop.mapred.jobcontrol包中的JobControl类,JobControl实例代表一个作业的运行图,可以加入作
MapReduce基础 MapReduce分布式计算框架分布式计算:移动计算,而不是移动数据MapReduce的split大小:max(min.split,min(max.split,block))Mapper:把复杂任务分解为多个简单的任务执行简单任务:1)数据或计算规模缩小2)就近计算,即会被分配倒存放了所需数据的节点进行计算3)这些小任务可以并行计算,彼此之间没有依赖关系ma
Hadoop2.x: HA HDFS1.x存在问题:NameNode单点故障,压力过大内存受限,影响系统扩展MapReduce缺点:JobTracker容易引起单点故障JobTracker既要负责资源管理,又要进行作业调度当mapreduce job非常多的时候,会造成很大的内存开销,在Tasktracker端,以mapreduce task的数目作为资源的表示过于简单,如果两个大内存消耗的t
Hadoop IO 数据完整性:HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和,针对每个有io.bytes.per.checksum指定字节的数据计算校验和datanode负责在收到数据后存储该数据及验证校验和客户端讲数据及其检验和发送到由一系列的datanode组成的管线(pipeline),管线中最后一个datanode负责验证校验和每个datanode均持久保存一个用于验
hadoop1.x:hdfs HDFS:Hadoop Distributed File System分布式存储系统,提供了高可靠、高扩展性和高吞吐率的数据存储服务HDFS优点:1.高容错性:数据自动保存多个副本;副本丢失后,自动恢复2.适合批处理:移动计算而非数据,数据位置暴露给计算框架3.适合大数据处理4.可构建在廉价的机器上:通过多副本提高可靠性;提供了容错和恢复机制HDFS缺点