自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Exactly-once 只有一次的两个阶段提交 (Exactly-once two-phase commit)

Data Source 会先从 kafka 里面读取数据JobManger 会向 Data Source 中 发起 Checkpoint 指令并同时向 S ource 发送 barrier (检查点分界线),如果这个Source 有多个并行,那么每个Source 都会有一个 barrier这个 barrier 会把 Data Source 中的状态保存起来持久化到 State Backend 中 ,然后 barrier 会向下个算子Window 中传递,然后我们假如会在 Window ...

2021-03-12 20:53:32 245 1

原创 Flink 的 状态

State状态什么是状态: 程序在计算过程当中的中间结果Flink实时计算程序为了保证计算过程中,出现异常可以容错,就要将中间的计算结果数据存储起来,这些中间数据就叫做State。State可以是多种类型的,默认是保存在JobManager的内存中,也可以保存到TaskManager本地文件系统或HDFS这样的分布式文件系统StateBackEnd用来保存State的存储后端就叫做StateBackEnd,默认是保存在JobManager的内存中,也可以保存的本地文件系统或HDFS这样的分布

2021-03-08 22:54:59 406

原创 Flink 的 算子链 和 资源组

Task Slots 和资源**来自同一个 job 的不同 task 的 substask 可以挤到同一个槽里面**共享资源槽的两个优点:1 Flink 集群中有几个 task slot ,就有多少个并行度,无需计算程序中包含多少个 subtask2 容易获得更好的资源利用率,如果没有 slot 共享,非密集 subtask 会将 阻塞 和 密集型 一样多的资源,通过 slot 共享,我们示例 中的基本并行度 从2 增加到6 ,可以充分利用分配的资源,同时确保 繁重的 subt

2021-03-08 14:28:08 288

原创 Flink 之 EventTime 划分时间窗口(滑动窗口)

不分组,按照EventTime划分 滑动窗口*Non-keyed Window,底层调用的是windowAllpublic class EventTimeSlidingWindowAllDemo1 { public static void main(String[] args) throws Exception { // 前关后闭 0 -- 4999 5000- 9999 StreamExecutionEnvironment env = StreamE

2021-03-07 23:00:55 664

原创 Flink 之 EventTime 划分时间窗口(会话窗口)

不分组,按照 EventTime 划分 会话 窗口*Non-keyed Window,底层调用的是windowAll这个是大于最后会话数据,不是大于等于public class EventTimeSessionWindowAllDemo { public static void main(String[] args) throws Exception { // 前关后闭 0 -- 4999 5000- 9999 StreamExecutionEnvir

2021-03-07 22:53:57 388

原创 Flink 之 EventTime 划分时间窗口(滚动窗口)

窗口触发的条件 : 水位线 >= 窗口结束的时间一不分组,按照EventTime划分滚动窗口Non-keyed Window,底层调用的是windowAllpublic class EventTimeTumblingWindowAllDemo { public static void main(String[] args) throws Exception { // 2021-03-06 21:00:00,1 // 2021-03-06 2

2021-03-07 22:50:23 691

原创 Flink 的 窗口和时间类型

窗口运算流式计算是一种被设计用于处理无限数据集的数据计算引擎,所谓无限数据集是指一种源源不断的数据流抽象成的集合。而Window就是一种将无限数据集切分成多个有限数据集并对每一个有限数据集分别进行处理的手段。Window本质上是将数据流按照一定的规则,逻辑地切分成很多个有限大小的“bucket”桶,这样就可以对每一个在“桶里面”的有限的数据依次地进行计算了。流式计算引擎的特点是每输入一条数据就立即处理,延迟低。然而在一些场景下偏偏希望将数据先攒成一个个小批次,然后对每一个小批次再进行运算。例如用Fl

2021-03-05 21:50:40 471

原创 Flink 安装搭建 Flink 集群

第一步先搭建 Flink 集群① 下载安装 Flink 安装包下载地址:https://flink.apache.org/downloads.html② 上传flink安装包到Linux服务器上③ 解压flink安装包tar -zxf flink-1.9.1-bin-scala_2.11.tgz -C /opt/apps/④ 修改 conf 目录下的 flink-conf.yaml 配置文件#指定jobmanager的地址jobmanager.rpc.address: linu

2021-02-28 21:10:43 171

原创 Flink 简介和理解

**什么是 Flink**Apache Flink 是一个分布式大数据处理的引擎,可对有限的数据流和无线数据流进行有状态的计算,可部署在各种集群环境,对各种大小的数据规模进行快速计算有限数据流:数据分批次执行完的无限数据流: 一直接收计算,不停歇的Flink的历史早在 2008 年,Flink 的前身已经是柏林理工大学一个研究性项目, 在 2014 被 Apache 孵化器所接受,然后迅速地成为了 ASF(Apache Software Foundation)的顶级项目之一Flink的商

2021-02-28 20:41:11 169

原创 Kafka入门介绍和基础

Kafka的特点:1.解耦:  允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2.冗余:  消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。3.扩展性:  因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。4.灵活性 &am

2021-02-23 16:40:26 327 1

原创 sql 语句的执行顺序

select-------④from ----- ①tb_namewhere ------②group by -------③having ------- ⑤order by ---------⑥limit -------------⑦

2021-02-16 22:00:56 70

原创 业务中产生的业务日志所用到的压缩算法

2021-02-08 10:14:25 220

原创 HIVE 常用命令

HIVE 连接方式1 在本地执行 hive 命令(本地模式进入到 hive客户终端)2 通过远程连接的方式1)开启元数据服务hive --service metastore & 2) 开启 hiveserver2 服务hiveserver23) 开启 beeline窗口beeline4) 可以查看端口号是否连接netstat -nltp | grep 10000 netstat -nltp | grep 90835)输入连接命令

2021-01-13 22:43:53 585

原创 启动命令(HDFS,ZOOKEEPER,HBASE,YARN)

Hadoop**start-all.sh 启动** 启动所有的Hadoop守护进程。包括NameNode、 Secondary NameNode、DataNode、ResourceManager、NodeManager但是一般不推荐使用start-all.sh(因为开源框架中内部命令启动有很多问题)。 **stop-all.sh 停止** 停止所有的Hadoop守护进程。包括NameNode、 Secondary NameNode、DataNode、ResourceManager、Nod

2021-01-13 22:08:27 818

原创 项目-----数据采集入库报错问题总结

– 问题总结flume的agent的堆内存大小默认只有20M,在生产中是肯定不够的一般需要给到1Gvi bin/flume-ng搜索 Xmx ,并修改channel阻塞启动flume之前,积压的数据过多,所以,source读得很快,而sink写hdfs速度有限,会导致反压反压从下游传递到上游,上游的flume的运行日志中会不断报:channel已满,source重试这里就涉及到flume的运行监控 :如果通过监控,发现channel频繁处于阻塞状态,可以通过如下措施予以改善

2021-01-12 20:47:09 256

原创 RDD DataSet 和 Dataframe 的 区别

**RDD DataSet 和 Dataframe 的 区别**首先从版本产生的来看RDD(Spark1.0)—> Dataframe(Spark 1.3)—>DataSet(Spark 1.6)同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果不同的是他们的执行效率和执行方式下面我们先来了解一下这三个数据结构1 RDDRDD 是一个lazy的不可变的可以支持函数调用的并行数据集合RDD 的最大的好处就是简单, API的人性化程度高RDD 劣势是性

2021-01-07 00:00:23 144

原创 统计店铺月累计收入

sid,dt,moneyshop1,2019-01-18,500shop1,2019-02-10,500shop1,2019-02-10,200shop1,2019-02-11,600shop1,2019-02-12,400shop1,2019-02-13,200shop1,2019-02-15,100shop1,2019-03-05,180shop1,2019-04-05,280shop1,2019-04-06,220shop2,2019-02-10,100shop2,2019-0

2021-01-05 21:38:11 230

原创 Spark 任务执行经典十八问

1 SparkContext哪一端生成的?Driver端即SparkContext(Driver 是一个统称,DAGSchedule ,TaskScheduler,BlockManager,ShuffeManager,BroadcastManger)2 DAG是在哪一端被构建的?Driver 端3 RDD是在哪一端生成的?Driver 端 ,RDD 不装真正要计算的数据,而是记录了数据的描述信息(以后从哪里读数据,怎么计算)4 调用 RDD 的算子(Transformation和Ac

2020-12-30 18:14:19 77

原创 Spark 知识点

**一 spark **Spark是一个分布式计算框架 ,你对 RDD 进行 map 操作,其实是对它里面的每一个分区进行 map 进行操作你对 RDD 里面的数据进行操作,其实 RDD 里面 不装数据, RDD里面有多个分区 ,每个分区会生成 多个 task你对 RDD 操作,本质上是对 RDD 里面的每个分区进行操作 ,分区会记录你的操作信息(调哪个方法,传哪个函数)以后会根据这个分区信息 生成taskspark程序的流程 :读取或者转化数据创建一系列 RDD ,然后使用转化操作生成新

2020-12-30 00:35:55 137

原创 HDFS 关闭安全模式

hdfs dfsadmin -safemode leave; //退出安全模式hdfs dfsadmin -safemode forceExit; //强制退出安全模式若使用正常的退出安全模式方法无法生效时,即还是Safe mode is ON就使用强制退出安全模式

2020-12-29 23:29:24 2703

原创 广播变量案列练习

package cn._51doit.day06import org.apache.spark.rdd.RDDimport org.json4s.scalap.scalasig.ScalaSigEntryParsers.indeximport utils.{IpUtils, SparkUtils}object IpLocationCount { def main(args: Array[String]): Unit = { val sc = SparkUtils.createCon

2020-12-29 23:23:09 98

原创 通过并行化创建 RDD

一首先连接集群 ,进入Spark客户端在 bin 目录下./spark-shell --master spark://linux01:7077二我们可以通过一个集合来创建 RDDval arr=Array(1,2,3,4,5,6,7,8,9) val rdd = sc.parallelize(arr) 得到一个新的 RDDrdd.partitions.length 这是分区的数量val rdd =sc.parallelize(arr,200)这是改变分区的数量 (200)

2020-12-22 23:10:26 1413

原创 RDD

RDD**是一个 分布式、弹性、可容错的抽象数据集,代表着一个不可变的,可分区的,可以并行执行的一个集合RDD中不保存计算的数据,保存的式元数据,即数据的描述信息和运算逻辑,比如数据要从哪里读取,怎么运算等RDD 可以被认为是一个代理, 你对RDD 进行操作,相当于在Driver 端先是记录下计算的描述信息,然后生成Task ,将Task 调度到 Executor 端才执行真正的计算逻辑**RDD特点一 有多个分区,分区数量决定任务并行数① 从HDFS 中读取 :1)如果是从HDFS中读取数

2020-12-22 21:12:09 91

原创 MapReduce Spark 的区别

隐士转换有两种类型一种继承 一种包装

2020-12-22 20:31:07 75

原创 shuffle

1、什么是shuffle?把父RDD中的KV对按照Key重新分区,从而得到一个新的RDD。也就是说原本同属于父RDD同一个分区的数据需要进入到子RDD的不同的分区。2、为什么需要shuffle?在分布式计算框架中,数据本地化是一个很重要的考虑,即计算需要被分发到数据所在的位置,从而减少数据的移动,提高运行效率。Map-Reduce的输入数据通常是HDFS中的文件,所以数据本地化要求map任务尽量被调度到保存了输入文件的节点执行。但是,有一些计算逻辑是无法简单地获取本地数据的,reduce的逻辑都是如

2020-12-22 09:11:38 364

原创 在 idea 里面编写 WordCount 程序

object WorldCount { def main(args: Array[String]): Unit = { // 创建SparkContext ,只有使用SparkContext 才可以向集群申请资源, // 才可以创建 RDD val conf = new SparkConf().setAppName("WorldCount") val sc = new SparkContext(conf) // 第一步创建RDD : 指定【以后】从HD

2020-12-21 23:51:40 436

原创 Spack 架构体系

Spack 架构体系1.1 standalone client模式1.2 standalone cluster模式1.3 Spark On YARN cluster模式1.4 Spark执行流程简介Job:RDD每一个行动操作都会生成一个或者多个调度阶段 调度阶段(Stage):每个Job都会根据依赖关系,以Shuffle过程作为划分,分为Shuffle Map Stage和Result Stage。每个Stage对应一个TaskSet,一个Task中包含多Task,Task

2020-12-21 23:47:56 493

原创 Spark 简介

Spark简介1.1什么是SparkSpark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache的顶级项目,2014年5月发布spark1.0,2016年7月发布spark2.0,2020年6月18日发布spark3.0.01.2 Spark特点1)快速高效Hadoop的MapReduce作为第一代分布式大数据计算引擎,在设计之初,受当时计算机硬件条件所限(

2020-12-21 23:41:15 305

原创 Akka 框架简介 及 RPC 通信案例过程分析

Akka介绍**Akka 是 JAVA 虚拟机平台上构建高并发, 分布式和容错应用的工具包。运行时 Akka 用 Scala 语言编写,同时提供了 Scala 和 java 的开发接口。Akka处理并发的方法基于Actor 模型 ,Actor 之间通信的唯一机制就是消息传递 **Akka 特点:1) 对并发模型进行了更高的抽象2) 是异步,非阻塞,高性能的事件驱动机构编程模型3) 是轻量级时间处理(1 GB 内存可容纳百万级别个Actor)4)它提供了一种称为 Actor 的 并发模型,其粒

2020-12-19 23:11:44 336 1

原创 Scala 构造器

Scala构造器的介绍和 java 一样, Scala 构造对象也需要调用构造方法,并且可以有任意多个构造方法(即 Scala 中构造器也支持重载)scala 类的 构造器包括: 主构造器 和 辅助构造器代码演示如下// 在构造器中传递的参数可以用 val,var 修饰,会成为类的成员变量class Boy(val name:String ,var age :Int) { var gender :String =_ // 对应类型变量的初始默认值 var fv: Doub

2020-12-18 00:56:30 163

原创 Scala 学习第一天 简单的常用方法

object HelloScala{def main(args:Array[String]):Unit={ println("hello,scala~~")} // 说明 1 def 表示是一个方法 ,这是一个关键字 2 main表示方法名字,表示程序入口 3 args:Array[String] 表示形参,scala的特点是将参数名在前 类型在后 4 Array[String] 表示类型数组 5 :Unit= 表示该函数的返回值为空(void) 6 printl

2020-12-16 19:41:22 107

原创 Scala 安装编译器

一 安装JDK因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK二 安装Scala1) Windows 安装Scala编译器 Scala 官网 http://www.scala-lang.org/下载Scala编译器安装包,目前最新版本是2.12.x,但是目前大多数的框架都是用2.11.x编写开发的,Spark2.x使用的就是2.11.x,所以这里推荐2.11.x版本,下载scala-2.11.8.msi后点击下一步就可以了(1) 安装 jdk1.8

2020-12-13 21:56:54 341

原创 Scala 入门学习 介绍 了解 Scala

idea 插件网址

2020-12-13 21:18:39 181

原创 JAVAEE ajax 查询用户列表案列

案例过程思路1 启动 tomcat2 xt 项目在内置的tomcat中注意 : 这是一个程序的入口1 ) main方法程序的入口 运行 启动 tomcat2)tomcat 容器启动 进行加载项目3)创建app 容器 ,初始化 springboot 项目4)根据项目中的依赖 完成自动配置(web 端口 前端控制器的拦截url 乱码 包扫描 )5) 启动 加载前端控制器 , 加载控制器 ,加载业务层【自动的包扫描】6) 加载静态资源7) 页面请求 ----->

2020-12-12 21:00:23 198

原创 Intellij IDEA 常用的快捷键

Intellij IDEA 快捷键大全IntelliJ Idea 常用快捷键列表Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以

2020-12-11 23:58:10 55

原创 ClickHouse 表引擎

表引擎(即表的类型)决定了:数据的存储方式和位置,写到哪里以及从哪里读取数据支持哪些查询以及如何支持。并发数据访问。索引的使用(如果存在)。是否可以执行多线程请求。数据复制参数。在读取时,引擎只需要输出所请求的列,但在某些情况下,引擎可以在响应请求时部分处理数据。对于大多数正式的任务,应该使用MergeTree族中的引擎。1 日志引擎 具有最小功能的轻量级引擎。当您需要快速写入许多小表(最多约100万行)并在以后整体读取它们时,该类型的引擎是最有效的。1 TinyLog引擎(数据

2020-12-09 00:03:27 381

原创 Clickhouse SQL 语法

1创建数据库1本地引擎默认的引擎, 默认操作本地或者是指定集群的数据CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(…)]2mysql引擎MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换。MySQL数据库引擎会将对其的查询转换为MySQL语法并发送到

2020-12-08 22:53:51 882

原创 大数据核心技术

学完大数据可以胜任什么职位?一、ETL研发企业数据种类与来源的不断增加,对数据进行整合与处理变得越来越困难,企业迫切需要一种有数据整合能力的人才。ETL开发者这是在此需求基础下而诞生的一个职业岗位。ETL人才在大数据时代炙手可热的原因之一是:在企业大数据应用的早期阶段,Hadoop只是穷人的ETL。二、Hadoop开发随着数据规模不断增大,传统BI的数据处理成本过高企业负担加重。而Hadoop廉价的数据处理能力被重新挖掘,企业需求持续增长。并成为大数据人才必须掌握的一种技术。三、可视化工具开发可

2020-12-08 21:54:59 106

原创 JSON 函数

JSON 函数一 在CH 中建表create table tb_json(cont String) engine=Log ;二 导入表数据insert into tb_json values('{"movie":"1207","rate":"4","timeStamp":"978300719","uid":"1"}'),('{"movie":"2028","rate":"5","timeStamp":"978301619","uid":"1"}'),('{"movie":"531","ra

2020-12-08 17:28:23 165

原创 数组函数

高阶函数方法: 是一段逻辑代码的封装, 实现功能 , 代码的重复使用, 方便调用函数: 是一段逻辑代码的封装, 实现功能 , 代码的重复使用, 方便调用区别:方法是对象的一部分函数比方法高级 , 可以作为一个特殊的对象单独存在arrayMap 是一个高阶函数参数一 是一个函数 function f(T x){}参数二 数组select arrayMap(x->x*x ,[1,2,3,4]) ;结果数组拼接select arrayConcat([1,2],[3,4],

2020-12-08 17:05:56 59

空空如也

空空如也

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

TA关注的人

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