大数据
文章平均质量分 53
小nove
这个作者很懒,什么都没留下…
展开
-
flink给元素指定窗口
说明要输出规范的时间窗口数据,00:00—02:00、02:00-04:00package flink;import bi.MainFunc;import bi.bean.SolomeBean;import com.alibaba.fastjson.JSON;import org.apache.flink.api.common.ExecutionConfig;import org.apache.flink.api.common.eventtime.WatermarkStrategy;imp原创 2021-07-27 11:38:28 · 179 阅读 · 0 评论 -
大数据质量
大数据质量文章概述1.大数据质量的目的2.大数据质量涉及问题3.大数据质量管理实现的技术1.大数据质量的目的在了解数据质量目的之前,我们先看一下数据质量的概念数据质量是指在业务环境下,数据符合消费者的使用目的,能满足业务场景的具体需求的程度具体应用中,也就是数据消费者对数据质量的需求不一定相同,一些人关注准确性和一致性,一些人关注实时性和相关性,我们监控数据质量的目的就是满足数据消费者的各种需求,下面列出来一些通用性的规则,使我们对数据质量的概念不再这么抽象表1-1,数据质量的规则实例质原创 2021-04-10 18:55:15 · 839 阅读 · 0 评论 -
元数据
元数据文章概述1.搞清楚什么是元数据2.元数据的构建3.元数据的作用4.元数据的实战1.搞清楚什么是元数据百度元数据,结果估计是,不包含数据的数据。比较抽象我们在使用hive的时候,经常把元数据配置在mydql中,打开来看它存储的是表的信息,数据的存储信息。此时可以理解为元数据服务于我们要使用的数据然后我们来看一张图,此时,对元数据应该有更全面的认识先引入几个新的概念1.实体:概念明确的客观实体或者抽象实体2.属性:构成实体的参数3.域:某一数据类型,限定了数据值的类型元数据服原创 2021-04-10 18:54:31 · 628 阅读 · 0 评论 -
flink的key-state
同key的进行状态计算,比较两者的区别package com.uu.stateimport java.util.Dateimport com.uu.two.Hummanimport com.uu.two.utils.DateTransimport org.apache.flink.api.common.functions.RichFlatMapFunctionimport org.apache.flink.api.common.state.{ValueState, ValueStateDes原创 2020-10-28 11:17:15 · 231 阅读 · 0 评论 -
flink侧流输出
测流输出的方法建立多个分支定义流的标签传入处理器函数中判断参数,进行分流package com.uu.twoimport java.sqlimport java.sql.DriverManagerimport com.uu.two.utils.DateTransimport org.apache.flink.api.common.functions.{MapFunction, RichMapFunction}import org.apache.flink.api.common.st.原创 2020-10-27 19:35:11 · 1037 阅读 · 0 评论 -
flink的三种函数定义
普通函数类指定了输入类型与返回类型,功能同map算子相似富函数类涉及到了资源相关,例如连接数据库与关闭数据库等操作写在代码中代码中在建立连接的时候输出了一句话,执行程序可以看到,打印该话只执行了一次底层处理函数api添加了时间语义,触发器概念,灵活使用触发器,实现时间间隔内的各种操作package com.uu.twoimport java.sqlimport java.sql.DriverManagerimport com.uu.two.utils.DateTransimpo.原创 2020-10-27 17:09:23 · 537 阅读 · 0 评论 -
hive的调优
1.数据压缩gzip:压缩比与速度都中等,不可切片bzip:压缩比最大,可切片lozy:中等,可切片snappy:压缩速度快,可切片常用大数据一般选用snappy形式的压缩。2.数据存储格式1.默认行存储。gzip存储不可切片。2.列存储,可切片,可以不从文件的开始读取数据,加快了查询的速速3.RCfile:结合行列的优点。进行了压缩存储又加快了查询的速度4.ORfile:R...原创 2019-11-23 15:57:29 · 84 阅读 · 0 评论 -
读取kafka数据的偏移量的维护
使用spark来获取kafka的数据要建立一个连接对象来获取数据——对象的建立需要传入偏移量参数偏移量的初始值:多个分区需要有多行数据。partition从0开始排,逐个增加。 //kafka的连接参数 val kafkaParams = Map[String, Object]( "bootstrap.servers" -> "hadoop101:9092,ha...原创 2019-11-19 21:03:58 · 631 阅读 · 0 评论 -
SparkStream消费Kafka的数据
依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId> <version>2.2.0</version&g...原创 2019-11-18 23:14:37 · 384 阅读 · 0 评论 -
scala like jdbc的使用
除查询外其他的语法类似,支持事务的控制package scalikejdbcimport scalikejdbc.config.DBs//测试scalikejdbc的使用object scalaJdbcDemo { def main(args: Array[String]): Unit = { //插入数据 //加载配置文件中的jdbc,要求表是存在的 D...原创 2019-11-16 17:28:18 · 247 阅读 · 0 评论 -
DataFrame写入mySql
1.java的jdbc可以自动创建数据库中的表,属性可以从配置文件获得(见其他博客)val props = new Properties() props.setProperty("driver","com.mysql.jdbc.Driver") props.setProperty("user","root") props.setProperty("password","...原创 2019-11-16 17:23:40 · 891 阅读 · 0 评论 -
DataFrame转化为json格式的两种方式
1.隐式转化时指定匹配的字段//由rdd格式化类型为String类型//在toDf的过程中匹配字段//coalesce指定了输出文件个数//mode(SaveMode.Overwrite)指定文件的存储类型为覆盖rddResult.map(tp=>(tp._1,tp._2(0),tp._2(1),tp._2(2),tp._2(3),tp._2(4),tp._2(5),tp._2(6...原创 2019-11-16 16:56:10 · 4233 阅读 · 0 评论 -
scala用配置文件的方式向代码中传送变量
1.在resources文件夹下面创建application.conf文件,文件的名字要完全一样2.写一个helper类来获取字段导入依赖 <dependency> <groupId>com.typesafe</groupId> <artifactId>config</artifac...原创 2019-11-15 20:48:02 · 192 阅读 · 0 评论 -
Spark两种转化为df的方法
1.使用Row类与StructType类转化代码:val frame: DataFrame = session.createDataFrame(rowRDD,logSchema.schema)1>rowRDD将array放进Row中形成Rddval rowRDD: RDD[Row] =rddAll.map(arr => Row( arr(0), ar...原创 2019-11-15 20:19:49 · 2056 阅读 · 0 评论 -
Spark对于数据输入输入文件的相关优化操作
1.指定了输入参数,在代码的开头判断传入数组的长度def main(args: Array[String]): Unit = { if (args.length < 2) { println("参数错误") return } }2.对于输出文件的已经存在问题1>.删除指定输出路径的文件//判断输出文件是否存在 val file = n...原创 2019-11-15 20:07:58 · 133 阅读 · 0 评论 -
用kafka代替flume的source与channel
flume与kafkaFlume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API。Kafka:Kafka是一个可持久化的分布式的消息队列。Flume:可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。Kafka:需要外部的流处理系统才能做到。选择方式flume更适合流式数据的处理与向hdfs存储文件。kafka更适合被多种类型的消费者消费...原创 2019-11-12 22:44:20 · 593 阅读 · 0 评论 -
模拟统计spark统计某tcp客户的scoket文件
选择在idea中创建与运行指定了虚拟机与端口package com.uuimport org.apache.spark.SparkConfimport org.apache.spark.streaming.{Seconds, StreamingContext}object SparkStreaming1 { def main(args: Array[String]): Unit ...原创 2019-11-08 14:35:37 · 57 阅读 · 0 评论 -
spark定时定要求统计某个文件夹下的文本数据
spark客户端下url只写到目标文件夹。对于数据的统计。只对新创建的文件的内容进行操作。本代码为统计文件的单词数量import org.apache.spark.streaming._val ssc = new StreamingContext(sc, Seconds(20))val lines = ssc.textFileStream("file:////opt/rh/data/st...原创 2019-11-07 19:54:15 · 174 阅读 · 0 评论 -
spark文件读取与Sql
spark读取普通文本文件与json格式文件 val conf = new SparkConf().setAppName("sort").setMaster("local[*]") val sc = new SparkContext(conf) val sprak = SparkSession.builder().config(conf).getOrCreate() i...原创 2019-11-07 19:43:02 · 573 阅读 · 0 评论 -
spark的多级排序
要求:对于一个给定的文件,请对数据进行排序,首先根据第1列数据降序排序,如果第1列数据相等,则根据第2列数据降序排序。以此类比文件5 3 41 6 84 9 788 3 335 7 345 7 325 6 83 2 34做法自定义一个类继承Ordered与Serializable。作为要排序对象的key值需要的列数不同。对应的参数列表不同class MaySort...原创 2019-11-06 20:12:43 · 487 阅读 · 0 评论 -
spark读取json数据
利用json 的包来将json格式的文件转化为map类型scala> import scala.util.parsing.json.JSONscala> rdd.map(s => JSON.parseFull(s)).collect.foreach(println)Some(Map(name -> Michael))Some(Map(name -> And...原创 2019-11-06 16:39:10 · 519 阅读 · 0 评论 -
自定义分区
分区原则RDD分区的一个原则是使得分区的个数尽量等于集群中的CPU核心对于不同的Spark部署模式而言(本地模式、Standalone模式、YARN模式、Mesos模式),都可以通过设置spark.default.parallelism这个参数的值,来配置默认的分区数目,一般而言:本地模式默认为本地机器的CPU数目,若设置了local[N],则默认为N依赖 <dependencie...原创 2019-11-06 15:47:18 · 323 阅读 · 0 评论 -
Spark的架构与执行流程
架构组成RDD:弹性,分布式,只读的一个数据集。(抽象概念)Exector:worker节点的一个进程:spark的任务是线程级别的。Exector负责对具体任务的分配Exector的多线程执行任务与公用内存和磁盘的管理方式决定了优异性能Application:用户自己编写的程序。包含了多个job与一个driver。job:具体的操作,包含多个RDD及相应的操作stage:job分配...原创 2019-11-05 23:20:41 · 122 阅读 · 0 评论 -
scala的数据结构
数组:array可变可索引,元素具有相容类型的数据集合数组直接打印为地址值。需加 (toBuffer) 进行输出1.定长数组:Arrayval arr1 = new Array[Int](8)//默认的值都为0//定义一个长度为3的定长数组 val arr3 = Array("hadoop", "storm", "spark")2.变长数组:ArrayBuffer需要...原创 2019-11-05 22:01:57 · 156 阅读 · 0 评论 -
scala练习
1.统计 一句话中的单词个数与一串字母中字母出现的个数package com.uu.bigdata.scala.howeworkobject Work { def main(args: Array[String]): Unit = { var st = "what is my name what is my name what is my name what" var...原创 2019-10-31 20:02:41 · 127 阅读 · 0 评论 -
kafka客户端命令行的操作
客户端操作都在kafka目录下(开启出现问题都记录在/opt/module/kafka/nohup.out文件下,可查看解决。)启动并挂入后台nohup bin/kafka-server-start.sh config/server.properties &查看当前kafka中的主题bin/kafka-topics.sh --zookeeper hadoop101:2181 -...原创 2019-10-28 08:42:22 · 1149 阅读 · 0 评论 -
zookeeper的客户端与api操作
客户端操作ls /查看根下的节点ls /zhiye查看节点下的节点create /temp “one”新建一个节点create /temp/ttemp “two”在节点下新建一个节点get /temp获取节点的信息。名称与时间等create -e /tem “one”创建临时的节点。重启zkClient会消失create -s /app2/aa 888创建带编号的节点...原创 2019-10-27 00:04:58 · 86 阅读 · 0 评论 -
相同字母的统计,使用map来实现
模拟了一个重复发射相同语句的execute过程。具体解释见https://blog.csdn.net/qq_44698610/article/details/102755830依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...原创 2019-10-26 14:38:53 · 134 阅读 · 0 评论 -
strom的API的使用
整体的思路由spout来发送任务给bolt,spout可以设置为多个,bolt也可以设置为多个。再由driver来统一管理。操作步骤项目结构(可以有多个bolt来分级处理)依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...原创 2019-10-26 14:34:00 · 117 阅读 · 0 评论 -
hive中数据写入mysql的乱码解决
复制/usr/share/mysql/my-default.cnf 到/etc目录,并将复制后的文件重命名为my.cnf修改my.cnf文件 添加utf8编码[client] //如果没有[client]段,就自己添加上去default-character-set=utf8[mysqld]character-set-server=utf8collation-server=utf8_...原创 2019-10-19 18:30:42 · 270 阅读 · 0 评论