配色: 字号:
大数据复习
2020-11-02 | 阅:  转:  |  分享 
  
大数据复习2020-11-02演讲人01Linux常用命令top2014查看内存df-h2015查看磁盘netstart-tunlp|
grep2016查看端口占用情况ll2017子主题2018Linuxshell脚本02HadoopHadoopHDFSMap
ReduceYarn调度器0102分布式存储文件系统读写流程HadoopHDFS0304HDFS会将完整的文件切分成一个个的blo
ck(默认128M),并将这些block分布到各个集群上系统架构读写流程读取流程1.client先向NameNode申请要读取的
文件2.NN获取该文件所存储的DN位置,并返回给client3.client在从指定的DN上拉取数据写入流程1.向NN申请上传文
件2.响应后,clinet会发送第一个block数据3.创建一个通道(parpline),用于数据传输,并有应答机制来保证数据是否
成功传输完成4.返回ack后,才会继续传输,直到文件上传完成系统架构NN存储元数据信息,管理读写操作DN存储block心跳机制3
s会向NN汇报block的位置信息,安全机制系统架构SSN加快NN的启动时间HadoopSTEP1STEP2STEP3STEP4M
apReducemapreduce是hadoop的计算框架执行流程MR的计算也是基于内存计算是非常快的,但涉及到多次数据落地到磁盘
和网络的IO传输,影响到其整体的运行效率,这也是MR最大的致命数据倾斜问题执行流程1.每个block对应split3.maptas
k会将数据写入到KVbuffle5.溢写会对数据进行分区(按照key的hash值进行分区),排序(字典排序)2.每一个split会
分配一个maptask来处理4.KVBuffle会将数据优先写入到内存中,当达到阈值(80%)时开始溢写6.溢写的文件还会merg
a成大文件并分区执行流程17.reducetask根据分区拉取merga文件(reduce的数量对应map的数量)18.reduc
etask会进行合并排序,并把文件传到reduce229.reduce会对这些文件归并,并最终传输到HDFS上33执行流程4.KV
Buffle会将数据优先写入到内存中,当达到阈值(80%)时开始溢写在溢写下可选择combiner进行轻度的汇总,减轻reduce
task要处理的数据量架构01Hadoop执行流程02Yarnhadoop2.X升级后出现yarn,由于hadoop1.x的伸缩性
差,并且namenode只有一个,容易出现单点故障03架构ResourceManager资源分配管理器NodeManager执行
流程4.容器运行期间会向RM汇报心跳,当任务执行完成后,application会向RM注销释放容器资源DC3.NM接收到app时,
会初始化容器,并对这个app启动对应的APPMaster实例B2.RM会将app拆分成多个task并根据资源调度器来分配NMA1.
client会向RM申请application资源,RM返回资源路径,提交jobFIFO容量调度器Hadoop调度器公平调度器FI
FO单队列,先进先出容量调度器多队列,也是先进先出,每个队列在同一阶段只有一个任务执行,队列数是队列的并行度数企业中推荐公平调度器
多队列,每个队列内部按照缺额大小进行分配资源启动任务03HiveHivehive可以将sql语句解析成MR程序的分布式计算工具架构
操作存储格式HiveP3P2存储层P1解析器架构元数据元数据mysql存储层hdfsHive操作DDL(表操作)DML(CRUD操
作)外部表和内部表hive优化ABCDDDL(表操作)201520162017创建表数据类型分区表create[external
]table[ifnotexists]tablename(`colname`datatype[comment。。
。])[comment...]partitionedbyclusteredbysortedbyrowform
atstoredaspartitionedby(nameString)查询selectfrom大致与sql语句相
同分区排序常用查询函数rankrow_number空值赋值处理窗口函数030105字段排序nvl(s1,-1)列转行case
when0204lateralviewexploreDML(CRUD操作)UDF自定义函数实现UDF--实现evaluat
e方法--addjar--createfunctionDML(CRUD操作)加载数据loaddata(local本地)
inpath路径overwriteintotable表名外部表和内部表外部表内部表可以互相转换删除外部表,只会删除元数
据信息,并不会将真实数据删除(存储在HDFS上)关键字External修饰删除内部表,会将元数据和真实数据全部删除alterta
ble表名settblproperties(''EXTERNAL''=''TRUE'');表优化小表join大表mapjoin
动态分区030105小表在前,大表在后点击此处添加正文内容开启预聚合大表join大表0204解决hive优化sortby
代替orderby列裁剪Cgroupby代替distinctBsql语句调优A小文件合并三种方式HARSequenceFile
CombinerORC,可以加快map端的数据网络IO到reduce,需自己安装,压缩后可切分gziphive优化压缩bzipsn
appy增加减少hive优化合理设置map数hive优化JVM重用Hive0102textFileRCFile存储格式0304OR
CFileSEQUENCEFILEtextFile默认格式RCFile推荐,列式存储ORCFile推荐,RCFile改良版04Hb
aseHbasehabse是高性能,高可靠,基于列存储的非关系型数据库架构rowkey设计原则热点问题hbase读写流程Hbase
优化Hbase过滤器HMasterHRegionServerHbase架构ZKHMaster负责管理RegionServer和读写
操作HRegionServer存储数据,执行由HMaster分配的RegionHRegionServerHlog预写日志,记录Re
gionServer的一系列操作,以防宕机丢失数据Store01列族0302storFilememstore当单个storeFi
le超过阈值会分成2个相等的sorefile内存写入,达到阈值(128M)开始溢写磁盘,生成StoreFileHRegionSer
verRegion表信息,一个RegionServer可以有多个region,一个region只能有一个regionServerZ
K存储元数据信息,监控和调度HMaster三级寻址zk记录root表信息,从root表在找到meat表信息,meat表信息记录真
实数据Hbaserowkey设计原则长度原则散列原则唯一性原则010203长度原则不超过64kb散列原则避免相同key数据走单个r
egionserver处理,出现数据热点问题唯一性原则hbase的rowkey是按照字典排序,利用这点,可以顺序存储01单个reg
ionserver处理过多的数据,从而影响到其他regionserver的运行,甚至宕机Hbase热点问题02解决办法解决办法哈希
字符串反转加盐HbaseP2P1写流程读流程hbase读写流程读流程1.先从zk获取到regionserver位置信息2.regi
onserver会优先找catch文件查看需要读取文件是否存在,如存在直接返回读取124.如果没有在去读取storeFile数据3
.没有,则去region找到store,先读取memstore数据43写流程1.获取到regionserver位置信息,对应的re
gion表信息2.先去Hlog写入日志,只有Hlog写入成功才会继续,在去region写入数据,region会优先去memstor
e写入3.当memstore写入数据达到阈值会将数据溢写到磁盘,并生成storefile4.storefile的数据量也达到阈
值也会划分成两个相等的storefile当storefile太小,会进行合并,生成大的storefile文件HbaseHbase
优化12子主题子主题Hbase过滤器布隆过滤器05FlumeFlumeflume可以将实时生成的日志信息流入到HDFS上的日志收集
系统架构子主题操作Flume采集数据会丢失吗?(防止数据丢失的机制)过滤器LOGOFlumeABC架构sourceChannels
inkhttps://www.wps.cn架构source一般而言,最广泛地还是日志文件Channel缓冲区memorychan
nelfilechannel架构ABhdfskafkasinkFlumeflme-ngagent--confpath--
namea1--conf-file具体的配置路径kafkasink操作编写相应的配置文件hdfssink操作编写相应的
配置文件操作flme-ngagent--confpath--namea1--conf-file具体的配置路径01
hdfssink02a1.channels=c1a1.sinks=k1a1.sinks.k1.type=hdfs
a1.sinks.k1.channel=c1a1.sinks.k1.hdfs.path=/flume/events/%
y-%m-%d/%H%M/%Sa1.sinks.k1.hdfs.filePrefix=events-a1.sinks.k1
.hdfs.round=truea1.sinks.k1.hdfs.roundValue=10a1.sinks.k1.h
dfs.roundUnit=minute操作kafkasinka1.sinks.k1.type=org.apache.
flume.sink.kafka.KafkaSinka1.sinks.k1.topic=mytopica1.sinks.k
1.brokerList=localhost:9092a1.sinks.k1.requiredAcks=1a1.sin
ks.k1.batchSize=20a1.sinks.k1.channel=c1Flume不会,channel的数据是存
储在file中,数据传输自身有事务。01putFlume采集数据会丢失吗?(防止数据丢失的机制)02take03Flume采集数据
会丢失吗?(防止数据丢失的机制)不会,channel的数据是存储在file中,数据传输自身有事务。takeput06SqoopSq
oop可以将HDFS的数据导入到muysql上,也可以从mysql导入到hdfs的数据迁移工具操作导入(import)导出(exp
ort)一般而言都是写成脚本的方式运行Sqoop操作操作导入(import)sqoopimport\\--connectj
dbc:mysql://node01:3306/sqoop\\--usernameroot\\--password12
3456\\--table表名\\--target-dir/user/sqoop\\--num-mapper1
\\--fields-terminated-by\"\\t\"操作导出(export)sqoopexport\\--c
onnectjdbc:mysql://node01:3306/sqoop\\--usernameroot\\--pas
sword123456\\--table表名\\--export-dir/user/sqoop\\--num-m
apper1\\--input-fields-terminated-by\"\\t\"export\\\\\\\\-
-connectjdbc:mysql://node01:3306/sqoop\\\\\\\\--usernameroot
\\\\\\\\--password123456\\\\\\脚本文件不需要刚开始的sqoop命令sqoop--optio
ns-file文件一般而言都是写成脚本的方式运行07RedisRedis基于内存存储的k,v格式的非关系型数据库P5P4zset
P3setP2mapP1hashlistRedis数据类型Redis主从复制redis支持一主多从的模式架构,主节点支持读写操作,
从节点只支持读操作哨兵机制sentinel.conf监控防止主从复制带来的单节点故障,如主节点宕机就会使redis丢失写入功能,只
能读当主节点宕机,会从从节点选举成为新的主节点哨兵不断的检查主从服务器的状态Redisredis集群HA持久化方式AOF基
于内存存储日志,容易丢失,存储的是操作命令,数据恢复起来慢,但启动速度快RDB基于磁盘存储日志,不容易丢失,存储的是数据本身,数
据恢复起来快,但启动速度慢08EsEsABC分布式搜索引擎倒排索引数据存储结构DEF基本命令分片和备份架构EsJavaAPI09Z
KZK分布式协调管理工具,多用于大数据管理或协调各个组件的工作架构功能操作ZK架构leaderfollower架构leader投
票的发起和决议,对外更新zk的状态follower接收客户端的请求和返回相应的结果,参加leader的选举投票(票数大于一半就会
通过)ZK功能消息同步负载均衡分布式集群管理服务器动态上下线1234功能消息同步负载均衡服务器动态上下线分布式集群管理ZK操作zk
Server.shstartzkServer.shstopzkServer.shstatuszkCli.shABCD操作zk
Server.shstart启动zk操作zkServer.shstop停止zk操作zkServer.shstatus查看zk的状态zkCli.sh启动zk客户端get0103ls/create0204查看zk下存储的信息10KafkaKafkakafka是高性能,高吞吐,低延迟的分布式消息队列架构消息持久化消费者组ISR机制kafkaAPIKafka0102高吞吐本质kafka数据重复和丢失produceBlock0102Kafka架构consumer执行流程0304架构produce生产者Blocktopicpartitionfollowerreplication每个block可有多个topic架构consumer架构执行流程11StromStrom12SparkSpark13FlinkFlink14机器学习机器学习15KylinKylin感谢聆听
献花(0)
+1
(本文系职场细细品原创)