栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hadoop-压缩-优化-HA

hadoop-压缩-优化-HA

1. Hadoop中的压缩作为一种常用的优化手段,经常被用在什么场景下?

数据规模很大和工作负载密集的情况下, 比如说在处理Mapper, Reducer运行过程的数据时进行压缩, 以减少磁盘IO, 提高MR的运行速度

2. 如果想要使用压缩,Hadoop如何对某一种压缩编码格式进行取舍?

从多方面来看, 首先判断是否属于Hadoop自带, 其次需要看其是否支持切分, 换成压缩格式后, 原来的程序是否需要修改, 然后就是看性能了, 压缩速度和解压速度.

3. 你们公司常用的压缩方式有哪些?

Gzip
Bzip2
Lzo
Snappy…

4. 从哪些方面定位MR执行的效率(如何分析MR执行慢的原因)

一方面是看计算机性能, 如CPU, 内存, 磁盘健康, 网络等会影响MR的执行效率; 另一方面是靠I/O操作优化, 如果数据发生倾斜, Map和Reduce数设置不合理, 或者是Map运行时间太长, 导致Reduce等待时间过久, 又或者是MR需要处理的小文件过多, 还是处理大量的不可切片的超大压缩文件都会导致MR执行慢. 部分操作次数太多的话也会对MR的执行效率产生影响, 比如Spill次数过多, 或者是Merge次数过多都会影响效率.

5. 如果想对MR程序进行优化,应该从哪些方面入手以及可能用到的优化手段?

我们可以从六个方面入手: 数据输入, Map阶段, Reduce阶段, IO传输, 数据倾斜问题和常用的调优参数.
在数据输入方面, 优化手段可以采用在执行MR任务前合并小文件和采用CombineTextInputFormat来作为输入; 在Map阶段通过减少溢写(Spill)次数以及减少合并(Merge)次数才进行优化, 换壳在Map之后, 不影响业务逻辑的前提下, 先进性Combine处理, 从而减少I/O; 在Reduce阶段, 我们可以通过合理设置Map和Reduce数以及设置Map和Reduce共存, 尽量规避使用Reduce, 也可以通过合理设置Reduce端的Buffer来对MR程序进行优化; 在IO传输的阶段我们可以采用数据压缩的方式(通常我们使用的是Snappy+Lzo)以及使用SequenceFile二进制文件进行优化.

6. 在Hadoop针对小文件的处理方案有哪些?

我们在执行MR任务时, 会遇到很大合并小文件的场景, 我们需要在执行MR 任务之前将小文件进行合并, 大量的小文件会产生大量的Map任务, 增大Map任务装载次数, 而任务的装载比较耗时, 我们就需要在数据采集地时候, 就将小文件或小批数据合成大文件再上传HDFS; 我们也可以在业务处理之前进行优化, 再HDFS上使用MapReduce程序对小文件进行合并; 或者在MapReduce处理时, 采用CombineTextInputFormat来作为输入,进而提高效; 还有一种方法, 开启uber模式, 实现jvm重用.

7. 如何解决MR中Reduce的数据倾斜问题?

最简单的就是使用Map Join, 尽量避免使用Reduce Join; 其次也可以通过对原始数据进行抽样得到的结果集预设分区边界值, 或者也可以通过自定义分区来实现; 当然使用Combiner也可以大量地减小数据倾斜问题

8. 大概简述一下 Hadoop每一代版本的新特性?

Hadoop2.x新特性: 实现了集群间得的数据拷贝, 解决了小文件存档问题, 开启了回收站功能
Hadoop3.x新特性: 实现了多NN的HA架构, 提出了纠删码策略

9. 什么是Hadoop的HA?

所谓的HA(High Availablity), 就是高可用, 也就是7*24小时不中断服务

10. 描述一下HDFS-HA的工作机制?

通过多个NameNode消除单点故障

11. 如何实现HA的集群搭建?(用话术描述即可!!!)

先 在/opt/module/下创建文件夹ha, 然后将目前hadoop安装目录拷贝到/opt/module/ha下, 我们还需要删除一些多余的目录文件, 保证集群式一个初始化的状态, 需改相关的配置文件和每台机器的HADOOP_HOME的环境变量, 进行分发, 接着在三台机器的各个JournalNode节点上启动服务, 随即在hadoop102 的nn1上进行格式化, 并启动, 将nn1的元数据信息同分布到nn2和nn3上, 在另外两台机器上分别启动nn2和nn3, 我们可以通过web地址访问nn1 nn2 nn3, 最后在每台机器上启动DN, 将其中的一个nn切换成active状态, 查看是否切换成功, 如果成功的话, 就证明我们的高可用集群HDFS部分已经搭建完毕; 搭建Yarn高可用集群首先需要修改相关配置文件, 进行分发, 在任意的机器上启动Yarn, 通过访问web地址验证, 测试Yarn故障自动转移.

12. HDFS如何实现自动故障转移?

HDFS 要想实现故障自动转移需要依靠两个新组件: Zookeeper和ZKFailoverController(ZKFC)进程. 自动故障转移主要依赖于Zookeeper的故障检测, 现役NN选择机制, 以及ZKFC的健康监测和Zookeeper的会话管理. 当HDFS的HA集群开启时, 每一台NN都会绑定一个ZKFC服务, 充当自己的经纪人, ZKFC负责访问ZK集群, 在ZK集群中创建一个临时的数据节点, 对外提供服务, 为Active状态, 其余机器为StandBy状态. 接下来当NN挂掉后, ZKFC就会监测到NN的健康状态异常, 随即于ZK集群断开连接, 并且通知其他状态为StandBy的机器准备开始对外提供服务, 当其接收到通知后就开始准备, 那台机器先准备好就切换为Active状态, 在这之前先将之前的Active状态的机器kill掉, 就可以正常对外提供服务了.

13. 什么是脑裂问题?HDFS-HA中如何解决的脑裂问题?

出现了两台机器为Active状态, 在新节点正式成为Active状态之前, 远程登陆到之前状态为Active的机器上执行kill命令, 强行将之前Active状态的机器杀死., 然后新节点所在机器正常向外提供服务

14. YARN-HA 实现高可用的思路

搭建Yarn高可用集群首先需要修改相关配置文件, 进行分发, 在任意的机器上启动Yarn, 通过访问web地址验证, 测试Yarn故障自动转移

15. 简单说一下 联邦架构(HDFS Federation) 架构设计思想。(了解)

使用多个NameNode进行管理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327096.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号