大数据运维的工作职责
一.集群管理
大数据需要分布式系统,也就是集群:Hadoop,Hbase,Spark,Kafka,Redis等大数据生态圈组建。
二.故障处理
1>.商用硬件使用故障是常态。
2>.区分故障等级,优先处理影响实时性业务的故障。
三.变更管理
1>.以可控的方式,高效的完成变更工作;
2>.包括配置管理和发布管理;
四.容量管理
1>.存储空间,允许链接数等都是容量概念;
2>.在多租户环境下,容量管理尤其重要;
五.性能调优
1>.不同组建的性能概念不一样,如kafka注重吞吐量,Hbase注重实用性可用性;
2>.需要对组建有深刻的理解
六.架构优化
1>.优化大数据平台架构,支持平台能力和产品的不断迭代;
2>.类似架构师的工作;
大数据运维所需的能力
一.DevOps
DevOps(英文Development和Operations的组合)是一组过程,方法和系统的统称,用于促进开发(应用程序/软件工
程),技术运营和质量保障(QA)部门之间的沟通,写作与整合。
二.硬件,OS,网络,安全的基础知识
大数据平台和组建设计范围广,各种都需要懂一点,这些知识出问题的时候不可能问人,因为别人也有自己的工作要
做。
三.脚本语言能力
Shell,SQL(DDL),Python.Java(加分)
四.大数据各个组件知识
设计思想。使用范围,底层架构,常用命令,常用配置或参数,常见问题处理方法。
五.工具能力
Zabbix,Open Falcon,Ganglia,ELK等,企业自研工具。我推荐使用集群自带的工具。
六.Trouble shooting能力
搜索能力(搜索引擎,stackoverflow等),java能力(异常堆栈要看得懂,最好能看懂源码),英文阅读能力。
七.意识,流程
良好的意识,什么能做什么不能做。同用的流程如ITIL,各企业也有自己的流程。
大数据运维的主要工作
一.运维三板斧
三板斧可以解决90%以上的故障处理工作。
1>.重启
重启有问题的机器或经常,使其正常工作。
2>.切换
主备切换或主主切换,链接正常工作的节点。
3>.查杀
查杀有问题的进程,链接等。
4>.三板斧的问题
第一:只能处理故障处理问题,不能解决性能调优,架构优化等问题;
第二:只能治标,不能治本;
5>..大数据运维和传统运维的不同
第一:传统运维面对的底层软硬件基本稳固,大数据运维面对的是商用硬件和复杂linux版本;
第二:传统运维面对的是单机架构为主,大数据运维面对复杂的分布式架构;
第三:传统运维大多维护闭源商业版系统,大数据运维通常面对开源系统,文档手册匮乏,对阅读源码要求高。
第四:大数据运维对自动化工具的依赖大大增加;
二.Iaas层(基础设置及服务)运维工作
一般中大型企业有自己的基础设施维护团队,这部分工作不会交给大数据运维来做。小公司可能需要大数据运维键值
这部分工作,主要关注三个方面:
1>.硬件
大数据系统大多使用廉价PC Server或虚拟机,硬件故障是常态,通过告警,日志,维护命令等识别故障,并支持硬
件更换。
2>.存储
大多使用PC Server挂本磁盘的存储方式,极少情况会使用SAN(存储区域网络)或NAS(网络附属存储),熟悉分区
,格式化,巡检等基本操作。
3>.网络
网络的配置变更更需要比较专业的知识,如有需要可学习CCNA,CCNP等认证课程,但网络硬件和配置出问题概率很
低,主要关注丢包,延时。
三.HDFS运维工作
1>.容量管理
第一:HDFS空间我使用超过80%要警惕,如果是多租户环境,租户的配额空间也能用完;
第二:熟悉hdfs,fsck,distcp等常用命令,会使用DataNode均衡器;
2>.进程管理
第一:NameNode的进程是重点
第二:熟悉dfsadmin等Ingles。怎么做NameNode高可用。
3>.故障管理
Hadoop最常见的故障就是硬盘损坏。
4>.配置管理
hdfs-site.xml中的参数设置。
四.MapReduce运维工作
1>.进程管理
第一:jobtracker进程故障概率比较低,有问题可以通过重启解决;
第二:了解一下HA的做法;
2>.配置管理
mapred-site.xml中的参数设置。
五.Yarn运维工作
1>.故障管理
主要是当任务异常这中止时看日志排查,通茶故障原因会集中在资源问题,权限问题中的一种。
2>.进程管理
ResourceManager主要是学会配置HA
NodeManager进程挂掉不重要,重启即可。
3>.配置管理
yarn-site.xml中的参数设置,主要分三块配置,scheduler的,ResourceManager的,NodeManager的。
六.Hive/Impala运维工作
1>.SQL问题排查
第一:结果不对,主要原因可能是SQL错误,数据不存在,UDF错误等,需要靠经验排查
第二:慢SQL,这类问题开发经常会找运维排查,有可能是劣势SQL,数据量大,也有可能是集群资源紧张;
2>.元数据管理
Hive和Impala公用的元数据,存在关系型数据库中。
七.其它组件
根据组件用途,特性,关注点的不用,运维工作也各不相同,如:
1>.HBase关注读写性能,服务的可用性
2>.Kafka关注吞吐量,负载均衡,消息不丢机制
3>.Flume关注屯度量,故障后的快速恢复