持续分享有用、有价值、精选的优质大数据面试题
致力于打造全网最全的大数据面试专题题库
1、集群线上扩容如何达到自动化?线上扩容,规模正常都以 10+以上,如果都以课堂所示,人肉操作,时间投入与产出比不匹配,人力造成很大的不必要浪费,想学习老师线上集群实际扩容的方案。
参考答案:
课堂所示兼顾了小白同学,所以是手把手纯人肉搭建,产线环境扩容数量少则几十多则上百,人肉肯定不行,我们公司的运维分为 IAAS 运维、大数据运维、应用运维,大数据运维工程师在扩容集群时,需要向 IAAS 运维工程师以工单的方式申请服务器并提出自己的需求, IAAS 运维工程师在提供服务器时不管是新采购服务器还是其他集群退役的服务器都需要重装系统,重装系统的镜像是针对大数据定制的,镜像包含了大数据运维工程师的通用需求以及安装操作系统后的网络、磁盘以及其他设置,比如关闭防火墙、时钟同步、同构磁盘挂载、关闭大透明页、关闭 SWAP、公用 YUM 源、禁用 SELinux 等模式化操作,大数据运维工程师收到服务器后准备工作基本准备完毕了,进行少量准备工作就可以直接进入了 CM 可视化批量安装模式,比如脚本批量设置hostname、脚本同步/etc/hosts 文件等; 当然如上所说的 IAAS 操作,如关闭防火墙、时钟同步、同构磁盘挂载、关闭大透明页、关闭 SWAP、公用YUM 源、禁用 SELinux 都可以脚本化,无非就是使用 SSH 通讯方式设置,这就需要大数据运维同学熟练使用 shell 了。
2、已知一个 HDFS 的目录,想知道此目录下的文件数,而且存储于哪些DataNode 节点上。
参考答案:
1.查看文件数使用 count 命令,如下查看/ops 目录,目录数为 9606,文件数为 1353 万+,总文件大小为 9.7P
2.查看/ops/test 目录下的文件存储的位置hdfs fsck /ops/test -files -blocks -locations -racks
3、DataNode 单节点,存储容量大小与当前节点上的 CPU,内存硬件之间有
什么样的关系,磁盘扩容很容易,但这不意味着单节点上数据盘就可以无限地
扩容,因此在这方面,有什么实际线上的经验分享,即这三者间可以遵循怎样
合适的关系?
参考答案:
从我们内部实践来说没有发现三者之间的规律,因为大数据业务每个公司都不一样,有的计算是 CPU 密集型的,有的计算是内存密集型的、有的计算是IO 密集型的;我们的服务器都是中高配置,每个服务器的磁盘是 4Tx10、 CPU24core、 128G 内存。
4、老师线上 6000+规模集群,抛开一些其它组件集群,仅讨论 HDFS 数据存储集群,保守理应也在有 3000 节点左右,想知道这些存储节点只是单集群NameNode 集群来维护吗?还是多集群独立维护的,如果是多集群存储数据,它们之间数据是如何打通进行关联的?如果仅是一个集群的话,我想知道这个集群的 NameNode 上的配置,是如何 Hold 住这些数据 DataNode的?
参考答案:
我们的集群也是用的 Cloudera 公司的,我们付了费用, Cloudera 没有保障说 CM 能够纳管 1000 节点以上的集群,再加上我们的机房有容量限制,所以我们是建了多套集群,最大集群有 800+节点,最小集群也有 300+节点;800+datanode 下, namenode 是可以支撑的,像一些互联网大厂,字节跳动、京东等他们的单集群规模有上万节点,此时就需要对 hdfs 进行深度定制了,他们改了很多源码,而且有 200+高级技术维护人员;
多集群建设要考虑业务情况,比如我们公司有 10 个以上业务, 5 大核心集群,按业务相关情况划分集群,不过也难免有跨集群的作业,目前公司内部自研发了大数据采集交换平台,你也可以使用 distcp 进行数据对拷,目前我们也正在准备自研发多集群并行混算平台。
5、HDFS 存储节点上的数据,存储压缩格式是如何选取的,默认采用哪种文件存储类型与存储格式,冷热数据如何界定的?
参考答案:
我们产线环境用了 gz 和 snappy 压缩格式, gz 用于不常用的冷数据,snappy 用于热数据;冷热数据是跟业务相关的,后续集群治理的课程中也有冷热数据的区分。
6、课堂上看到 HDFS 集群的 DataNode 与 HBASE 是集成在一起部署的,我好奇, HBase 面向的都是高频率读写的业务,老师确定部署一起后,线上业务没有出现过问题吗?
参考答案:
你应该是理解错了, HBase 不能跟 YARN 在一起部署; HBase 需要跟HDFS 部署在一起的,这样可以利用数据本地性提升 IO 性能,并且可以降低网络延迟,降低带宽负载。
7、Yarn 集群计算层,目前集群面向用户使用群体少,故白天仅是数据写入,集群 CPU 资源都较为存在大量冗余状态,但对于凌晨执行集中高频提交跑批作业计算任务时,集群的 CPU 资源明显不够,甚至引起节点 CPU 负载过高导致节点的宕机,从而造成集群雪崩。简单来说,白天集群资源使用率在5%,凌晨执行高频跑批作业任务时,资源使用率上到 100%,引起集群宕机。在不增加资源的前提下,资源老师会如何划分队列?
参考答案:
这个划分队列无法解决根本问题,建议将业务划分优先级,错开时间执行。详情课程中有讲解。
8、某一台 CDH 物理机 12 块 RAID0 硬盘,如果其中有 4 块 RAID0 硬盘同
时损坏,请问接下来大数据运维人员的详细处理流程是什么?
参考答案:
HDFS 有个参数 dfs.datanode.failed.volumes.tolerated,值为 0 的时候表示当有任何盘损坏后 datanode 则停止服务,如果 4 快盘同时损坏了,此时datanode 进程已经停止了,你可以修改 hdfs-site.xml 配置文件将损坏的磁盘路径去掉,重启 datanode 即可,然后进入磁盘报修流程,待磁盘更换后,停止 datanode,在 hdfs-site.xml 配置文件中假如新的磁盘,启动 datanode 即可。
9、CDH 如果为开发人员提供 HIVESERVER2 服务,可以让开发人员通过beeline 命令访问?
参考答案:
是的, beeline 使用 JDBC 协议来连接 HIVESERVER2
10、在晚高峰期 HDFS 集群会出现某些 datanode 不稳定的情况,频繁有datanode 脱离节点,该如何处理呢?
参考答案:
需要找到 datanode 的具体原因, datanode 相对来说还是比较稳定的,需要看下是否是 GC 问题,如果是的话适当调大内存,再看下最大的打开文件数或进程数的限制是否太小。