自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (2)
  • 收藏
  • 关注

原创 hive中Sort By,Order By,Cluster By,Distribute By,Group By的区别

order by:hive中的order by 和传统sql中的order by 一样,对数据做全局排序,加上排序,会新启动一个job进行排序,会把所有数据放到同一个reduce中进行处理,不管数据多少,不管文件多少,都启用一个reduce进行处理。如果指定了hive.mapred.mode=strict(默认值是nonstrict),这时就必须指定limit来限制输出条数,原因是:所有的数据都会在同一个reducer端进行,数据量大的情况下可能不能出结果,那么在这样的严格模式下,必须指定输出的条数。s

2020-08-23 17:17:18 853

原创 hive常用函数

1、数据介绍首先我们产生我们的数据,使用spark sql来产生吧:val data = Seq[(String,String)]( ("{\"userid\":\"1\",\"action\":\"0#222\"}","20180131"), ("{\"userid\":\"1\",\"action\":\"1#223\"}","20180131"), ("{\"userid\":\"1...

2019-07-22 20:52:12 1056

原创 hive常用语法

目录一、关系运算:1.等值比较: =2.不等值比较: <>3.小于比较: <4.小于等于比较: <=5.大于比较: >6.大于等于比较: >=7.空值判断: IS NULL8.非空判断: IS NOTNULL9. LIKE比较: LIKE10. JAVA的LIKE操作: RLIKE11. REGEX...

2019-07-18 20:33:32 643

原创 mysql 数据空洞

表空洞是什么当你对InnoDB进行修改操作时,例如删除一些行,这些行只是被标记为“已删除”,而不是真的从索引中物理删除了,因而空间也没有真的被释放回收。InnoDB的Purge线程会异步的来清理这些没用的索引键和行,但是依然没有把这些释放出来的空间还给操作系统重新使用,因而会导致页面中存在很多空洞。如果表结构中包含动态长度字段,那么这些空洞甚至可能不能被InnoDB重新用来存新的行,因...

2019-07-18 20:31:26 4792

原创 数据结构与算法之快速排序

快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。时间复杂度:O

2017-03-18 16:10:41 736

原创 hive 中udf,udaf,udtf

UDF步骤:1.继承org.apache.hadoop.hive.ql.exec.UDF2.实现evaluate函数,evaluate函数支持重载[java] view plain copypackage cn.sina.stat.hive.udf;  import java.util.Arrays;  import org.

2017-03-08 11:20:23 858

原创 编程语言基本用法总结(Shell,Python,C/C++)

1. Shell 脚本执行目录声明:#!/bin/bash数据结构:val_str="string" #定义字符串变量val_int=1 #定义整形变量arry_str=("1" "2" "3" "4") #定义字符串型数组arry_int=(1 2 3 4) #定义整形数组map=(["key1"]=1 ["key2"]=2) #定义map结构map["k

2017-03-05 17:25:23 6272 2

原创 数据结构与算法之有序链表去重

1. 有序链表,需要将链表中重复的节点合并为一个节点(例如:[1,2,3,3,3,5,7,8,8,9,13,14]) 合并为[1,2,3,5,7,8,9,13,14])struct ListNode{ int val; ListNode* next;} ListNode* uniq_list(ListNode* head){ if(head == Null || head ->

2017-03-05 16:46:40 4573

原创 数据结构与算法之整体有序数组的查找

一个组数整体上是有序的(或者说是循环有序),需要找到其中的某个元素假设数组整体是升序的,基于二分查找算法实现如下:非递归实现int search(int a[],int length,int target){ int low = 0; int high = length-1; while(low <= high) { int mid=low + (high

2017-03-05 15:53:41 492

原创 数据结构与算法之二分查找

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以

2017-03-04 10:48:29 455

转载 数据仓库中的Inmon与Kimball架构之争

对于数据仓库体系结构的最佳问题,始终存在许多不同的看法,甚至有人把Inmon和Kimball之争称之为数据仓库界的“宗教战争”,那么本文就通过对两位提倡的数据仓库体系和市场流行的另一种体系做简单描述和比较,不是为了下定义那个好,那个不好,而是让初学者更明白两位数据仓库鼻祖对数据仓库体系的见解而已。      首先,我们谈Inmon的企业信息化工厂。      2000年5月,W.H.Inm

2017-02-16 12:14:27 1412

原创 Apache Kylin Cube优化

Kylin 构建Cube时优化方法如下:1. Hierarchy(层级) Dimensions优化在Fact table(事实表)中的维度满足层级关系时定义这几个维度为Hierarchy。一些列具有层次关系的Dimension组成一个Hierarchy,比如年,月,日组成了一个Hierarchy。查询时指定group by year  ;  group by year , month;

2017-02-14 12:03:58 1331

原创 Apache Kylin Buid Cube详细流程

Build Cube流程主要分为四个阶段:根据用户的cube信息计算出多个cuboid文件根据cuboid文件生成htable更新cube信息回收临时文件1.流程一:作业整体描述把构建Cube的来源表总行数写到指定的HDFS文件中2.流程二:生成中间临时数据这一步的操作是根据Cube设计中的定义生成原始数据,这里会新创建一个Hive外部表,然后再根据Cube中定义的

2017-02-13 18:18:57 1388

原创 Apache Kylin Cube构建算法

逐层算法在介绍快速Cube算法之前,我们先简单回顾一下现有的算法,也称之为“逐层算法”(By Layer Cubing)。我们知道,一个N维的完全Cube,是由:1个N维子立方体(Cuboid), N个(N-1)维Cuboid, N*(N-1)/2个(N-2)维Cuboid …, N个1维Cuboid, 1个0维Cuboid,总共2^N个子立方体组成的;在“逐层算法”中,按维度数逐

2017-02-13 17:11:37 2708

原创 Apache kylin 原理和架构

Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。1.基本原理kylin的核心思想是预计算,理论基础是:以空间换时间。即多多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube并存储到hbase中,供查询时直接访问。

2017-02-13 12:27:42 11387

转载 数据仓库多维数据模型-星型模型 和 雪花模型

(星形模式是一种多维的数据关系,它由一个事实表(Fact Table)和一组维表(Dimension Table)组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。事实表的非主键属性称为事实(Fact),它们一般都是数值或其他可以进行计算的数据;而维大都是文字、时间等类型的数据,按这种方式组织好数据我们就可以按照不同的维(事实表主键的部分或全部)来对这些事实数据进行求和(sum

2017-02-13 11:27:47 2334

原创 基于多维数据模型的OLAP

数据立方体----维度与OLAP前面的一篇文章——数据仓库的多维数据模型中已经简单介绍过多维模型的定义和结构,以及事实表(Fact Table)和维表(Dimension Table)的概念。多维数据模型作为一种新的逻辑模型赋予了数据新的组织和存储形式,而真正体现其在分析上的优势还需要基于模型的有效的操作和处理,也就是OLAP(On-line Analytical Processi

2017-02-13 11:18:22 5106

转载 数据仓库的多维数据模型

可能很多人理解的数据仓库就是基于多维数据模型构建,用于OLAP的数据平台,通过上一篇文章——数据仓库的基本架构,我们已经看到数据仓库的应用可能远不止这些。但不得不承认多维数据模型是数据仓库的一大特点,也是数据仓库应用和实现的一个重要的方面,通过在数据的组织和存储上的优化,使其更适用于分析型的数据查询和获取。多维数据模型的定义和作用  多维数据模型是为了满足用户从多角度多层次进行数据

2017-02-13 11:07:03 738

转载 数据仓库的基本架构

数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。其实数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。因此数据仓库的基本架构主要包含的是数据流入流出的过程,可以分为三层——源数据、数据仓库、数据应用:  从图中可以看出数据仓库的

2017-02-13 10:52:46 519

转载 数据仓库的源数据类型

数据仓库中集成了企业几乎所有的可以获取到的数据以用于数据分析和决策支持,当然也包括了我在网站分析的数据来源一文中所提到的所有数据。这些进入到数据仓库中的数据无外乎三种类型:结构化数据、半结构化数据和非结构化数据,它们经过转化后以某种形式统一地储存在数据仓库中,即通常说的ETL(Extract, Transform, Load,抽取、转换、装载)的过程。下面主要说一下这三种数据类型的区别,它们分

2017-02-13 10:44:56 970

原创 Hive查询优化

Hive查询优化分成三个部分1. 合理建表2.通用参数优化\3.Join优化

2017-02-09 14:21:01 813

原创 Hive 模式设计和语言规范

1. 模式设计1.1 数据模型-数据的组织方式Database: 和关系型数据库的Database一样Table: Hive将数据表分为内部表和外部表。内部表在Hive中创建的普通表都可称作“内部表”。因为Hive可以(或多或少)控制其数据的生命周期,内部表对数据拥有所有权。如我们所见,通常Hive会将内部表的数据储存在由hive.m

2017-02-09 12:38:54 2401

原创 Hive Driver 原理

Hive 的Driver 是hive的一个组件,负责将hive  sql 解析和优化HQL语句,将其转换成一个Hive Job(可以是MapReduce,也可以是Spark等其他任务)并提交给Hadoop集群。SQL转化为Hive Job的过程SQL转化为MapReduce任务的,整个编译过程分为六个阶段:Antlr定义SQL

2017-02-09 11:23:40 4457

转载 Kafka 高性能吞吐揭秘

A high-throughput distributed messaging system.--Apache KafkaKafka作为时下最流行的开源消息系统,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。相比较于RocketMQ等其他常见消息系统,Kafka在保障了大部分功能特性的同时,还提供了超一流的读写性能。本文将针对Kafka性能方面进行简单

2017-02-09 11:22:44 2243

原创 Hive架构

Hive架构在Hadoop生态圈中已经是老生常谈。尽管如此,很多资料并没有将Hive模块之间的关系描述的十分清楚,本人也在管理Hive数据仓库时绕了不少弯路。所以我们仍要再谈Hive架构,希望将积累的经验总结出一套完整而又易懂的Hive架构,借此为行业新人开路,为大数据运维排忧。Hive是典型C/S模式。Client端有JDBC/ODBC Client和Thrift Client两类。

2017-02-09 11:00:38 7056

转载 hive静态分区和动态分区

hive中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash分区、混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说在表的数据文件中实际上并不保存分区列的信息与数据。下面的语句创建了一个简单的分区表:create table partition_test(member_id string,name string)partition

2017-02-08 16:49:16 1755

原创 hive中的order by , sort by, distribute by, cluster by

1. order by    Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。    这里跟传统的sql

2017-02-07 17:01:03 709

原创 kafka leader选举机制原理

kafka在所有broker中选出一个controller,所有Partition的Leader选举都由controller决定。controller会将Leader的改变直接通过RPC的方式(比Zookeeper Queue的方式更高效)通知需为此作出响应的Broker。同时controller也负责增删Topic以及Replica的重新分配。当有broker fari over contr

2017-02-06 17:22:50 54236 4

转载 Hadoop列式存储引擎Parquet/ORC和snappy压缩

相对于传统的行式存储格式,列式存储引擎具有更高的压缩比,更少的IO操作而备受青睐。列式存储缺点:在column数很多,每次操作大部分列的时候,cpu压力突增,而且增加处理时长。优点:在cloumn数很多,每次操作若干列的场景,列式存储的性价比,性能更高。在很多大数据的应用场景下面,数据量很大、单列数据字段很多;比如电信行业,具有一定规则的数据,字段很多,但是每次查询仅仅针对其中少数

2017-02-04 17:04:11 1334

转载 Parquet与ORC:高性能列式存储格式

背景随着大数据时代的到来,越来越多的数据流向了Hadoop生态圈,同时对于能够快速的从TB甚至PB级别的数据中获取有价值的数据对于一个产品和公司来说更加重要,在Hadoop生态圈的快速发展过程中,涌现了一批开源的数据分析引擎,例如Hive、Spark SQL、Impala、Presto等,同时也产生了多个高性能的列式存储格式,例如RCFile、ORC、Parquet等,本文主要从实现的角度

2017-02-04 16:59:55 909

转载 Hive 基础之:分区、桶、Sort Merge Bucket Join

Hive 已是目前业界最为通用、廉价的构建大数据时代数据仓库的解决方案了,虽然也有 Impala 等后起之秀,但目前从功能、稳定性等方面来说,Hive 的地位尚不可撼动。其实这篇博文主要是想聊聊 SMB join 的,Join 是整个 MR/Hive 最为核心的部分之一,是每个 Hadoop/Hive/DW RD 必须掌握的部分,之前也有几篇文章聊到过 MR/Hive 中的 joi

2017-02-04 12:36:39 697

转载 hive中的Lateral View

通过Lateral view可以方便的将UDTF得到的行转列的结果集合在一起提供服务。因为直接在SELECT使用UDTF会存在限制,即仅仅能包含单个字段,如下:Hive> select my_test(“abcef:aa”) as qq,my_test(“abcef:aa”) as ww from sunwg01;FAILED: Error in semantic analysis

2017-02-04 12:06:31 700

原创 HDFS fsimage和edits合并实现原理

1. Hadoop 1.x 版本 fsimage和edits合并实现原理 在NameNode运行期间,HDFS的所有更新操作都是直接写到edits中,久而久之edits文件将会变得很大;虽然这对NameNode运行时候是没有什么影响的,但是我们知道当NameNode重启的时候,NameNode先将fsimage里面的所有内容映像到内存中,然后再一条一条地执行edits中的记录,当edits文件

2017-01-22 17:25:22 4239

原创 HDFS 2.0 HA实现原理

在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障,那么将导致整个集群无法利用,直到NN重启或者在另一台主机上启动NN守护线程。  主要在两方面影响了HDFS的可用性:  (1)、在不可预测的情况下,如果NN所在的机器崩溃了,整个集群将无

2017-01-22 17:20:44 661

原创 HDFS 内部机制

1. 写流程2.读流程3.副本放置策略4.可靠性策略5.HDFS数据块6.HDFS 不适合小文件存储

2017-01-22 17:14:28 615

原创 HDFS 优缺点

HDFS优点:高容错性:数据自动保存多个副本,副本丢失后,自动恢复适合批处理:移动计算而飞数据。数据位置暴露给计算框架适合大数据处理:GB,TB,设置PB级数据。百万规模以上文件数量。10K+节点规模。流式文件访问:一次性写入,多次读取。保证数据一致性。可构建在廉价机器上:通过多副本提高可靠性。提供容错和恢复机制。HDFS缺点:不适合低延迟数据访问场景:比如毫秒

2017-01-22 16:59:03 7591

原创 HDFS 架构

2.X 版本的HDFS 架构图如下:Active Namenode:主Master(只有一个)管理HDFS的命名空间(name space)管理数据块映射信息配置副本策略处理客户端读写请求Standby NameNode:NameNode的热备定期合并fsimage和fsedits,推送给NameNode当Active NameNode出现故

2017-01-22 16:46:43 633

原创 Yarn 架构

yarn 基本架构Resource ManagerApplication masternode managercontainer history servertimeline server参考资料:1. http://blog.csdn.net/cymvp/article

2017-01-22 11:48:08 676

转载 分布式事务 - 两阶段提交与三阶段提交

摘要: 在分布式系统中,著有CAP理论,该理论由加州大学伯克利分校的Eric Brewer教授提出,该理论阐述了在一个分布式系统中不可能同时满足一致性(Consistency)、可用性(Availability),以及分区容错性(Partition tolerance)。  在分布式系统中,著有CAP理论,该理论由加州大学伯克利分校的Eric Brewer教授提出,该理论阐述了在一个分

2017-01-22 10:35:40 546

原创 Yarn 资源调度器

Yarn的资源调度目前支持内存和CPU两种资源。Yarn支持三种调度方式:FIFO、FAIR和DRF分别是指先来先服务、公平调度和主资源公平调度FIFO:先按照优先级高低调度,如果优先级相同,则按照提交时间先后顺序调度,如果提交时间相同,则按照(队列或者应用程序)名称大小(字符串比较)调度;不支持有子队列的情况。FAIR:按照内存资源使用量比率调度,即按照used_memo

2017-01-20 19:20:06 3755

pthread代码实例

十分钟学会pthread用法.直接看代码,对照注释,不懂的直接百度,轻松掌握pthread

2015-06-26

windows 程序设计快速入门

非常好的windows程序设计资料,非常适合想快速入门windows程序设计的同学,资料包括源代码,ppt

2012-08-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除