自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HBase的概述

HBase的特点:海量存储(PB级别),列式存储(列族存储,列祖下面很多列),极易扩展,高并发,稀疏(在列族中,指定多列,列为空不会占用空间)。元数据:HDFS:元数据指的是类似文件名、文件权限、文件所有者这样信息的记录。这些元数据存放到了image、edits编辑日志。HIVE:元数据是指目录与表的对应,hdfs目录里面结构化文件中的列与表的字段对应关系,这些元数据存放到了mysql。HBASE:hbase的表是由若干个region组成的,某一条数据肯定位于某个表的,那个表?需要记录一

2021-11-03 10:06:20 209

原创 HDFS存储机制

HDFS存储机制,包括HDFS的写入过程和读取过程两个部分写入数据:1)客户端向namenode请求上传文件,namenode检查目标文件是否已存在,父目录是否存在。2)namenode返回是否可以上传。3)客户端请求第一个 block上传到哪几个datanode服务器上。4)namenode返回3个datanode节点,分别为dn1、dn2、dn3。5)客户端请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成6)dn1、dn2、dn3逐级应答客户

2021-10-26 14:18:54 350

原创 Scala编程数据结构

Kind:Class:相当于java中的class,但是没有static修饰,里面的属性方法不是静态的Object:里面的属性和方法都是静态的,可以直接调用Trait:特质,相当于java中的接口,App就是特质val和varval:修饰的变量不可变,有getter方法,没有setter方法var:修饰的变量可变,有getter方法,也有setter方法package study3class Dog { val id =10 //可以用下划线作为一个临时替代,但是使用下划线作为临时

2021-09-29 17:55:53 315

原创 Flink状态编程和容错机制

算子状态:算子状态(None key状态)的作用范围限定为算子任务。这意味着由同一并行任务所处理的所有数据都可以访问到相同的状态,状态对于同一任务而言是共享的。算子状态不能由相同或不同算子的另一个任务访问。键控状态:键控状态是根据输入数据流中定义的键(key)来维护和访问的。Flink 为每个键值维护一个状态实例,并将具有相同键的所有数据,都分区到同一个算子任务中,这个任务会维护和处理这个 key 对应的状态。当任务处理一条数据时,它会自动将状态的访问范围限定为当前数据的 key。因此,具有相同

2021-09-27 11:08:24 114

原创 Flink中的ProcessFunction API(侧输出流SideOutput)

大部分的 DataStream API 的算子的输出是单一输出,也就是某种数据类型的流。除了 split 算子,可以将一条流分成多条流,这些流的数据类型也都相同。process function 的 side outputs 功能可以产生多条流,并且这些流的数据类型可以不一样。一个 side output 可以定义为 OutputTag[X]对象,X 是输出流的数据类型。process function 可以通过 Context 对象发射一个事件到一个或者多个 side outputs。案例:packa

2021-09-24 15:00:49 297

原创 Flink中的ProcessFunction API(温度报警案例)

ProcessFunction API:DataStream API 提供了一系列的 Low-Level 转换算子。可以访问时间戳、watermark 以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。Process Function 用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的window 函数和转换算子无法实现)。例如,Flink SQL 就是使用 Process Function 实现的。KeyedProcessFunction:KeyedProcessFunction

2021-09-24 14:36:59 291

原创 Flink时间语义与 Wartermark

EventTime:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink 通过时间戳分配器访问事件时间戳。例如:点击网站上的某个链接的时间env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)IngestionTime:某个Flink节点的source operator接收到数据的时间,例如:某个source消费到kafka中的数据env.setStreamTimeCha

2021-09-23 17:57:35 115

原创 Flink中的Window

Window

2021-09-22 10:40:52 82

原创 SparkSql行转列,groupBy算子用法

package bigdataimport java.utilimport bean.Row2ColFieldBeanimport com.alibaba.fastjson.JSONimport org.apache.spark.sql.{Column, DataFrame, SparkSession}import utils.SparkUtilsimport scala.collection.JavaConversions._object Row2Column { def ch

2021-09-15 17:12:35 287

原创 spark处理脱敏字段相关问题合集

问题描述spark1.5中,使用spark-sql无法使用replace函数问题原因目前版本兼容性问题解决措施spark不支持replace函数。使用regexp_replace替代。 //改*方式脱敏拼接sql spark.sql("SELECT id,name,age, regexp_replace(email,SUBSTR(email,2,3), \"*\") AS pv FROM db").show()...

2021-09-14 15:14:46 770

原创 Flink

spark和flink设计理念Spark:是以批次处理为理念设计出来的,后期加上的流处理。(伪实时处理)Flink:以流处理为理念设计出来的。DataSet API:是Flink用于批处理应用程序的核心DataStream API:流处理Gelly:是一个可扩展图形处理和分析库。...

2021-09-07 18:02:51 97

原创 SparkStreaming中transform和foreachRDD

transform //创建SparkStreaming val conf: SparkConf = new SparkConf().setAppName("demo").setMaster("local[*]") val sc = new SparkContext(conf) sc.setLogLevel("WARN") val ssc = new StreamingContext(sc,Seconds(5)) val data: ReceiverInputDSt

2021-09-01 10:16:39 382

原创 SparkSql拼接SQL优化

减少对象的创建 val dfHive: DataFrame = spark.sql("select "+str+ " from t_emp "+joinName+" t_dept on "+joinCondition)//优化后 val builder = new StringBuilder("select ") val sql = builder.append(str).append(" from t_emp ").append(joinName).append(" t_dept o

2021-09-01 10:13:26 320

原创 SparkStreaming使用ReduceByKeyAndWindow,CountByWindow

ReduceByKeyAndWindowval conf: SparkConf = new SparkConf().setAppName("demo").setMaster("local[*]") val sc = new SparkContext(conf) sc.setLogLevel("WARN") val ssc = new StreamingContext(sc,Seconds(5))val file: ReceiverInputDStream[String] = ssc.sock

2021-08-27 17:29:00 248

原创 Kafka命令

开启kafka服务(确保开启zookeeper bin/zkServer.sh start):bin/kafka-server-start.sh -daemon config/server.properties查看所有主题:bin/kafka-topics.sh --zookeeper hadoop101:2181 --list创建主题(3分区,2副本):bin/kafka-topics.sh --zookeeper hadoop101:2181 --create --topic topicna

2021-08-27 14:23:17 96

原创 flume启动命令

$ bin/flume-ng agent -n a1 -c conf -f job/btrc_flume_kafka.conf -Dflume.root.log ger=INFO,console

2021-08-26 15:41:43 2333

原创 Kafka出现的问题、知识点

Kafka结构图kafka自动提交偏移量容易出现的问题我去kafka消费数据:我消费到了,也提交了偏移量,准备保存到数据库的时候失败了,造成了数据的丢失我消费数据,保存到了数据库,但是还没等提交偏移量,宕机了,再重启,从上次未消费的地方重新消费,造成了数据的重复消费所以说,变自动提交偏移量为手动提交,消费完也保存好再提交偏移量kafka为什么快?kafka消费者配置文件Properties props = new Properties();//连接kafka集群props.put(

2021-08-26 10:35:14 210

原创 SpringBoot框架 xml配置文件,和Application.yml配置文件实例

创建springboot项目所需依赖(最右侧)如下图:Mapper.xml配置文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namesparce对应dao层的路径,id对应dao层方法名,resultType对应实

2021-08-20 15:03:49 655

原创 org.apache.ibatis.binding.BindingException: Parameter ‘beginTime‘ not found.

在写Java接口时候,可能会出现下面问题。org.apache.ibatis.binding.BindingException: Parameter ‘beginTime’ not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]根据业务需要对数据库进行更新,但是报错了(从日志上也能看出是传进的参数拿不到)先看看Dao层的配置先sql语句,根据条件查询xml配置里面的SQL语句,在后面多了一个

2021-08-20 14:47:48 872

原创 枚举类型实现

枚举类型的第一种实现方式1、使用enum关键字,创建一个枚举类型2、将需要创建的对象名字,写在枚举类型中即可。这些对象名字就叫做枚举项,枚举项可以有多个,每一个枚举项就表示一个枚举类型对象,多个枚举项之间使用逗号分隔,最后一个枚举项使用“;”结尾。3、枚举项必须写在枚举类型的第一行。枚举类型的第二种实现方式在枚举类型中添加一个成员变量,作用就是用于给枚举项进行赋值MON—>星期一1、使用老汉式,进行对象类型的赋值,让MON—>星期一2、使用枚举实现枚举类型的第三种实现方式.

2021-07-24 12:50:06 1194

原创 SparkSQL

RDD和DataFrame、DateSet关系DataFrame=RDD-泛型+schema+sql+优化DataSet=RDD+schema+sql+优化DataFrame=DataSet[Row]DataSet=DataFrame.as[Row]DataFrame劣势Dataframe的劣势在于在编译期缺少类型安全检查,导致运行时出错。RDD、DataFrame、DataSet三者之间的转换总结RDD-》DF、DS:调用toDF、toDS方法DF、DS-》RDD:调用rdd方法DF-

2021-07-08 17:58:12 101

原创 SparkCore

1、spark是什么?Spark是一个基于内存的并行计算框架(类似于hadoop中mr,但是并不能取代hadoop,因为存储和资源调度依然要依赖hadoop)Hadoop组件:Hdfs:并行存储框架Mapreduce:基于磁盘的并行计算框架Yarn:资源调度器2、spark组件SparkCore、SparkSql、SparkStreaming、SparkMllib、SparkGraphX3、spark比haodoop快基于内存:spark比hadoop快100倍以上基于磁盘:spark比

2021-06-28 10:44:35 156

原创 Scala基础

scala 中没有 static 关键字对于一个class来说,所有的方法和成员变量在实例被 new出来之前都是无法访问的因此class文件中的main方法也就没什么用了,scala object 中所有成员变量和方法默认都是static 的所以 可以直接访问main方法。Scala声明变量有两种方式,一个用val,一个用var。val / var 变量名 : 变量类型 = 变量值。val定义的值是不可变的,它不是一个常量,是不可变量,或称之为只读变量。创建项目中kind选项Class:相.

2021-06-25 14:56:55 126

原创 Hadoop相关知识

Common:辅助工具HDFS:数据存储MapReduce:计算Yarn:资源调度,解耦HDFS概述分布式文件系统,负责存储文件。NameNode:存储文件的元数据,比如文件的名称,创建日期,目录结构、文件所有者、权限等,类似我们数据库中数据表结构的概念。不是直接把元数据加载到内存里,把生成元数据的小步骤edits(编辑日志)写到磁盘里,DataNode:这里是真正实现文件存储的Secondary NameNode(2NN):第二内存节点,不是namenode的热备,用于监控HDFS状.

2021-05-31 16:56:36 64

原创 Hadoop之MapReduce

Hadoop之MapReduceMapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架。MapReduce优缺点优点MapReduce易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。就是因为这个特点使得MapReduce编程变得非常流行。良好的扩展性当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力。高容错性MapReduce设计的初衷就是使程序能够部署在

2021-05-29 17:01:22 227

原创 Hive相关知识点

Hive相关命令External 关键字,创建外部表。删除表时,内部表的元数据和数据一起被删除,外部表只删除元数据不删除数据。Table Type:External_table为外部表,Managed_table为管理表(内部表)。Desc table_name 查看表信息。Desc formatted table_name 查看表详细属性。...

2021-05-29 15:39:21 186

空空如也

空空如也

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

TA关注的人

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