自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

转载 Hive优化思路

在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。规避错误来更好的运行比解决错误更高效。在查看了一些资料后,

2022-03-23 18:18:40 510

转载 clickhouse简介

什么是ClickHouseClickHouse 是俄罗斯的Yandex(类似于百度等在我们国家的地位)于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告(优势:快))。什么是列式存储以下面的表为例:Id Name Age1 张三 182 李四 223 王五 34采用行式存储时,数据在磁盘上的组织结构为:(相同颜色代表一行)好处是想查某个人所有的属性时,可以通过一次磁盘查找加顺序读取就可以。但是当想查所有人的年龄

2022-03-22 19:26:54 15077 1

转载 hive中的数据类型

数据类型1.Hive中的数据类型分为两类:基本类型和复杂类型2.基本类型包含:tinyint,smallint,int,bigint,float,double,boolean,string,timestamp,binary3.复杂类型:array,map和structa. array:数组类型,对应了Java中的集合或者数组。原始数据jack,john lucy,miketom,bob,cindy lily,helen,mary,alexfrank,grace,iran,eden tony

2022-03-21 18:15:16 19700

转载 hive和传统数据库的区别

1、数据存储位置。Hive是建立在Hadoop之上的,所有的Hive的数据都是存储在HDFS中的。而数据库则可以将数据保存在块设备或本地文件系统中。2、数据格式。Hive中没有定义专门的数据格式,由用户指定,需要指定三个属性:列分隔符,行分隔符,以及读取文件数据的方法。数据库中,存储引擎定义了自己的数据格式。所有数据都会按照一定的组织存储。3、数据更新。Hive的内容是读多写少的,因此,不支持对数据的改写和删除,数据都在加载的时候中确定好的。数据库中的数据通常是需要经常进行修改。4、执行延迟。H

2022-03-20 20:47:31 3469

转载 hive的常见文件存储格式

在hive中,较常见的文件存储格式有:TestFile、SequenceFile、RcFile、ORC、Parquet、AVRO。默认的文件存储格式是TestFile,在建表时若不指定默认为这个格式,那么导入数据时会直接把数据文件拷贝到hdfs上不进行处理。除TestFile外的其他格式的表不能直接从本地文件导入数据,数据要先导入到TestFile格式的表中,然后再从表中用insert导入到其他格式的表中。TestFile格式在建表时无需指定,Hive的默认文件格式,文件存储方式为正常的文本格式。以T

2022-03-20 20:43:05 3263

转载 hive内部表和外部表的区别

区别创建内部表:内部表直接创建,不需要加关键字create table if not exits xm_testA( KEHUMC VARCHAR(50) COMMENT '客户名称', KEHUZH VARCHAR(50) COMMENT '客户号')COMMENT '客户信息表'外部表:外部表的创建需要加上external关键字修饰,可以通过location指定hive仓库的路径create external table if not exits xm_tes

2022-03-18 17:18:24 1662

转载 scala中隐式函数的使用

简介所谓隐式函数指的是那种以implicit关键字声明的带有单个参数的函数。正如它的名称所表达的,这样的函数将会自动应用,将值从一种类型转换为另一种类型。隐式函数的使用需求分析:使用隐式函数解决数据类型的转换问题object ImplicitDemo01 { def main(args: Array[String]): Unit = { // 编写一个隐式函数将Double =》 Int implicit def douToInt(d: Double): Int = {...

2022-03-17 22:29:33 151

转载 Spark saveAsTextFile

当我运行完一个Spark程序想把结果保存为saveAsTextFile,结果使用hadoop fs -ls la /qy/151231.txt后发现里面有一系列的part,好几千个。原因:运行Spark的时候把数据分成了很多份(partition),每个partition都把自己的数据保存在partxxx文件夹。如果想保存为一份的话,就要:先collect或者data.coalesce(1,true).saveAsTextFile()You can also use repartiti..

2022-03-16 16:58:41 1706

转载 spark中RDD的键值转换操作

groupBygroupBy(function)function返回key,传入的RDD的各个元素根据这个key进行分组def main(args: Array[String]): Unit = { //默认分区12个 val sc = new SparkContext(new SparkConf().setMaster("local").setAppName("test").set("spark.default.parallelism", "12")) var rdd1 = sc.

2022-03-15 17:12:10 573

转载 shuffle简介

一、shuffle概述。 hadoop中mapper之后,reducer之前的阶段称之为shuffle,是mapreduce的核心。我们不用知道它的定义,只需要知道它的功能,以及它的优化。为什么会有shuffle? hadoop中,map负责数据的初级拆分获取解析,reduce负责最终数据的集总,除了业务逻辑的功能外,其他的核心数据处理都是由shuffle来支持。​ shuffle中有什么简单来说,shuffle中有三次的数据排序第一次是快速排序,这是因为第一...

2022-03-14 17:55:49 3932

转载 flink相关问题汇总

1.看你用了Flink,简单介绍一下Flink?Flink是一个实时计算框架,他和spark都是流批一体计算框架,flink提供了有界流和无界流的计算,有界流其实就是flink认为数据是流式的为大多数情况,批量的为小部分情况,也就是说数据有边界叫有界流,数据没有边界叫无界流,也就是无限实时生成的数据。flink主要对外的API有 DataSet API、DataStream API、Table API图计算、机器学习。对外提供了有java 和scala、python两种语言接口。2. Fl

2022-03-13 18:01:53 386

转载 java集合相关问题总结

1.ArrayListVS LinkedList1)ArrayList是用一个可扩容的数组来实现的,LinkedList是用链表实现的2)数组和链表之间最大的区别就是数组是可以随机访问的而链表只能从头开始逐个遍历3)两者在增删改查操作上的区别在改查这两个功能上因为数组能够随机访问所以ArrayList效率高在增删这两个功能上如果不考虑找到这个元素的时间数组因为物理上的连续性当要增删元素时在尾部还好但是其他地方就会导致后续元素都要移动所以效率极低 而链...

2022-03-13 17:55:35 130

转载 spark常见算子之间的区别

一、reduceByKey和groupByKey的区别1、reduceByKey:按照 key进行聚合,在 shuffle 之前有 combine(预聚合)操作,返回结果是 RDD[k,v]。2、groupByKey:按照 key进行分组,直接进行 shuffle。开发指导:reduceByKey比 groupByKey,建议使用。但是需要注意是否会影响业务逻辑。1、reduceByKey(func):使用 func 函数合并具有相同键的值。val list = List("hadoop",

2022-03-13 17:46:40 385

原创 spark和Mapreduce的对比

1.spark和Mapreduce的简单介绍MapReduce:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个

2022-03-10 18:26:19 8807

转载 sql的六种约束

/*数据库的约束*//*1.not null 非空约束 ①强制列不接受空值 ②例:创建表时,name varchar(6) not null,2.unique 唯一性约束 ①约束唯一标识数据库表中的每条记录 ②unique和primary key都为数据提供了唯一性约束 ③primary key 拥有自动定义的Unique约束 ④注意:每个表中只能有一个primary key约束,但是可以有多个Unique约束 ⑤语法: 1.name int unique 2.unique(.

2022-03-09 18:19:45 2413

转载 sql中的主键和外键

主键主键的定义主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。作用:1)保证实体的完整性;2)加快数据库的操作速度3)在表中添加新记录时,DBMS会自动检查新记录的主键值,不

2022-03-08 20:00:57 5254

转载 ETL基础知识

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS(Operational Data Store,操作型数据存储)中——这个

2022-03-07 19:15:23 852

原创 Kafka常见问题汇总

1. kafka是什么,做什么用?kafka 是一个存储系统、消息队列、实时流式处理系统,用来在生产者和消费者之间产生一个缓冲区存放数据,来避免出现过多数据无法处理从而导致堵塞的状况 。2. topic是什么,partition是什么?partition的多与少会影响什么?topic:主题,是kafka中的基本存储结构。partition:分区,每一个topic都有多个分区。partition的多与少会影响消费端的并发读取数据的效率 。3. 副本是什么,为什么要有...

2022-03-03 19:57:08 2309

原创 大数据之数据建模

1.星座模型星形模型中有一张事实表,以及零个或多个维度表,事实表与维度表通过主键外键相关联,维度表之间没有关联,当所有维表都直接连接到“事实表”上时,整个图解就像星星一样。星形模型是最简单,也是最常用的模型。由于星形模型只有一张大表,因此它相比于其他模型更适合于大数据处理。其他模型可以通过一定的转换,变为星形模型。2.雪花模型雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的维度表,形成一些局部的 " 层次 " 区域,这些被分解的表都连接到主维度表.

2022-03-02 17:01:51 3027

原创 什么是用户画像?

为用户生成各类标签,比如: 性别,消费级别,价值等级,流失风险等; 对客户的各种属性进行刻画,以支撑个性化营销,个性化推荐,精准广告投放等上层应用;用户的画像标签,分为3个层次:事实标签;最底层的是事实标签(通过对用户的行为记录统计而得) 模型标签;然后是模型标签(通常来说,是用一些模型算法,综合多个主题的事实标签综合计算所得,这里的模型算法包含机器学习算法,比如流失风险预测标签,就用了逻辑回归算法); 决策标签;最上层是决策标签(这一块主要是由分析师在我们提供的在线运营分析平台上来依据底层标签

2022-03-01 17:05:00 869

原创 数据仓库中维度表的规范化问题

1.维度表对业务过程的度量称为事实1)维度定义在维度建模中,将度量称为“事实”,将环境描述为“维度”,维度是用于分析事实所需要的多样环境2)维度属性维度所包含的表示维度的列,称为维度属性 如开门方式是维度,具体11种方式是维度属性3)维度作用维度属性是查询约束条件、分组和的基本来源,是数据报表标签生成易用性的关键。4)维度应用维度的作用一般是查询约束、分类汇总以及排序、生成报表标签等。5)标识维度维度使用主键标识其唯一性2.规范化1)定义按照三范...

2022-02-28 16:57:46 309

原创 Flume数据采集工具之agent

1.Flume介绍Flume是一个分布式、可靠、和高可用的海量日志采集、汇聚和传输的系统。Flume可以采集文件,socket数据包(网络端口)、文件夹、kafka、mysql数据库等各种形式源数据,又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中一般的采集、传输需求,通过对flume的简单配置即可实现;不用开发一行代码!Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景2.age.

2022-02-27 18:40:03 3384

原创 大数据常见技术栈简介

1.HadoopHadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应...

2022-02-26 18:04:31 7711

原创 数据仓库分层

1.名词解释1.1 ODS(Operational Data Store)操作数据层 ods层是操作数据层,该层的主要功能是存储从数据源处获取的数据,是最接近数据源中数据的一层,数据源中的数据,经过少量基础的数据清洗(如数据过滤、字符集转换、维值处理)之后,装入本层。1.2DW(Data Warehouse)数据仓库层数据仓库层(DW),是数据仓库的主体.在这里,从 ODS 层中获得的数据按照主题建立各种数据模型。这一层和维度建模会有比较深的联系。dw层又...

2022-02-25 20:09:48 2254

转载 【常见的7种排序算法】

1、冒泡排序最简单的一种排序算法。假设长度为n的数组arr,要按照从小到大排序。则冒泡排序的具体过程可以描述为:首先从数组的第一个元素开始到数组最后一个元素为止,对数组中相邻的两个元素进行比较,如果位于数组左端的元素大于数组右端的元素,则交换这两个元素在数组中的位置。这样操作后数组最右端的元素即为该数组中所有元素的最大值。接着对该数组除最右端的n-1个元素进行同样的操作,再接着对剩下的n-2个元素做同样的操作,直到整个数组有序排列。算法的时间复杂度为O(n^2)。/* 冒泡排序 */void B

2022-02-24 10:37:14 77

空空如也

空空如也

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

TA关注的人

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