华为大数据开发者教程知识点提纲

一、线下处理
1.离线处理方案
数据支持:HDFS
调度:YARN
收入:Flume,sqoop,loader
处理:Mapreduce,SparkSql,spark,hive(,Flink)
2.Hadoop
Namenode(metadata),client(备份block),datanode(blocks结构)
core-site.xml
3.Hive
数仓软件,分布式数据管理查询
特性:
ETL/支持mapreduce,spark/直接访问HDFS和HBase/易用
内部表和外部表
UDF/UFAF/UDTF
UDF开发步骤:继承UDF,实现evaluate(),上传打包HDFS,Hive创建临时函数,调用
调优:数据倾斜:group by, distinct count,join
调优:map中聚合,负载均衡,并行,大小表mem加载
数据集市和仓库的区别
HIVE数仓分层(ODS,DWD,DWS,ADS)
分层优点:简化问题,减少从父开发,隔离原始数据
4.sparkSQL
基于内存的分布式批处理系统,它把任务拆分,然后分配到多个的CPU上进
行处理,处理数据时产生的中间产物(计算结果)存放在内存中
应用场景:数据处理,迭代计算,数据挖掘,流处理,查询分析
血统机制(checkpoint)
RDD(分布式弹性数据集)(来源:RDD,数据集合转化,HDFS或其他Hadoop存储系统)
Shuffle(洗牌)
窄依赖跟宽依赖
Transformation懒操作(算子),包括map(func),flatMap(func)
Action是RDD的算子
参数优先级 :代码配置>动态参数>配置文件
SparkSession封装SparkContext(包含sparkconf)
SQL语句(SparkSQL解析为RDD执行计划)SparkCore执行
Sparksession集群运行,JDBCServer单点运行
Dataset由特定域的对象组成的强类型集合
Catalyst逻辑执行计划表示,并且数据以编码的二进制形式存储
SparkSQL:
不适合实时查询
5、sqoop
用于在Hadoop(Hive)与传统的数据库(MySQL )间进行数据的传递
Sqoop Import原理(入HDFS):
根据不同的split-by参数值来进行切分,然后将切分出来的区域分配到不同map中
每个map中再处理数据库中获取的一行一行的值,写入到HDFS中
Sqoop export 原理:
导出表的schema、meta信息,和Hadoop中的字段match
将Hadoop 上文件划分成若干个分片,每个分片由一个Map Task进行数据导入。
6.Loader
可视化向导式的作业配置管理界面
调度任务,周期性执行
多种不同的数据源、配置数据的清洗和转换步骤、配置集群存储系统等
特点:可视化,可靠性(失败重试,不残留数据),高性能,安全

二、即使检索
1.需求:检索性能,数据量大,高并发,结构化和非结构化,高效,图检索
2.方案:
加载:Loader\Spark\Spark Streaming
处理:HBase
检索:GES,ElasticSearch
3.HBase
分布式的NoSQL数据库,其特点高可靠、高性能、面向列、可伸缩
+HDFS+Zookeeper
能够同时处理结构化和非结构化的数据
高效的随机读取
架构:HMaster,HRegionServer(HLog,Hserver(store(memstore,storefile(Hfile)))),Client
缓存:
MemStore和BlockCache
MemStore(写):HBase数据先写入HLog 之中,并同时写入MemStore,待满足一定条件后将MemStore中数据刷到磁盘
BlockCache(读):HBase会将一次文件查找的Block块缓存到Cache中,以便后续同一请求或者相邻数据查找请求,可以直接从内存中获取
BloomFilter:快速的判断一条数据在一个大的数据集合中是否存在
HBase的BloomFilter的相关数据,被保存在HFile中
Phoenix
过滤器 Filter,get/put
优化:Region预设(之后一般不能改,否则数据迁移),RowKey(短),Column family(少),maxversion(可自定义,默认无上限),TTL(默认没有),Table(合理使用WAL,设置write buffer),批量读写,scan(限制行,conf设置缓存,setCaching配置)
不适合存视频
4.Elastic Search
分布式的Restful风格的搜索和数据分析引擎,也可以作为NoSQL数据库使用。支持结构化和非结构化数据。清洗、分词、建立倒排索引等一系列操作,然后提供全文检索的能力
边写边读
检索条件多样化
ELKB(Elasticsearch(持久化与分析)logstach,beats(数据接入),kibana(用户接入))
架构:zookeeper,cluster(esmaster,esnode*n),client
核心概念: index,type,document,mapping
*三种缓存:
Query cache:
一种存储先前查询结果的机制,以便在后续请求中重用这些结果。
Feild cache:
针对文档型数据库或搜索引擎中字段值的缓存机制。
Request cache:
网络请求或服务请求中,用于缓存已处理请求的结果
倒排索引
客户端curl命令
ElasticSearch SQL
Java API(TransportClient)(RestClient)
优化:
索引一旦创建好后,就无法调整分片的数量
分片数不超过节点数的3倍,用较少的分片获得更佳的性能
副本数建议设置为1
分片最大容量不要超过ElasticSearch推荐的最大JVM堆空间32G
ElasticSearch 中**文档(document)**是可以被索引的基本单位。
5.GES
基于HBase和ElasticSearch的分布式图数据库,将数据构建成属性图模型进行存储,提供强大的图查询、分析、遍历能力
Rest接口
Gremlin图遍历功能
架构:
存储层:分布式,KV存储,模糊搜索
计算层:后端存储和索引适配,数据管理,元数据管理
接口层:RESTful,Gremlin图交互式查询语言接口
vertex:对象 vertex label:类
edge:联系(只有单向,双向连两条,没有无向) edge label:关系类型
property:属性(kv) property key:属性类型
6.Gremlin
图遍历语言,对复杂的属性图(property graph)的遍历或查询
客户端和 Java API 调用
Gremlin底层数据存储位置:Elastic Search,HDFS,Hbase

三、数据实时处理
价值会随着时间的推移而迅速减少
1.Flume
Flume是一个分布式、高可靠和高可用的海量日志采集、聚合与传输的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方 (可定制) 的能力。
功能:
固定目录采集数据到目的地(HDFS,HBase,Kafka)
实时采集日志(tailer)
级联(多个Flume对接)
Event(Header(event属性)(kv),Body(数据)(Byte array))
Source(接受 or 产生event,批量放进channels)
驱动形source:外部主动传给flume
轮询source:Flume周期性获取
至少关联一个channel
channel 作用类似队列,用于临时缓存进来的events,当Sink成功地将events发送到下一跳的Channel或最终目的,events从Channel移除
不同channel水平不一样:
Memory Channel:不会持久化 ,内存中,宕机丢失
File Channel:基于WAL (预写式日志Write-Ahead Log) 实现。需要配置checkpoint目录
JDBC Channel:基于嵌入式Database实现,内置数据库
提供较弱的顺序保证,可以连接任何数量的Source和Sink
sink将events传输到下一跳或最终目的,成功完成后将events从Channel移除
必须作用于一个确切的Channel
Source Interceptors
Channel Selectors
Replicating Channel Selector (default):将source过来的events发往所有channel;
Multiplexing Channel Selector:Multiplexing selector会根据event中某个header对应的value来将event发往不同的channel
Sink Processor
Default是默认类型,不需要配置Sink groups;
Failover是故障转移机制;
Load balance是负载均衡机制。后两个需要定义Sink groups
可以通过定义多个Sink组成一个Sink Group
2.kafka
Kafka是一个高吞吐、分布式、基于发布订阅的消息系统。一个分布式的、可划分的、多订阅者、冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。(不支持随机读取,而是顺序读取)
组成:producer,consumer,broker(topic partitionn),zookeeper
Broker会将消息暂时buffer起来,当消息的个数达到一定阀值时,再flush到磁盘
一旦Broker宕机,该Broker的消息将都不可用
不保存订阅者的状态
消息保存一定时间(通常为7天)后会被删除
志的清理方式有两种:delete(全删了)(默认)和compact(多条相同key边一条)。
一个Group内的Consumer只能消费不同的partition
不同的Consumer Group之间独立订阅
3.Flink
批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎,对无界和有界数据流进行状态计算
Flink 架构的设计允许任务在整个集群中并行执行,并在多个节点上存储作业状态和数据,从而降低了单点故障的风险。
优点:容错/延迟下也可得到好结果/大规模高吞吐低延迟
场景:可靠/低延迟/高并发
关键概念:
事件驱动
事件语义:通过事件时间来确定事件创建的时间,并能够结合处理时间进行事件解析
有状态流处理:通过保持现有的计算状态以及依赖关系来进行长期的流式数据计算任务
快照:通过Checkpoint
无界流:无界流的数据必须持续处理,即数据被读取后需要立刻处理。
有界流:有界流可以在读取所有数据后再进行计算。有界流所有数据可以被排序,所以并不需要有序摄取。有界流处理通常被称为批处理。
处理模式类型:
事件事件:小时的时间窗处理将会包含事件时间在该小时内的所有事件,而忽略事件到达的时间和到达的顺序
处理时间:当前机器处理该条事件的时间
Flink窗口:
基于时间:滚动时间窗口、滑动时间窗口、会话窗口
基于数据:滚动计数窗口、滑动计数窗口
滚动窗口(tumbling window)
滑动窗口(sliding window)
会话窗口(session window)
全局窗口(global window)
窗口函数
增量聚合函数(incremental aggregation functions)来一个处理一个
全窗口函数(full window functions)计算时遍历,平时收集
容错机制checkpoint:
保证数据仅被处理一次 (Exactly Once)。另外,也可以选择至少处理一次(At Least Once)
Flink应用程序:
environment->data source->transformations->data sink
Flink 的 DataStream:
代表了一个连续的数据流,并允许开发者对这个流进行转换、操作和计算。
Spark Streaming 中的 DataStream 是通过微批处理(micro-batching)实现的,即将一段时间内的数据收集起来,形成一个小的数据批次,然后对这个批次数据进行处理。它不是针对真正的无限流式数据处理,而是将流数据拆分成一小块一小块进行批处理。
处理:Source
来源:集合中读取/队列读取/文件读取/自定义数据读取
算子:
keyedStrean:逻辑地将一个流拆分成不相交的分区,每个分区包含具有相同key的元素,在内部以hash的形式实现的
滚动聚合算子(Rolling Aggregation):sum/min/max/minBy/maxBy
输出:sink
Flink 程序通常由以下几个主要部分组成:source,transformation,sink,environment setup,job control and Scheduling
4.Structured Streaming
Structured Streaming是构建在Spark SQL引擎上的流式数据处理引擎,使用Scala编写,具有容错功能
微批处理模型(默认)和持续处理模型(牺牲一致性,低延迟下丢失数据)
流式的数据看成一张不断增加的数据库表
可以把静态数据库表的一些查询操作应用在流式计算中
每一条查询的操作都会产生一个结果集Result Table。每一个触发间隔(比如说1秒),当新的数据新增到表中,都会最终更新Result Table。无论何时结果集发生了更新,都能将变化的结果写入一个外部的存储系统(OutPut)
三种Output:
Complete Mode:整个更新的结果集都会写入外部存储
Append Mode:当时间间隔触发时,只有在Result Table中
新增加的数据行会被写入到外部存储。
Update Mode:当时间间隔触发时,只有在Result Table中
被更新*的数据才会被写入到外部存储系统
处理时间(机器的系统)和事件事件(进入Structured Streaming的时间)

5.Redis一个高性能key-value内存数据库,支持在服务器端计算集合的并、交和补集等,还支持多种排序功能架构:无中心自组织的结构,gossip各节点维护Key->Server的映射关系不转发,重定向,直到正确基础数据类型:String,	Hash,list,Set,Sorted Set生存时间,到时间自动删除pipeline快速插入数据(无命令行,只有java api)持久化:RDB(Redis Database)(save time frequency)当符合一定条件时Redis会自动将内存中的所有数据执行快照操作并存储到硬盘上,默认存储在dump.rdb文件中AOF(Append only file)通过日志文件的方式(默认关闭)(和RDB双开时自动AOF)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axure的动态图使用以及说明

认识Axure动态图 Axure动态图是Axure中的一种功能,它允许用户在原型中添加动画效果和交互动作,使原型更加生动和具有真实的用户体验。用户可以通过添加动态图来展示页面过渡、按钮点击、下拉菜单等交互操作的效果。 这是:就是我们今天要叫的…

生产环境_Spark处理轨迹中跨越本初子午线的经度列

使用spark处理数据集,解决gis轨迹点在地图上跨本初子午线的问题,这个问题很复杂,先补充一版我写的 import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.{Row, SparkSession} import org.apache.spark.sql.func…

【️什么是分布式系统的一致性 ?】

😊引言 🎖️本篇博文约8000字,阅读大约30分钟,亲爱的读者,如果本博文对您有帮助,欢迎点赞关注!😊😊😊 🖥️什么是分布式系统的一致性 &#xff1f…

go进行http,get或postJson请求

1,http封装get,postJson类 package httpUtilimport ("bytes"logxx "go-gift-panel/src/log""io""io/ioutil""net/http" )func PostJson(url string, jsonData []byte) string {logxx.Log.Info("…

Linux---查看文件内容命令

1. 查看文件内容命令的使用 命令说明cat查看小型文件more分屏查看大型文件 cat命令的效果图 说明: cat命令结合重定向可以完成多个文件的合并gedit 文件编辑命令,可以查看和编辑文件 more命令的效果图 当查看内容信息过长无法在一屏上显示时,可以使…

mysql 数据库 关于库的基本操作

库的操作 如果想到 mysql 客户端当中数据 系统当中的命令的话,直接输入的话,会被认为是 mysql 当中的命令。 所以,在mysql 当中执行系统当中的命令的话,要在系统命令之前带上 ststem ,表示系统命令: 但是…

linux内核使用ppm图片开机

什么是ppm图片 PPM(Portable Pixmap)是一种用于存储图像的文件格式。PPM图像文件以二进制或ASCII文本形式存储,并且是一种简单的、可移植的图像格式。PPM格式最初由Jef Poskanzer于1986年创建,并经过了多次扩展和修改。 PPM图像…

笔记本电脑如何安装openwrt

环境: 联想E14笔记本 装机U盘 DiskImage v1.6 刷写工具 immortalwrt镜像 问题描述: 笔记本电脑如何安装openwrt 解决方案: 一、官方版 1.官网下载固件 2.BIOS关闭安全启动改为引导 3.用U盘启动进入PE系统后,需要先用PE系…

docker 清除不用的容器数据

1. 提示错误 --gpus all docker: Error response from daemon: Conflict. The container name "abc" is already in use by container "89b96853dc4d973ec932123550c17bcb77954531d0a596a3abc92dab0c621cee". You have to remove (or rename) that contai…

linux中文文件名提示(无效的编码)问题解决办法

背景说明 我们通过web客户端上传在windows上上传中文文件名的文件到linux服务器上,在linux图形化界面中打开文件所在路径,显示文件名为(无效的编码);在命令行界面输入ls命令发现乱码。 原因 Windows 的文件名中文编…

线性代数运算方法总结

线性方程组的行列式解法(克拉默法则) 首先写出方程的系数行列式,第一列x1第二列x2以此类推,然后用每个方程式的结果分别代替第一列到第列,得到每个未知数对应的代数行列式,方程的解为代数行列式比系数行列…

数组笔试题解析(下)

数组面试题解析 字符数组 (一) 我们上一篇文章学习了一维数组的面试题解析内容和字符数组的部分内容,我们这篇文章讲解一下字符数组和指针剩余面试题的解析内容,那现在,我们开始吧。 我们继续看一组字符数组的面试…

深眸科技聚焦AI+机器视觉产业化建设,加速智能制造国产替代升级

随着科技的不断发展,传统的制造生产已经无法满足现代制造业的需求,智能制造应运而生,以智能化、柔性化等生产优势,大幅提升制造效率和生产质量。智能制造是指具有信息自感知、自决策、自执行等功能的先进制造过程、系统与模式的总…

qt 正则表达式简单介绍

正则表达式即一个文本匹配字符串的一种模式,Qt中使用QRegExp类进行模式匹配.主要应用:字符串验证,搜索,替换,分割..... 正则表达式中字符及字符集 c 匹配字符本身,如a匹配a \c 跟在\后面的字符匹配字符本身,但本表中下面指定的这些字符除外。 \a 匹…

美易官方:零售销售数据提振信心

美易全球投资中心副总裁Kenny Jolin表示全球股市在经历了动荡之后逐渐恢复了稳定。最近,美国股市表现强劲,连续六天上涨,道琼斯指数也创下了新高。这一趋势不仅反映了投资者信心的恢复,也表明了全球经济正在逐渐复苏。 他说&#…

如何在jenkins容器中安装python+httprunner+pytest+git+allure(一)

背景: API接口自动化使用python语言实现,利用httprunner框架编写自动化用例场景(执行的时候还是依赖pytest),使用jenkins自动构建git上的源代码,并产生allure报告可视化展示API执行结果。 步骤 1.进入jenkins容器 注意使用roo…

WPF 基于TableControl的页面切换

文章目录 前言其它项目的UserControl切换TableControl添加按钮,隐去TableItem的Header 结论 前言 我想用WPF简单实现一个按钮视图切换的效果,但是我发现别人的实现效果非常的麻烦。 其它项目的UserControl切换 我网上找了个开源的项目,他是…

【华为OD】向一个空栈中依次存入正整数,假设入栈元素n(1<=n<=2^31-1)按顺 序依次为nx…n4、n3、n2、n1,每当元素入栈时

“”" 向一个空栈中依次存入正整数,假设入栈元素n(1<=n<=2^31-1)按顺 序依次为nx…n4、n3、n2、n1,每当元素入栈时,如果n1=n2+.…+ny(y的范围[2.x],1<

【Spring教程29】Spring框架实战:从零开始学习SpringMVC 之 服务器响应知识全面详解

目录 1 环境准备2 响应页面3 返回文本数据4 响应JSON数据5 知识点总结 欢迎大家回到《Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0c;如果您对Maven还很陌生&#xff0c;请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配…

uniapp:使用fixed定位,iOS平台的安全区域问题解决

manifest.json > 添加节点 "safearea": { //iOS平台的安全区域"background": "#1C1E22","backgroundDark": "#1C1E22", // HX 3.1.19支持"bottom": {"offset": "auto"} },已解决&#xff…