自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Doris建分区表

【代码】Doris建分区表。

2024-06-28 11:56:55 99

原创 Hive排序字段解析

在Hive中,CLUSTER BYSORT BY和ORDER BY是用于数据分发和排序的关键子句,它们各自有不同的用途和性能特点。

2024-06-28 11:50:57 510

原创 Flink WordCount

添加依赖<properties> <flink.version>1.12.0</flink.version> <java.version>1.8</java.version> <scala.binary.version>2.11</scala.binary.version> <slf4j.version>1.7.30</slf4j.version></prop

2021-01-18 20:53:54 216

原创 电商数据仓库系统搭建1

数仓分层为什么要分层数据集市与数据仓库概念数仓理论范式理论范式概念1)定义范式可以理解为设计一张数据表的表结构,符合的标准级别、规范和要求。2)优点采用范式,可以降低数据的冗余性。为什么要降低数据冗余性?(1)十几年前,磁盘很贵,为了减少磁盘存储。(2)以前没有分布式系统,都是单机,只能增加磁盘,磁盘个数也是有限的(3)一次修改,需要修改多个表,很难保证数据一致性3)缺点范式的缺点是获取数据时,需要通过Join拼接出最后的数据。4)分类目前业界范式有:第一范式(1NF)

2020-12-21 20:39:41 573

原创 Hive 自定义UDTF编写

背景编写一个动作日志表,动作日志表中每行数据对应用户的一个动作记录,一个动作记录应当包含公共信息、页面信息以及动作信息。先将包含action字段的日志过滤出来,然后通过UDTF函数,将action数组“炸开”(类似于explode函数的效果),然后使用get_json_object函数解析每个字段。我们编写的这个UDTF函数需要把传入的JSON数组“炸开”,然后输出,如图所示创建UDTF函数导入依赖<dependencies> <!--添加hive依赖-->

2020-12-15 19:28:53 400

原创 Spark SQL编程

SparkSession新的起始点在老的版本中,SparkSQL提供两种SQL查询起始点:一个叫SQLContext,用于Spark自己提供的SQL查询;一个叫HiveContext,用于连接Hive的查询。SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了SparkContext,所

2020-12-10 10:02:02 288

原创 SparkSQL概述

Spark SQL概述什么是Spark SQL为什么要有Spark SQLSpark SQL原理什么是DataFrame1)DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。2)DataFrame与RDD的主要区别在于,DataFrame带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。左侧的RDD[Person]虽然以Person为类型参数,但Spark框架本身不了解Person类的内部结构。而右侧的DataF

2020-12-09 20:41:40 369

原创 SparkCore 需求样例

1)数据格式思路:分别统计每个品类点击的次数,下单的次数和支付的次数。然后想办法将三个RDD联合到一起。(品类,点击总数)(品类,下单总数)(品类,支付总数)(品类,(点击总数,下单总数,支付总数))然后就可以按照各品类的元组(点击总数,下单总数,支付总数)进行倒序排序了,因为元组排序刚好是先排第一个元素,然后排第二个元素,最后第三个元素。需求实现(方案一)0) 创建包名1) 方案一代码实现方式1(cogroup算子实现满外连接)import org.apache.spark.rdd.RD

2020-12-08 21:30:30 243

原创 Spark 广播变量

广播变量广播变量:分布式共享只读变量。广播变量用来高效分发较大的对象。向所有工作节点发送一个较大的只读值,以供一个或多个Spark Task操作使用。比如,如果你的应用需要向所有节点发送一个较大的只读查询表,广播变量用起来会很顺手。在多个Task并行操作中使用同一个变量,但是Spark会为每个Task任务分别发送。1)使用广播变量步骤:(1)调用SparkContext.broadcast(广播变量)创建出一个广播对象,任何可序列化的类型都可以这么实现。(2)通过广播变量.value,访问该对象的

2020-12-07 20:09:31 172

原创 Spark 累加器

累加器累加器:分布式共享只写变量。(Executor和Executor之间不能读数据)累加器用来把Executor端变量信息聚合到Driver端。在Driver中定义的一个变量,在Executor端的每个task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回Driver端进行合并计算。系统累加器...

2020-12-07 20:05:08 156

原创 Spark 键值对RDD数据分区

Spark目前支持Hash分区、Range分区和用户自定义分区。Hash分区为当前的默认分区。分区器直接决定了RDD中分区的个数、RDD中每条数据经过Shuffle后进入哪个分区和Reduce的个数。1)注意:(1)只有Key-Value类型的RDD才有分区器,非Key-Value类型的RDD分区的值是None(2)每个RDD的分区ID范围:0~numPartitions-1,决定这个值是属于那个分区的。2)获取RDD分区代码实现object partitioner01_get { d

2020-12-07 19:57:02 128

原创 Spark 数据读取与保存

数据读取与保存Spark的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:Text文件、Sequence文件以及Object文件;文件系统分为:本地文件系统、HDFS以及数据库。文件类数据读取与保存Text文件1)基本语法(1)数据读取:textFile(String)(2)数据保存:saveAsTextFile(String)2)代码实现object Operate_Text { def main(args: Array[String]): Un

2020-12-07 19:25:49 338

原创 Spark RDD CheckPoint检查点

RDD CheckPoint检查点1)检查点:是通过将RDD中间结果写入磁盘。2)为什么要做检查点?由于血缘依赖过长会造成容错成本过高,这样就不如在中间阶段做检查点容错,如果检查点之后有节点出现问题,可以从检查点开始重做血缘,减少了开销。3)检查点存储路径:Checkpoint的数据通常是存储在HDFS等容错、高可用的文件系统4)检查点数据存储格式为:二进制的文件5)检查点切断血缘:在Checkpoint的过程中,该RDD的所有依赖于父RDD中的信息将全部被移除。6)检查点触发时间:对RDD进

2020-12-07 19:02:49 480

原创 Spark RDD持久化

RDD持久化RDD Cache缓存RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以序列化的形式缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action算子时,该RDD将会被缓存在计算节点的内存中,并供后面重用。1)代码实现object cache01 { def main(args: Array[String]): Unit = { //1.创建SparkConf并设置App名称 val

2020-12-07 18:44:46 185

原创 Spark 算子 Transformation转换算子

Transformation转换算子RDD整体上分为Value类型、双Value类型和Key-Value类型Value类型map()映射具体实现object value01_map { def main(args: Array[String]): Unit = { //1.创建SparkConf并设置App名称 val conf = new SparkConf().setAppName("SparkCoreTest") .setMast

2020-12-04 21:27:49 216

原创 SparkCore分区规则

默认分区源码(RDD数据从集合中创建)1)默认分区数源码解读2)创建一个包3)代码验证import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object partition01_Array_default { def main(args: Array[String]): Unit = { //1.创建SparkConf并设置App名称 val

2020-12-02 18:39:53 194

原创 SparkCore

RDD概述什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。RDD类比工厂生产WordCount工作流程RDD五大特性RDD编程RDD的创建在Spark中创建RDD的创建方式可以分为三种:从集合中创建RDD、从外部存储创建RDD、从其他RDD创建。Maven<dependencies> <d

2020-12-02 18:20:17 127

原创 Spark 1

Spark概述什么是Spark回顾:Hadoop主要解决,海量数据的存储和海量数据的分析计算。Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Hadoop与Spark历史Hadoop的Yarn框架比Spark框架诞生的晚,所以Spark自己也设计了一套资源调度框架。Hadoop与Spark框架对比Spark内置模块Spark Core:实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集

2020-12-01 19:47:22 483

原创 Scala集合

简介Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本。可变集合可以在适当的地方被更新或扩展。这意味着你可以修改,添加,移除一个集合的元素。而不可变集合类,相比之下,永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。但是这些操作将在每一种情况下都返回一个新的集合,同时使原来的集合不发生改变,所以这里的不可变并不是变量本身的值不可变,而是变量指向的那个内存地址不可变可变集合和不可变集合,

2020-11-27 19:18:31 74

原创 hadoop生态圈知识总结

Linux&Shell相关总结Linux常用命令序号命令命令解释1top查看内存2df -h查看磁盘存储情况3iotop查看磁盘IO读写(yum install iotop安装)4iotop -o直接查看比较高的磁盘读写程序5netstat -tunlp | grep 端口号查看端口占用情况6uptime查看报告系统运行时长及平均负载7ps -aux查看进程Shell常用工具1)awk、sed、cut、

2020-11-26 15:06:49 744

原创 Scala高阶面向对象编程

高阶面向对象编程继承和Java一样,Scala中的继承也是单继承,且使用extends关键字。class Person {}class User extends Person {}构造对象时需要考虑构造方法的执行顺序封装封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行访问。1)将属性进行私有化2)提供一个公共的set方法,用于对属性赋值3)提供一个公共的get方法,用于获取属性的值抽象Scala将

2020-11-25 16:26:42 170

原创 Scala面向对象编程

面向对象编程Scala是一门完全面向对象的语言,摒弃了Java中很多不是面向对象的语法。虽然如此,但其面向对象思想和Java的面向对象思想还是一致的基础面向对象编程包1)基本语法Scala中基本的package包语法和Java完全一致package com.atguigu.bigdata.scala2)扩展语法Java中package包的语法比较单一,Scala对此进行扩展Scala中的包和类的物理路径没有关系package关键字可以嵌套声明使用package compacka

2020-11-24 18:12:14 96

原创 Scala函数式编程

函数式编程面向对象编程分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题函数式编程将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的功能按照指定的步骤,解决问题。基础函数编程基本语法[修饰符] def 函数名 ( 参数列表 ) [:返回值类型] = { 函数体}private def test( s : String ) : Unit = { println(s)}函数&方法scala 中存在方法与函数两个不同的概

2020-11-23 18:37:58 95

原创 Scala 1

Scala介绍什么是Scala从英文的角度来讲,Scala并不是一个单词,而是Scalable Language两个单词的缩写,表示可伸缩语言的意思。从计算机的角度来讲,Scala是一门完整的软件编程语言,那么连在一起就表示Scala是一门可伸缩的软件编程语言。之所以说它是可伸缩,是因为这门语言体现了面向对象,函数式编程等多种不同的语言范式,且融合了不同语言新的特性。Scala编程语言是由联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计并开发的。由于

2020-11-20 18:27:11 185

原创 Redis特性

Redis持久化机制Redis工作时数据都存储在内存中,万一服务器断电,则所有数据都会丢失。针对这种情况,Redis采用持久化机制来增强数据安全性。RDB机制描述每隔一定的时间把内存中的数据作为一个快照保存到硬盘上的文件中。Redis默认开启RDB机制。触发时机1)基于默认配置save 900 1save 300 10save 60 100002)使用保存命令save或bgsave3)使用flushall命令这个命令也会产生dump.rdb文件,但里面是空的,没有意义4)服务

2020-11-18 19:15:17 149 1

原创 Redis命令行操作

Redis简介Redis 是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes), 列表(lists),集合(sets),有序集合(sorted sets) 与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。 Redis 内置了复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(trans

2020-11-17 16:40:08 1394

原创 kafka命令行操作

1)查看当前服务器中的所有topic[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list2)创建topic[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 --topic first选项说明:

2020-11-13 20:57:15 94

原创 HBase架构原理

RegionServer 架构1)StoreFile保存实际数据的物理文件,StoreFile以Hfile的形式存储在HDFS上。每个Store会有一个或多个StoreFile(HFile),数据在每个StoreFile中都是有序的。2)MemStore写缓存,由于HFile中的数据要求是有序的,所以数据是先存储在MemStore中,排好序后,等到达刷写时机才会刷写到HFile,每次刷写都会形成一个新的HFile。3)WAL由于数据要经MemStore排序后才能刷写到HFile,但把数据保存在

2020-11-13 19:34:20 124

原创 HBase Shell操作

基本操作1.进入HBase客户端命令行[atguigu@hadoop102 hbase]$ bin/hbase shell2.查看帮助命令hbase(main):001:0> helpnamespace的操作1.查看当前Hbase中有哪些namespacehbase(main):002:0> list_namespaceNAMESPACE

2020-11-13 19:08:57 122

原创 Hbase搭建

HBase简介HBase定义HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。HBase数据模型逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map。HBase逻辑结构HBase物理存储结构数据模型1)Name Space命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。HBase两个自带的命名空间,分别是

2020-11-13 18:26:10 164

原创 Sqoop安装与使用

Sqoop安装下载并解压1)下载地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/2)上传安装包sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz到hadoop102的/opt/software路径中3)解压sqoop安装包到指定目录,如:tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/4)解压sqoop安装包到指定目录,如:

2020-11-11 19:35:40 111

原创 Flume开发案例

复制和多路复用1)案例需求使用Flume-1监控文件变动,Flume-1将变动内容传递给Flume-2,Flume-2负责存储到HDFS。同时Flume-1将变动内容传递给Flume-3,Flume-3负责输出到Local FileSystem。2)需求分析:

2020-11-03 18:33:37 120

原创 Flume内部原理与拓扑结构

Flume事务Flume Agent内部原理重要组件:1)ChannelSelectorChannelSelector的作用就是选出Event将要被发往哪个Channel。其共有两种类型,分别是Replicating(复制)和Multiplexing(多路复用)。ReplicatingSelector会将同一个Event发往所有的Channel,Multiplexing会根据相应的原则,将不同的Event发往不同的Channel。2)SinkProcessorSinkProcessor共有

2020-11-03 18:30:51 108

原创 hive调优

执行计划(Explain)1)基本语法EXPLAIN [EXTENDED | DEPENDENCY | AUTHORIZATION] query2)案例实操(1)查看下面这条语句的执行计划没有生成MR任务的hive (default)> explain select * from emp;ExplainSTAGE DEPENDENCIES: Stage-0 is a root stageSTAGE PLANS: Stage: Stage-0 Fetch Operat

2020-10-30 18:06:06 2290

原创 hive压缩

Hadoop压缩配置MR支持的压缩编码为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器,如下表所示:压缩性能的比较:On a single core of a Core i7 processor in 64-bit mode, Snappy compresses at about 250 MB/sec or more and decompresses at about 500 MB/sec or more.压缩参数配置要在Hadoop中启用压缩,可以配置如下参数(mapred-

2020-10-30 16:50:30 115

原创 hive函数

系统内置函数1)查看系统自带的函数hive> show functions;2)显示自带的函数的用法hive> desc function upper;3)详细显示自带的函数的用法hive> desc function extended upper;常用内置函数8.2.1 空字段赋值1)函数说明NVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。它的功能是如果value为NULL,则NVL函数返回default_valu

2020-10-28 21:22:20 777

原创 hive命令(hql)

基本查询全表和特定列查询0)数据准备(0)原始数据dept:10 ACCOUNTING 170020 RESEARCH 180030 SALES 190040 OPERATIONS 1700emp:7369 SMITH CLERK 7902 1980-12-17 800.00 207499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 307521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00

2020-10-27 18:54:24 961

原创 hive

什么是hivehive简介Hive:由Facebook开源用于解决海量结构化日志的数据统计工具。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。Hive本质:将HQL转化成MapReduce程序(1)Hive处理的数据存储在HDFS(2)Hive分析数据底层的实现是MapReduce(3)执行程序运行在Yarn上1.2Hive的优缺点优点(1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。(2)避免了去写Ma

2020-10-26 21:10:08 220

原创 Zookeeper

概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生了变化,Zookeeper就负责通知已经在Zookeeper上注册的那些观察者做出相应的反应.Zookeeper = 文件系统 + 通知机制特点数据结构Zookeeper内部原理Stat结构体(1)czxid-创建节点的事务zxid

2020-10-21 19:26:01 164

原创 Hadoop优化

MapReduce 跑的慢的原因MapReduce程序效率的瓶颈在于两点:计算机性能CPU,内存,磁盘健康,网络I/O操作优化(1)数据倾斜(2)Map和Reduce数设置不合理(3)Map运行时间太长,导致Reduce等待过久(4)小文件过多(5)大量的不可分块的超大文件(6)Spill次数过多(7)Merge次数过多MapReduce优化方法MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。数据输

2020-10-21 19:00:41 76

空空如也

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

TA关注的人

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