大数据常见问题整理

讲述HDFS上传文件和读文件的流程

大数据常见问题整理

HDFS 上传流程  
过程解析:详解
这里描述的 是一个256M的文件上传过程 
① 由客户端 向 NameNode节点节点 发出请求
②NameNode 向Client返回可以可以存数据的 DataNode 这里遵循  机架感应  原则

③客户端 首先 根据返回的信息 先将 文件分块(Hadoop2.X版本 每一个block为 128M 而之前的版本为 64M)
④然后通过那么Node返回的DataNode信息 直接发送给DataNode 并且是 流式写入  同时 会复制到其他两台机器
⑤dataNode 向 Client通信 表示已经传完 数据块 同时向NameNode报告
⑥依照上面(④到⑤)的原理将 所有的数据块都上传结束 向 NameNode 报告 表明 已经传完所有的数据块 

HDFS在上传文件的时候,如果其中一个块突然损坏了怎么办 其中一个块坏了,只要有其它块存在,会自动检测还原。

NameNode的作用 namenode总体来说是管理和记录恢复功能。
比如管理datanode,保持心跳,如果超时则排除。
对于上传文件都有镜像images和edits,这些可以用来恢复

NameNode在启动的时候会做哪些操作 NameNode启动的时候,会加载fsimage,NameNode启动过程fsimage加载过程

Fsimage加载过程完成的操作主要是为了:
1.         从fsimage中读取该HDFS中保存的每一个目录和每一个文件
2.         初始化每个目录和文件的元数据信息
3.         根据目录和文件的路径,构造出整个namespace在内存中的镜像
4.         如果是文件,则读取出该文件包含的所有blockid,并插入到BlocksMap中。
整个加载流程如下图所示:

大数据常见问题整理

 

如上图所示,namenode在加载fsimage过程其实非常简单,就是从fsimage中不停的顺序读取文件和目录的元数据信息,并在内存中构建整个namespace,同时将每个文件对应的blockid保存入BlocksMap中,此时BlocksMap中每个block对应的datanodes列表暂时为空。当fsimage加载完毕后,整个HDFS的目录结构在内存中就已经初始化完毕,所缺的就是每个文件对应的block对应的datanode列表信息。这些信息需要从datanode的blockReport中获取,所以加载fsimage完毕后,namenode进程进入rpc等待状态,等待所有的datanodes发送blockReports。

NameNode的HA NameNode的HA一个备用,一个工作,且一个失败后,另一个被激活。他们通过journal node来实现共享数据

NameNode和DataNode之间有哪些操作 这个问题有些歧义。操作具体可以查看hadoop命令,应该超不出命令汇总
Hadoop Shell命令字典(可收藏)
?mod=viewthread&tid=6983

hadoop高级命令详解
?mod=viewthread&tid=14829

Hadoop的作业提交流程     Hadoop2.x Yarn作业提交(客户端)
    ?mod=viewthread&tid=9498
    Hadoop2.x Yarn作业提交(服务端)
    ?mod=viewthread&tid=9496

    更多:
    hadoop作业提交脚本分析(1)
    ?mod=viewthread&tid=6954

hadoop作业提交脚本分析(2)
?mod=viewthread&tid=6956

Hadoop怎么分片 如何让hadoop按文件分片
?mod=viewthread&tid=14549

Hadoop分块与分片

如何减少Hadoop Map端到Reduce端的数据传输量 减少传输量,可以让map处理完,让同台的reduce直接处理,理想情况下,没有数据传输

Hadoop的Shuffle 彻底了解mapreduce核心Shuffle--解惑各种mapreduce问题
?mod=viewthread&tid=7078

hadoop代码笔记 Mapreduce shuffle过程之Map输出过程((1)
?mod=viewthread&tid=10335

HMaster的作用 hmaster的作用
为region server分配region.
负责region server的负载均衡。
发现失效的region server并重新分配其上的region.
Gfs上的垃圾文件回收。
处理schema更新请求。
更多
region server and hmaster server

HBase的操作数据的步骤 Hbase写数据,存数据,读数据的详细过程
?mod=viewthread&tid=10886‘

Innodb的二进制文件和Redo日志的区别 1 二进制日志记录所有引擎的日志,而重做日志只记录InnoDB;
2 二进制日志记录事务的具体操作内容,而后者记录每个页更改的物理情况;
3 前者用于point-in-time恢复,后者用于crash recovery;如果mysql发生介质损坏,则需要从备份中恢复然后应用binary log执行point-in-time recovery

spark mr和spark区别,怎么理解spark-rdd

Mr是文件方式的分布式计算框架,是将中间结果和最终结果记录在文件中,map和reduce的数据分发也是在文件中。

spark是内存迭代式的计算框架,计算的中间结果可以缓存内存,也可以缓存硬盘,但是不是每一步计算都需要缓存的。

Spark应用转换流程

1、spark应用提交后,经历了一系列的转换,最后成为task在每个节点上执行

2、RDD的Action算子触发Job的提交,生成RDD DAG

3、由DAGScheduler将RDD DAG转化为Stage DAG,每个Stage中产生相应的Task集合

4、TaskScheduler将任务分发到Executor执行

5、每个任务对应相应的一个数据块,只用用户定义的函数处理数据块

Spark-rdd是一个数据的分区记录集合………………

Driver运行在Worker上

通过org.apache.spark.deploy.Client类执行作业,作业运行命令如下:

作业执行流程描述:

1、客户端提交作业给Master

2、Master让一个Worker启动Driver,即SchedulerBackend。Worker创建一个DriverRunner线程,DriverRunner启动SchedulerBackend进程。

3、另外Master还会让其余Worker启动Exeuctor,即ExecutorBackend。Worker创建一个ExecutorRunner线程,ExecutorRunner会启动ExecutorBackend进程。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgxfwj.html