TDH-大数据基础


------------------------------------------------------------------------------------
*******大数据概念和基础**********
1.大数据的四个特点:数据规模大,生成、处理速度快,数据类型多样,价值巨大密度低;
2.大数据历史:三篇论文(GFS,mapReduce,bigTable),CDH,HBASE,SPARK,TDH等;
-------------------------------------------------------------------------------


----------------------------------------------------------------------------------------
****************HDFS*********************
1.HDFS为什么不适合存储大量小文件?
答:1.大量文件的元数据占用NameNode大量内存空间
2.磁盘寻道时间超过读取时间
-------------------------------------------------------------------------------------------- ----
2.HDFS 何时离开安全模式?
答:ActiveNameNode启动时HDFS进入安全模式只读,datanode主动汇报可用block的可用情况
即上报率=可用block数量/namenode元数据记录的block数>=99.9%时离开安全模式
-------------------------------------------------------------------------------------------------
何时触发安全模式?
1.namenode磁盘不够;2.DataNode无法启动;3.namenode重启;4.block上报率低阈值;5.日至报错;6.强制关机
----------------------------------------------------------------------------------------------------
3.ActiveNN与standbyNN的切换?
答:QJM机制实现最终一致,允许延迟,journalnode(2N+1)只要N+1个写入成功即可,他写edits编辑日志
文件,activeNN挂掉standbyNN状态变为active
---------------------------------------------------------------------------------------------
4.HDFS写文件过程?
答:1.客户端请求上传文件,输入命令;
2.检查HDFS目录,允许上传;
3.客户端将文件切块block并请求namenode;
4.namenode返回datanode信息;
5.客户端与datanode建立传输,写成功后通知namenode;/先写数据再写日志
6.更新edits编辑日志(立即)和fsimage文件(定期)写入namenode,同时写入journalnode,最后写入内存(最新);
7.后面standbyNN与activeNN定期同步。
------------------------------------------------------------------------------------
5.HDFS优缺点?
优点:高可用(nameNode HA),高容错(冗余多副本),高扩展(10k),海量数据,成本低
缺点:大量小文件不可存,不支持并发写入,不支持低延时,不支持随机写
---------------------------------------------------------------------------------------------
6.HDFS元数据俩种存储方式?
内存元数据:namenode
文件元数据:edits+fsimage
--------------------------------------------------------------------------------------------
7.HDFs最小文件存储单元 block?
1.存储在datanode,大小默认128M,多副本、均匀分布在多个datanode(默认三个副本);
2.block放置策略:副本1放在clinet 副本2放在另一台机架,副本3放在和副本2一起的另外节点,其他随意;
3.block文件 命名:“ blk blk_文件大小”
-------------------------------------------------------------------------------------------------------
8.HDFS各个角色
1.ActiveNN作用:
唯一的集群管理节点;管理HDFS文件系统命名空间;维护元数据信息(文件位置、权限、块信息等);处理客户端请求;管理块策略
2.standbyNN作用:
备份master节点宕机后替换activeNN;周期同步activeNN的edits文件,并定期合并fsimage文件和edits到本地磁盘;
3.nameNode作用:
存储元数据(fsimage+edits),fsimage(文件块信息、位置、目录、副本数),edits(文件操作记录)
4.dataNode作用:
Slive工作节点;存储数据block;定期与namenode心跳汇报block信息(集群启动有可用block数汇报);客户端的数据读写操作;
---------------------------------------------------------------------------------------------
9.HDFS高可用?
通过QJM机制部署2N+1个journalNode节点,N+1个操作成功(写edits)即可,利用ZK选举Active节点


-------------------------------------------------------------------------------
***********************YARN*************************************
-------------------------------------------------------------------------------
1.yarn与mapreduce的关系?
答:
1.yarn是资源调度框架,mapreduce是分布式计算框架;
2.yarn将jobTracker的资源管理和任务调度划分开了,通过ResourceManager进行资源的统一管理和分配,
ApplicationManager进行解析mapreduce程序然后变成一个个小任务,需要多少资源向ResourceManager请求,
然后nodeManager和applicationManager协作分配containner执行任务。


2.如何部署yarn RM NM和hdfs的datanode namenode节点?
答:1.dataNode和nodeManager放在一起
2.yarn的ResourceManager单独放
3.俩个active不放在一起,standby节点放在别的节点
4.namenode 和RM 至少俩个

3.Yarn三个角色ResourceManager/applicationManager/nodeManager介绍?
ResourceManager:统一管理集群的所有资源,分配资源给applicationManager,接受nodemanager资源上报信息
applicationManager:管理应用程序,申请资源,任务调度
nodeManager:管理单个节点资源,上报资源使用,管理container生命周期

4.ResourceManagerHA高可用?
1个activeRM 多个standby RM;ZK选举ActiveRM,宕机后主备切换;

5.yarn的资源调度策略?
1.FiFo Scheduler:先进先出,不灵活,利用率低;
2.capacity Scheduler:提前做预算;多个队列共享资源;空闲资源优先给实际资源/预算资源小的队列;
特点:弹性分配;多租户;多层次;保证容量
3.fair scheduler:见面分一半 资源抢占;占用资源小于最低资源限制 则强制停止其他队列任务;队列中有任务等待,则根据权重分配


-------------------------------------------------------------------------------
***********************mapreduce*************************************
-------------------------------------------------------------------------------
1.mapreduce核心思想?
1.分治思想;2.移动计算而不是移动数据

2.特点:计算跟着数据走,批处理,高容错,扩展好

3.MR的几个阶段?
split:Split的大小默认 等于 Block大小,决定map任务数量;
map:split切片输入,key-value输出
reduce:由若干Reduce任务组成,数量由程序指定
shuffle:中间环节,包括分区(哈希取模)将map中间结果输出到buffer区,然后分区排序,当达到阈值溢将
一个临时文件写到磁盘上,map任务结束前临时文件合并为一个map文件,fetch等

Partition决定了Map任务输出的每条数据放入哪个分区,交给哪个Reduce任务处理
• Reduce任务的数量决定了Partition数量
• Partition编号 = Reduce任务编号 =“key hashcode % reduce task number”

Hadoop1和2的区别?
1.1有单点故障,资源描述简单,负载太重;2融合yarn 高可用,高扩展,资源有专门的角色管理,任务和资源分开

4.mapreduce key-value输入输出的原因?
答:
1.通用数据格式
2.shuffle过程要排序合并,哈希取模可以决定分区partition

5.shuffle是调优关键?
答:shuffle的过程:先写内存(内存中先分区后排序) 然后溢写硬盘 再合并(大文件的分区排序)

-------------------------------------------------------------------------------
***********************spark*************************************
-------------------------------------------------------------------------------
1.RDD?
数据集拆分;数据存储在内存或者磁盘;多分区;失效自动重构;转换操作构造

2.RDD俩种依赖?
窄依赖(父RDD中的分区最多只能被一个子RDD的一个分区使用)和宽依赖(子RDD依赖于所有父RDD)

3.spark 角色?
1.driver;main函数在里面
2.sparContext:加载配置信息,初始化运行环境,创建DAGScheduler和TaskScheduler
3.Executor:可以有多个 多线程
4.task:

4.spark的几种运行模式?
1.local:单机运行,spark以多线程形式运行在本地;
2.standlone:集群运行(规模不大)
3.yarn-client/yarn-cluster(生产环境);

5.spark运行过程:
生成逻辑查询计划-物理查询计划-任务调度-执行任务

6.mapreduce比起saprk优缺点:
答:1.通用性强
2.mapreduce对现实的描述过于简单只有map,reduce俩个,spark细分rdd,分多个partition

----------------------------------------------------------------
********************Sqoop*********************
------------------------------------------------------------
Sqoop:用于rdbms和hadoop之间的数据导入导出
1.1和2版本的对比:
1.不安全,但是简单快速高效,2.增加安全机制,多用户,集中管理,稳定性和速度都不好


----------------------------------------------------------------
********************flume*********************
-----------------------------------------------------------
1.数据流模式:source---channel(可以缓存)---sink
2.事务机制:支持重读重写
3.agent:jvm的运行单元,将外部数据送到目的地,内涵一个数据流,以event作为数据单元进行传输
4.1个souece对应多个channel,1channel对应1个sink
5.flume单层架构(数据暴露,安全性差,产生许多小文件),多层架构(安全但是复杂)


-----------------------------------------------------------------
********************kafka*****************
------------------------------------------------------------------
1.kafka的几个角色?
broker:server;
topic:消息贴标签组成一类 分类的过程,同一类,方便处理,有了topic
就可以隔离其他类数据,他是一个逻辑概念;
partiion:物理概念要落盘 不可更改只读,一个topic多个分区,一个分区一个目录,
一个分区代表一个文件夹 一个分区多个副本 放在不同的broker上;
zk:broker的负载均衡,leader的选举,元数据存储,CG之间的rebalance,配置管理等;


2.kafka的partiton是一个先进先出队列,写入消息追加尾部,消费消息在队列头部;

3.kafka的CG内部的cosumer是互斥的,不同CG之间是共享消息的;

4.kafka最小数据存储单元是segment,它包含(offset.index offset.timeindex,offset.log)三个文件,offset
是消息在分区中的唯一标识,他是有序的。
offset.index数据格式:偏移量,位置;
offset.timeindex数据格式:时间,偏移量;

5.kafka机制:
消息在broker中(server)按照topic分类,打上标签;然后 每个topic划分为多个partition,每个partition进行
多个备份副本;多个consumer组成CG 进行订阅消费数据

6.队列在资源调度的作用?
答:共享集群资源,隔离任务

7.kafka分了topic和partition作用?
答:利用多分区多副本实现高可用,一个topic(逻辑概念)代表一类数据,一个topic分为多个partition(物理概念),
一个partition为一个文件夹表示一种业务

8.kafka partition leader 和follower如何工作》?
答:partition leader 是选举出来的主要负责一个分区的读写;follower同步分区信息到各个副本

9.zookeeper为什么不亲自负责kafka的partition和副本之间的leader的选举?
答:通过Zookeeper,从Kafka集群中选举出一个Broker作为Kafka Controller Leader
• Kafka Controller Leader负责管理Kafka集群的分区和副本状态,避免分区副本直接在Zookeeper
上注册Watcher和竞争创建临时Znode,导致Zookeeper集群负载过重,Kafka Controller Leader通过ISR(分区和备份列表)来选举
partition Leader

-----------------------------------------------------------------
********************inceptor*****************
------------------------------------------------------------------
1.架构?
1.metastore:元数据存储在TxSQL
2.client:waterdrop

2.数据模型?
1.database:系统会为每个数据库创建一个目录,目录名=数据库名.db;先删表再删库;
2.table:内表:外表:
3.分区:
含义:将表按照某个或某几个字段(分区键) 划分为更小的数据集;
存储:分区数据存储在表目录下的子目录中,一个分区对应一个子目录,分区目录名为“分
区键=value”;
目的:减少全盘扫描,提高查询效率
选取分区键:离散值、大量出现再select where中
4.分桶:
1.分桶时候 俩张表同样操作,join的列,表一 join表二 where A1=A2 俩表各自利用哈希取模分桶,
同样值的分在同样的桶里面,分桶有"打散"和"聚合"的功能(同样值的在一个桶,也可能成倍数的桶里)
2.提高取样效率;
3.先分区再分桶;

5.读时模式:
数据入库不检查规范性,在查询时验证

-----------------------------------------------------------------
********************slipertream*****************
------------------------------------------------------------------
1.输入流的模式:
微批(Micro-batch)模式:将Input Stream按时间划分成若干小数据块(Batch)来处理;
事件驱动(Event-driven)模式:以单条数据被Input Stream接收为事件,逐条读取并处理;

2.Derived Stream(衍生流)
含义:对已有的Stream变形(Transform)得来
-Transform通常由CSAS(Create Stream As Select)完成
3.streamSQL与普通SQL的区别
无阻塞模式

-----------------------------------------------------------------
********************hyperbase*****************
------------------------------------------------------------------
1.特点:高可靠,高并发,高性能,基于列,
key-value存储,半结构化,newSQL,HFile落地,数据强一致性

2.表结构: RowKey | 列族 | 列限定符 | 时间戳
3.表特点:多版本,稀疏,无类型,动态增加列,大规模,
4.角色?
HMaster:
管理元数据;
管理表的创建、删除和修改;
为HRegionServer分配Region;
HRegionServer宕机后,重新分配其上的Region;
负责HRegionServer的负载均衡;

HRegionServer:
处理客户端请求;
region的分裂;
storeFile的合并;

ZK:
HMaster高可用;
监控HRegionServer的上下线信息, 并通知HMaster;
存储元数据的寻址入口;
存储所有Region的寻址入口;

5.数据存储过程?
1.Client 访问ZK获取meta表的region位置,然后记录在ClientCache中;
2.读取meta表,根据namespace/表名、rowkey获取要写入的region位置,并将meta表写入ClientCache中;
3.HRegionServer先写HLog文件(数据和操作);
4.HRegionServer先写MemStore,当数据量超过阈值时,溢写到磁盘为一个storefile(Hfile);
5.当Store中的StoreFile数量超过阈值时,若干小StoreFile合并为一个大StoreFile;
6.当Region中最大Store的大小超过阈值时,region会等分为两个子Region;


6.数据读过程?
1.12步骤同写过程;
2.先从memStore读再从storeFile中读;

7.


----------------------------------------------------------------
**********************search***********************
----------------------------------------------------------------
1.es基于lucene(单机),solr(实时性能差),search增加了sql;

 

转载于:https://www.cnblogs.com/Lxiaojiang/p/9599961.html

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

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

相关文章

xshell十大技巧

xshell是我用过的最好用的ssh客户端工具,没有之一。这个软件完全免费,简单易用,可以满足通过ssh管理linux vps所有需要,唯一遗憾的是没有官方中文版。警告:不要下载所谓的汉化版,可能有木马。此前已有报道使…

深度linux 网络配置文件,solver及其配置 - Caffe 深度学习入门教程_Linux教程_Linux公社-Linux系统门户网站...

solver及其配置solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为#caffe train --solver*_slover.prototxt在Deep Learning中,往往loss function是非凸的,没有解析解&…

restful服务端客户端_测试RESTful服务的客户端

restful服务端客户端开发使用RESTful Web API的应用程序可能意味着开发服务器和客户端。 为服务器端编写集成测试可以像使用Arquillian启动服务器一样容易,并且可以通过REST确保测试服务是否按预期工作。 问题是如何测试客户端。 在本文中,我们将了解如何…

笑郭网络验证3.8研究笔记(内有视频教程)

链接:http://pan.baidu.com/s/1kUVkY2N 密码:m6de 转载于:https://www.cnblogs.com/Sendige/p/9600782.html

Java开发人员必须看到的13个Decks保持更新

Java领域中有许多关键人物,每个人物对语言的未来都有自己的看法和看法。 尽管我们不能参加任何活动,聚会或谈话,但要感谢各种幻灯片共享站点,我们才能听到这些影响者的意见。 在下面的文章中,我们收集了关于Java的最好…

已经windows如何在安装linux,如何在已经安装linux情况下安装windows

1.找到磁盘分区工具,将一个主分区磁盘格式化为windows认可的文件系统,如: ntfs.2.安装windows,或ghost to this partition。(最好是ghost,这样不会抢linux的启动区域。那样的话就改的就是windows下的文件。3.更改linux或windows下的grub.以liunx(ubuntu)…

标准模板库STL学习总结

标准模板库就是类与函数模板的大集合。STL共有6种组件:容器,容器适配器,迭代器,算法,函数对象和函数适配器。1、容器: 容器是用来存储和组织其他对象的对象。STL容器类的模板在标准头文件中定义。主要如下所…

MicroRNA Ranking(Tehran2016)

题意&#xff1a;给出m个n的全排列&#xff0c;求一个n的全排列&#xff0c;满足对于i<j&#xff0c;至少存在一半的全排列中&#xff0c;ai排在aj的前面&#xff0c;求字典序最小方案&#xff0c;或者是无解。 (1)首先我们对 vis[ a[i] ][ a[j] ] ,求出a[i] 对 a[j] 的贡献…

linux gpt引导分区,linux 引导gpt分区windows及clover

原因&#xff1a;电脑采用gpt分区&#xff0c;安装了win10linux(debian)mac 10.11(El capitan),使用clover做引导器时&#xff0c;可以引导linux和mac,但通过bootmgfw.efi引导win10时无限转圈,不能正常启动win10。所以考虑用linux的grubx引导器。1、引导Clocer查看clover所在EF…

查看表状态及索引碎片语句

语句&#xff1a;DBCC SHOWCONTIG (SrMissedCalls) WITH ALL_INDEXES&#xff1b; 其中‘SrMissedCalls’是表名字。 执行之后展示内容&#xff1a; 转载于:https://www.cnblogs.com/shendaxian/p/9604826.html

visualvm远程jvm_VisualVM:通过SSH监视远程JVM(是否为JMX)

visualvm远程jvmVisualVM是用于监视JVM&#xff08;5.0&#xff09;的有关内存使用&#xff0c;线程&#xff0c;GC&#xff0c;MBeans等的出色工具。让我们看看如何通过SSH使用它来监视&#xff08;甚至使用JMX进行配置&#xff09;使用JMX或不使用JMX的远程JVM。它。 这篇文章…

如何切换pip的源

参考别人的帖子https://blog.csdn.net/chenghuikai/article/details/55258957 转载于:https://www.cnblogs.com/PoeticalJustice/p/9609659.html

shp文件的读取

转载自&#xff1a;http://blog.csdn.net/gisfarmer/article/details/3861554做GIS开发的朋友可能对shp并不陌生&#xff0c;但是看到CSDN网友不断提问关于shp文件的一些问题&#xff0c;利用闲暇我对shp文件的一些知识加以总结&#xff0c;共享CSDN网友。首先了解一下shp文件的…

Java 8:CompletableFuture与并行流

这篇文章展示了Java 8的CompletableFuture在执行异步计算时如何与并行流进行比较。 我们将使用以下类对长时间运行的任务进行建模&#xff1a; class MyTask {private final int duration;public MyTask(int duration) {this.duration duration;}public int calculate() {Sy…

linux使用gpio开一个线程,LINUX的gpio_request_one作用

一直习惯使用gpio_request来申请一个GPIO&#xff0c;然后用gpio_direction_input、gpio_direction_output等函数来配置对应的GPIO&#xff0c;用gpio_free来释放申请。后来看到别人也会用gpio_request_one来申请和配置一个GPIO&#xff0c;然后就去看看看这个接口的实现&#…

Python制作回合制手游外挂简单教程(下)

引入&#xff1a; 接着上篇的博文&#xff0c;今天我们讲如何实现助人为乐 前期准备&#xff1a; 如何获取图片中指定文字的坐标&#xff1f; 我的思路是截取一个小区域&#xff0c;再根据小区域左上角的坐标获取中央坐标 例如&#xff1a; 获取坐上角的x和y坐标&#xff0c;测…

XSHELL下直接下载文件到本地(Windows)

转载自&#xff1a;http://www.cnblogs.com/davytitan/p/3966606.html xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz 首先你的Ubuntu需要安装rz.sz(如果没有安装请执行以下命令,安装完的请跳过.其它版本linux请自行安装相应软…

linux操作系统2试题,RedHat Linux 9.0 操作系统测试题2

一、填空题(每空1分&#xff0c;共14分)1.任何Linux系统都至少需要两类分区&#xff1a;根分区和交换分区。2.CD-ROM标准的文件系统是iso9660。3.使用vi编辑器可以创建文本文件&#xff0c;在输入文件内容之前需要先按INSERT键进入插入模式&#xff0c;在保存之前需下先使用ESC…

HazelCast的Spring-Boot和Cache抽象

以前&#xff0c;我们是使用spring提供的默认Cache Manager来开始Spring Cache抽象的。 尽管这种方法可能适合我们对简单应用程序的需求&#xff0c;但是在出现复杂问题的情况下&#xff0c;我们需要使用具有更多功能的其他工具。 Hazelcast就是其中之一。 当涉及到基于JVM的应…

Ubuntu18.04 安装搜狗输入法后无法启动的问题

ibus 改选成fcitx后搜狗输入法照样没出来。 这里需要im-config 没有的话需要安装&#xff1a; sudo apt install im-config 然后在Terminal中执行 im-config 根据提示选择fcitx转载于:https://www.cnblogs.com/feipeng8848/p/9609877.html