赞
踩
问答题:
由HDFS Client、NameNode、DataNode和Scondary NameNode四部分组成
一个HDFS集群是由一个NameNode和一定数目的DataNode组成的。NameNode是一个中心服务器,负责管理文件系统的名字空间 (Namespace )及客户端对文件的访问
1首先启动端口号
一个NameNode有单节点故障问题,就配置双NameNode,两个关键点,必须要保证这两个NN 的元数据信息必须要同步,一个namenode挂掉之后另外一个要立马补上
危害:占用很大的内存甚至撑爆内存
(1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。
(2)在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。
(3)在MapReduce处理时,可采用CombineTextInputFormat提高效率。
架构:主要由ResourceManager、NodeManager、ApplicationMaster和Container构成
工作原理:1.Client向Yarn提交Application,这里我们假设是一个MapReduce作业。
ResourceManager向NodeManager通信,为该Application分配第一个容器。并在这个容器中运行这个应用程序对应的ApplicationMaster。
2.ApplicationMaster启动以后,对作业(也就是Application)进行拆分,拆分task出来,这些task可以运行在一个或多个容器中。然后向ResourceManager申请要运行程序的容器,并定时向ResourceManager发送心跳。
3.申请到容器后,ApplicationMaster会去和容器对应的NodeManager通信,而后将作业分发到对应的NodeManager中的容器去运行,这里会将拆分后的MapReduce进行分发,对应容器中运行的可能是Map任务,也可能是Reduce任务。
4.容器中运行的任务会向ApplicationMaster发送心跳,汇报自身情况。当程序运行完成后,ApplicationMaster再向ResourceManager注销并释放容器资源。
1.Client向RM提交请求,上传jar包到HDFS上
2.RM在集群中选择一个NM,在其上启动AppMaster,在AppMaster中实例化SparkContext(Driver)
3.AppMaster向RM注册应用程序并申请资源。RM监控AppMaster的状态直到AppMaster结束。
4.AppMaster申请到资源后,与NM通信在Container中启动Executor进程
5.Executor向driver反向注册,申请任务
6.Driver对应用进行解析,最后将Task发送到Executor上
7.Executor中执行Task,并将执行结果或状态汇报给Driver
8.应用执行完毕,AppMaster通知RM注销应用,回收资源
主要有三种:FIFO,Capacity Scheduler(容量调度器)和Fair Scheduler(公平调度器)。
1.内部表数据由Hive自身管理,外部表数据由HDFS管理;
2.内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),
3外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里);
HDFS:GB、TB、甚至PB级数据
百万规模以上的文件数量
10K+节点规模
HBase:海量明细数据(十亿、百亿)的随时实时查询。如日志明细。交易清单,行为轨迹
高可靠性、高性能、面向列、可伸缩
6.Spark对于executor的优化,在JVM虚拟机的基础上对内存弹性利用:storage memory与Execution memory的弹性扩容,使得内存利用效率更高。
Hadoop:1.分布式存储
Spark:用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。 这些不同类型的处理都可以在同一个应用中无缝使用
RDD是一组分布式的存储在 节点内存中的只读性的数据集,这些集合石弹性的,某一部分丢失或者出错,可以通过整个数据集的计算流程的血缘关系来实现重建,
Spark core API的一种扩展,用于大规模、高吞吐量、容错的实时数据流处理
它支持从多种数据源读取数据,比如Kafka、Flume、Twitter和TCP Socket,并且能够使用算子比如map、reduce、join和window等来处理数据,处理后的数据可以保存到文件系统、数据库等存储中
原理:接受实时输入数据流,然后将数据拆分成batch,比如每收集一秒的数据封装成一个batch,然后将每个batch交给spark的计算引擎进行处理,最后会生产处一个结果数据流,其中的数据也是一个一个的batch组成的。
Master、worker、Driver、spark context、client
用户在client端提交作业后,会由Driver运行main方法并创建spark context上下文。执行add算子,形成dag图输入dagscheduler,按照add之间的依赖关系划分stage输入task scheduler。task scheduler会将stage划分为task set分发到各个节点的executor中执行。
宽依赖:
本质就是shuffle。父RDD的每一个partition中的数据,都可能会传输一部分到下一个子RDD的每一个partition中,此时会出现父RDD和子RDD的partition之间具有交互错综复杂的关系,这种情况就叫做两个RDD之间是宽依赖
窄依赖:
父RDD和子RDD的partition之间的对应关系是一对一的
MR:抽象层次低,需要使用手工代码来完成程序编写,使用上难以上手;
Spark:Spark采用RDD计算模型,简单容易上手。
MR:只提供map和reduce两个操作,表达能力欠缺;
Spark:Spark采用更加丰富的算子模型,包括map、flatmap、groupbykey、reducebykey等;
MR:一个job只能包含map和reduce两个阶段,复杂的任务需要包含很多个job,这些job之间的管理以来需要开发者自己进行管理;
Spark:Spark中一个job可以包含多个转换操作,在调度时可以生成多个stage,而且如果多个map操作的分区不变,是可以放在同一个task里面去执行;
MR:中间结果存放在hdfs中;
Spark:Spark的中间结果一般存在内存中,只有当内存不够了,才会存入本地磁盘,而不是hdfs;
MR:只有等到所有的map task执行完毕后才能执行reduce task;
Spark:Spark中分区相同的转换构成流水线在一个task中执行,分区不同的需要进行shuffle操作,被划分成不同的stage需要等待前面的stage执行完才能执行。
MR:只适合batch批处理,时延高,对于交互式处理和实时处理支持不够;
Spark:Spark streaming可以将流拆成时间间隔的batch进行处理,实时计算。
数据倾斜以为着某一个或者某几个partition的数据特别大,导致这几个partition上的计算需要耗费相当长的时间。
在spark中同一个应用程序划分成多个stage,这些stage之间是串行执行的,而一个stage里面的多个task是可以并行执行,task数目由partition数目决定,如果一个partition的数目特别大,那么导致这个task执行时间很长,导致接下来的stage无法执行,从而导致整个job执行变慢。
避免数据倾斜,一般是要选用合适的key,或者自己定义相关的partitioner,通过加盐或者哈希值来拆分这些key,从而将这些数据分散到不同的partition去执行。
如下算子会导致shuffle操作,是导致数据倾斜可能发生的关键点所在:groupByKey;reduceByKey;aggregaByKey;join;cogroup;
缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。
解耦和扩展性:项目开始的时候,并不能确定具体需求。消息队列可以作为一个接口层,解耦重要的业务流程。只需要遵守约定,针对数据编程即可获取扩展能力。
冗余:可以采用一对多的方式,一个生产者发布消息,可以被多个订阅topic的服务消费到,供多个毫无关联的业务使用。
健壮性:消息队列可以堆积请求,所以消费端业务即使短时间死掉,也不会影响主要业务的正常进行。
异步通信:很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们
单项选择题:
1、从 Vi 编辑模式下保存配置返回到 Centos7 系统使用(c)
A.按“shift”+“:”组合
B.按“Esc”键,然后按“shift”+“:”组合
C.按“Esc”键,然后按“shift”+“:”,输入wq 回车
D.直接输入“exit”
2、在 Centos7 系统中,查看和修改 IP 信息需要用到(b )文件
A. /etc/sysconfig/network/ifcfg-ens0
B. /etc/sysconfig/network-script/ifcfg-ens0
C. /etc/sysconfig /ifcfg-ens0
D. /etc/resolv.conf
3、tar 命令用于对文件进行打包压缩或解压,-t 参数含义(c )
A. 创建压缩文件
B. 解开压缩文件
C. 查看压缩包内有哪些文件
D.向压缩归档末尾追加文件
4、Hadoop 的安装部署的模式属于本地模式(a )
A. 默认的模式,无需运行任何守护进程(daemon),所有程序都在单个 JVM 上执行。
B. 在一台主机模拟多主机。即,Hadoop 的守护程序在本地计算机上运行,模拟集群环境,
并且是相互独立的Java 进程。
C. 完全分布模式的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。
D.高容错全分布模式的守护进程运行在多台主机搭建的集群上
5、Hadoop 的安装部署的模式属于伪分布模式( b)
A. 默认的模式,无需运行任何守护进程(daemon),所有程序都在单个 JVM 上执行。
B. 在一台主机模拟多主机。即,Hadoop 的守护程序在本地计算机上运行,模拟集群环境,
并且是相互独立的Java 进程。
C. 完全分布模式的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。
D.高容错全分布模式的守护进程运行在多台主机搭建的集群上
6、HDFS 默认 Block Size 的大小是(b/c )。
A.32MB B.64MB C.128MB D.256M
7、下列关于 MapReduce 说法不正确的是(a )
A. MapReduce 是一种计算框架
B. MapReduce 来源于 google 的学术论文
C. MapReduce 程序只能用 java 语言编写
D. MapReduce 隐藏了并行计算的细节,方便使用
8、HDFS 是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、
高可扩展性、高吞吐率等特征,适合的读写任务是 ( d)
A.一次写入,少次读
B.多次写入,少次读
C.多次写入,多次读
D.一次写入,多次读
9、关于 SecondaryNameNode 下面哪项是正确的(c )。
A. 它是 NameNode 的热备
B. 它对内存没有要求
C. 它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间
D. SecondaryNameNode 应与 NameNode 部署到一个节点
10、大数据的特点不包括下面哪一项(d )。
A. 巨大的数据量
B. 多结构化数据
C. 增长速度快
D. 价值密度高
11、HBase 依赖_(a )存储底层数据
A. HDFS B. Hadoop C. Memory D. MapReduce
12、HBase 依赖(a )提供消息通信机制
A Zookeeper
B Chubby
C RPC
D Socket
13、flume 有哪个组件用于采集数据( a)
A. source
B. channel
C. sink
D. web server
14、启动 Hadoop 和 HBase 之后,执行jps 命令,已经看到有 HMaster 的进程,但是进 入到监控界面查看,没有节点信息:
最有可能原因(c )
A. HADOOP 服务未启动
B. HBase 服务未启动
C. HBase 处于安全模式
D. HBase 服务未安装
15、关于 SecondaryNameNode 哪项是正确的?(c )
A. 它是 NameNode 的热备
B. 它对内存没有要求
C. 它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间
D. 它是 NameNode 的热备,对内存有严格要求
16、关于 Hadoop 的运行机制过程顺序说法正确的是(a )
A. 作业提交--作业初始化--任务分配--任务的执行--任务进度和状态的更新--任务结束
B. 作业初始化--作业提交--任务分配--任务的执行--任务进度和状态的更新--任务结束
C. 任务分配--作业提交--作业初始化--任务的执行--任务进度和状态的更新--任务结束
D. 任务执行-作业提交--作业初始化--任务的分配--任务进度和状态的更新--任务结束
17、下面描述正确的是(bc )(多选)
A. HDFS 将数量众多的廉价机器使得硬件错误成为常态
B. HDFS 支持多种软硬件平台中的可移植性
C. HDFS 上的一个文件大小是G 或 T 数量级的,支持的文件数量达到千万数量级
D. HDFS 上的文件可以任意修改
18、YARN 服务组件包括(abcd )(多选)
A. NameManager
B. ApplicationMaster
C. Container
D. ResourceManager
19、下列属于 hadoop 的发行版本的是( ab)(多选)
A. Apache
B. Cloudera
C. Redhat
D. Centos
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。