自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于sqoop把数据从hive导出到 mysql报错:Job job_1606700530042_12034 failed with state FAILED due to: Task failed

从azkaban中提示出的错误信息,可以知道整个任务的失败,是由于这个地方从日志信息中,看不出来什么东西,所以要定位到hadoop的yarn中调度的这个任务点击查看历史信息中的 logs 中的 full log,仔细查看后发现: mysql 中这个字段值类型设置了 不能为 Null, 而数据中有部分数据是 null,所以导致了失败。修改值类型之后,再次运行 Sqoop 的任务执行成功了。...

2021-03-06 10:48:34 607

原创 Flink学习笔记之 Window

类似SparkStreaming这种流式计算,但我们处理无限数据集已经由 批处理转向到流处理,而window 是一种切割无限数据为有限块进行处理的。Window 是无线数据流处理的核心, Window 将一个无限的 stream 拆分成有限大小的 "buckets" 桶, 可以在这些桶上进行操作计算。Window 类型Window 可以分成两类:CountWindow:按照指定的数据条数生成一个 Window, 与时间无关。 TimeWindow: 按照时间生成 Window。对于 Tim

2021-01-14 18:27:54 169

原创 Flink学习笔记之实现UDF函数--- 更细粒度的控制流

函数类(Function Classes)Flink 暴露了所有 udf 函数的接口(实现方式为接口或者抽象类)。例如 MapFunction,FilterFunction,ProcessFunction等等。下面例子实现了 FilterFunction 接口:方式1DataStream<String> flinkTweets = tweets.filter(new FlinkFilter());public static class FlinkFilter implements

2021-01-14 09:59:17 202

原创 Flink学习笔记之DataStream API 简介

什么能被转化成流?Flink 的 Java 和 Scala DataStream API 可以将任何可序列化的对象转化为流。Flink自带的序列化器有基本类型:即 String、Long、Integer、Boolean、Array 复合类型:Tuples、POJOS、和 Scala case classes 而且 Flink 会交给 Kryo 序列化其他类型。也可以将其他序列化器和 Flink 一起使用。特别是有良好支持的 Avro。Java tuples 和 POJOSFink 的.

2021-01-13 11:49:55 163

原创 Flink学习笔记之有状态流处理

什么是State?尽管数据流中的许多操作一次仅查看一个事件(例如事件解析器),但某些操作会记住多个事件的信息(例如窗口运算符)。这些操作称为有状态。有状态操作的一些示例:当应用程序搜索某些事件模式时,状态将存储到目前为止遇到的事件序列。 在每分钟/小时/天汇总事件时,状态将保留待处理的汇总。 在数据点流上训练机器学习模型时,状态保持模型参数的当前版本。 当需要管理历史数据时,该状态允许有效访问过去发生的事件。Flink 需要了解状态,以便使用检查点 和 保存点来使其容错。关于状态的知

2021-01-13 11:49:12 399

原创 Flink学习笔记之Flink架构

Flink 是一个分布式系统,需要有效分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,例如 Hadoop YARN 、Apache Mesos 和 Kubernets,但也可以设置作为独立集群甚至库运行。本节概述了 Flink 架构,并且描述了其主要组件如何交互以执行应用程序和从故障中恢复。Flink集群剖析Flink 运行时由两种类型的进程组成:一个 JobManager 和 一个或者多个 TaskManager。Client 不是运行时和程序执行的一部分.

2021-01-13 11:48:36 182 1

原创 Flink学习笔记之运行时组件(二)

程序与数据流(DataFlow)所有的Flink程序都是由三部分组成的: Source、Transformation 和 sink。 Source 负责读取数据源,Transformation 利用各种算子进行处理加工, Sink 负责输出。在运行时,Flink上运行的程序会被映射成 "逻辑数据流" (dataflows),它包含了三个部分。每一个dataflow以一个 sources 开始以一个或多个 sinks 结束。 dataflow 类似于任意的有向无环图(DAG)。在大部分情况下,程序

2021-01-13 11:47:39 117

原创 Flink学习笔记之运行时组件(一)

Flink 运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作:作业管理器(JobManager)、资源管理器(ResourceManager)、任务管理器(TaskManager)以及分发器(Dispatcher)。因为Flink是用 Java 和 Scala 实现的,所以所有组件都会运行在 Java 虚拟机上。每个组件的职责如下:作业管理器(JobManager) 控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的 JobManager 所控制执行。JobMa

2021-01-09 11:28:58 110

原创 Flink学习笔记之提交任务

提交任务的形式有多种一、Web页面提交方式在集群启动之后, 在localhost:8081 可以很清楚的查看到 集群的运行状态, TaskManager、JobManager等等。打包处理的时候还会涉及并行度的问题,我们可以根据情况自行设置。并行度问题:env 可以设置环境的并行度,每一步操作都可以设置 setParallelism 并行度。并行度优先级: 代码 -》全局 -》提交JobWeb-》集群配置文件默认并行度。show plan 查看执行的...

2021-01-09 11:07:30 1151

原创 C语言学习之指针入门

指针入门 每个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。 #include<stdio.h>void main(){ int var_runnob = 10; int *p; p = &var_runnob; // 定义指针变量 printf("var_1 变量的的地址:%p\n",p); // %p 指针形式十六进制表示的地址 getchar();} 当

2020-12-30 15:39:53 62

原创 SQL性能优化

SQL性能优化针对关系型数据库 Mysql先简单梳理下 Mysql 的基本概念,然后分创建时和查询时这两个阶段的优化展开。1. 基本概念简述1.1 逻辑架构第一层:客户端通过连接服务,将要执行的 sql 指令传输过来。第二层:服务器解析并优化 sql,生成最终的执行计划并执行第三层:存储引擎,负责数据的存储和提取。1.2 锁数据库通过锁机制来解决并发场景,共享锁(读锁) 和 排他锁(写锁)。读锁是不阻塞的,多个客户端可以在同一时刻读取同一个资源。写锁是排他的,并且会阻塞其他的读锁和写

2020-11-30 16:31:55 73

原创 Hive SQL练习一

准备数据本次实战要准备两个表:学生表和住址表,字段都很简单,如下图所示,学生表有个住址ID字段,是住址表里的记录的唯一ID:先创建住址表:create table address(addressid int,province string,city string)row format delimitedfields terminated by ',';创建 address.txt文件,内容如下:1,guangdong,guangzhou2,guangdong,shenzhen3

2020-11-27 10:40:44 223

原创 Hive 内部表和外部表

针对于Hive 的 建库建表操作建库 内部表(也叫管理表和临时表) 外部表 表的操作 建库创建名为 test 的数据库(仅当不存在是才创建),添加备注信息 test database: create database if not exists testcomment 'this is a database for test'; 查看数据库列表(名称模糊匹配): show databases like 't*';OKtesttest001Tim...

2020-11-27 09:10:43 268

原创 Hive 复杂数据类型

复杂数据类型一共有四种:ARRAY:数组 MAP:键值对 STRUCT:命名字段集合 UNION:从几种数据类型中指明选择一种,UNION的值必须于这些数据类型之一完全匹配; ARRAY创建名为 t2的表,只有 person 和 friends 两个字段, person 是字符串类型, friends 是数组类型,通过文本文件导入数据时,person 和 friends之间的分隔符是竖线,friends 内部的多个元素之间的分隔符是逗号, 注意分隔符的语法: create t..

2020-11-27 09:09:16 2365

原创 Hive 基本数据类型

Hive支持基本和复杂数据类型:基本数据类型:数值型、布尔型、字符串类型和时间戳类型; 复杂数据类型:数组、映射、结构;基本数据类型:类型 实例 TIMESTAMP ‘2020-11-20 00:00:00’ DATE ‘2020-11-20’ 关于三种字符串STRING,变长,无需最大长度声明,理论上能存储 2GB字符; VARCHAR,变长,需要声明最大长度(1~65535之间),例如 VARCHAR(100); CHAR,定长,如CHAR(..

2020-11-27 09:08:01 948

原创 Scala实现网络通信

用Scala实现一台机器到另一台机器的分布式计算功能配置文件summer.propertiesserver.port = 9999server.host = localhost【读取配置文件工具类】object PropertiesUtil{ // 绑定配置文件 // ResourceBundle用于读取配置文件,所以读取时,不需要增加扩展名 val summer: ResourceBundle = ResourceBundle.getBundle("summer") def get

2020-11-01 23:37:17 373

原创 Scala教程(一)

简介:Scala是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行在Java虚拟机上,并兼容现有的Java程序。Scala源代码被编译成Java字节码,所以它可以运行于JVM上,并可以调用现有的Java类库。...

2020-10-29 10:53:39 256

转载 hive中with..as与 inser... select 连用

with...as...也叫做子查询部分,语句允许 hive 定义一个sql片段,供整个sql使用简介with…as… 需要定义一个sql片段,会将这个片段产生的结果集保存在内存中,h后续的sql均可以访问这个结果集,它的作用与视图或临时表类似。语法限制1.with…as…必须和其他sql一起使用(可以定义一个with但在后续语句中不使用他)2.with…as…是一次性的with…as…的完整格式是这样的--with table_name as(子查询语句) 其他sqlwith temp

2020-10-26 10:41:14 1500

原创 简单说明什么是回调函数

一、字面意思回调函数:假设 A 是 回调函数,B是调用者,B参数里一个是指向A函数的指针,即回调A,同时另外的参数传递给A作为参数。A可以是多个函数的统一指向,只要函数参数个数相同即可。B调用A,A也有参数,有参数就要赋值才行。所以B函数内部给A参数赋值。B调用A,A又利用了B给的参数。A就是回调函数。B就是调用者。二、代码理解def calc(a,c,fn): # fn是回调函数,在传参的时候不能加fn() c = fn(a,b) # calc把其他参数赋值给回调函数fn的参数 re

2020-10-14 12:10:32 125

原创 Nginx服务器搭建和基本配置详解

Nginx(engine X)是一个高性能的HTTP服务器和反向代理服务器,这款软件开发的目的是为了解决C10K问题。Nginx的架构利用了许多现代操作系统的特性,以实现一个高性能的HTTP服务器。例如在Linux系统上,Nginx使用了epoll,sendfile,File AIO,DIRECTIO等机制,使得Nginx不仅性能高效,而且资源占用率非常低,官方宣称nginx维持10000个非活动的HTTP keep-alive连接仅需要 2.5M内存。Nginx会按需同时运行多个进程:一个主进程(m

2020-09-25 18:16:17 490

原创 Maven使用教程

什么是Maven?maven是一个自动化构建工具。我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包,一个项目jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他jar包,缺任何一个Jar包都会导致项目编译失败。Maven是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar包,它会帮助我们下载所有的Jar,极大提升开发效率。Maven的目录结构安装Maven核心程序1)..

2020-09-21 16:23:51 127

原创 Git 详解

Git是分布式版本控制系统1.安装GitGit官网:https://git-scm.com/相关工具:命令行工具: Git for windows下载地址:https://git-for-windows.github.io/ijdea插件: idea自带GitHub网站:http://www.github.com具体安装步骤请自查2.设置Git账户命令含义git config --list查看所有配置git config --list --show-orig

2020-09-19 22:59:30 75

原创 Kafka

消息队列的两种模式)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)消息生产者生产消息发送到Queue中,然后消息消费者从Queue中取出并且消费消息。消息被消费以后,queque中不再有存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。)发布/订阅模式(一对多,消费者消费数据之后不会清除消息)消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到top

2020-09-12 17:27:19 111

原创 redis基础进阶教程

【redis是什么】redis是一个开源的,使用C语言编写的,支持网络交互的,可基于内存也可持久化的Key-Value数据库。它是基于内存的数据结构存储器,可以用作数据库,缓存和消息中间件。从它的缓存讲起假如让你设计一个缓存,你会怎么做?一般都是想到Map来实现,就像这样://get value from cacheString value = map.get("Somekey");if(null == value){//get value from DataBasevalue =

2020-09-09 17:26:29 169

原创 mysql 中topN的求法

mysql中提供 了limit和offsetlimit 和 offset 用法 mysql里分页一般用limit来实现 1.select * from article limit 1,3 2.select * from article limit 3 offset 1 #以上两种写法都表示取2,3,4三条数据--当limit后面跟两个参数的时候,该参数表示要取的数据的数量例如 select * from article LIMIT 1,3 就是跳过1条数据,从第2条开始取,

2020-08-30 00:03:48 299

原创 SQL DML和DDL

1.可以把SQL分为两个部分:数据操作语言(DML)和数据定义语言(DDL)。SQL(结构化查询语言)是用于执行查询的语言。但是SQL语言也包含用于更新,插入和删除记录的语法。查询和更新指令构成了SQL的DML部分: - SELECT - 从数据库表中获取数据 - UPDATE - 更新数据库表中的数据 - DELETE - 从数据表中删除数据 - INSERT INTO - 向数据库表中插入数据2.SQL的数据定义语言(DDL)部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表

2020-08-29 15:07:29 122

原创 SQL练习题

1. 运动会比赛信息的数据库,有如下三个表: 运动会ATHLETE(运动源编号Ano,性能Aname,性别Asex,所属系名Adep),项目ITEM(项目编号Ino,名称lname,比赛地点llocation),成绩Score(运动员编号Ano,项目编号lno,积分Score)。--ASelect Adep,SUM(Score) From ATHLETE,ScoreWhere ATHLETE.Ano = Score.Ano GROUP BY AdepHAVING SUM(Score) >=

2020-08-28 21:47:38 2072

原创 sql增删改查

Insert into 语句用于向表格中插入新的行Insert into table_name Values(值1,值2,....)-指定所要插入数据的列:Insert into table_name(列1,列2,...) Values (值1,值2,....)Select into语句从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份复件或者用于对于记录进行存档。-把所有的列插入新表select *into new_table_name [IN externaldatabas

2020-08-27 19:12:53 63

原创 字符串函数

常用SQL函数函数用法concat(S1,S2,…,Sn)连接S1,S2,…,Sn为一个字符串concat_ws(s,S1,S2,…,Sn)同concat(s1,s2,…)函数,但是每个字符串之间要加上schar_length(s)返回字符串s的字符数length(s)返回字符串s的字节数,和字符集有关insert(str,index,len,instr)将字符串str从第index位置开始,len个字符长的子串替换为字符串instrupper(

2020-08-27 18:34:40 51

原创 分页查询

分页MySQL中使用limit实现分页背景:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢?分页原理所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。--前10条记录:select * from table limit 0,10;--第11至20条记录:select * from table limit 10,10;--第21至30条记录:select * from table limit 20,10;公式:(当前页数-1)*每页条数,每页条数

2020-08-27 12:25:30 63

原创 列的别名几种实现方式

1.as实现select last_name AS name,commission_pct commfrom employess;2. "双引号"select last_name "Name",salary*12 "Annual Salary"from employees;3.实体名称(基本可以忽略,没人用它)select last_name &quot;Name&quot; salary*12 &quot;Annual Salary&quot;fro

2020-08-26 23:46:52 244

原创 组函数的使用

组函数组函数介绍什么是分组函数分组函数作用于一组数据,并对一组数据返回一个值组函数类型-AVG()-SUM()-MAX()-MIN()-COUNT()组函数语法AVG和SUM函数可以对数值型数据使用AVG和SUM函数Select AVG(salary),MAX(salary),MIN(salary),SUM(salary)FROM employeesWHERE job_id LIKE '%REP%';3.MIN和MAX函数可以对任意数据类型的数据使用MIN

2020-08-26 22:08:25 309

原创 case when用法

Casecase具有两种格式。简单case函数和case搜索函数第一种 格式:Case搜索函数:格式说明:*case when 列名=条件1 then 选项1 else 选项2 end*eg: ***result表*| Date | Win ||2017-07-12|胜||2017-07-12|负||2017-07-15|胜||2017-07-15|负|求如下结果|比赛日期|胜|负 ||2017-07-12|1|1||2017-07-15|1|1|要执行的sql

2020-08-26 19:35:12 173

空空如也

空空如也

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

TA关注的人

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