大数据相关的技术组件包括分布式存储 (结构化与非结构化), 缓存, 查询, 计算(实时与离线), 监控与管理, 资源调度等, 为了保障各技术开发的专业性, 一般以开发工作的内容进行划分: Hadoop 开发工程师(离线计算), 实时计算工程师, 数据处理工程师, 文本挖掘工程师(非结构化数据处理) 等. 本文将介绍大数据开发工程师的职责分工及技能要求. 如下图所示:
大数据开发工程师
Hadoop 开发工程师需要精通包括: HDFS,HBase,Hive,Impala,Zookeeper,YARN,Map/Reduce 等在内的所有组件部署, 调优与开发. Hadoop 技术应用广泛, 开发过程中还会涉及 Hadoop 版本的快速迭代升级, 需要和 Hadoop 运维工程师协同开展工作.
实时计算所涉及的技术包括 Spark,Storm 两大核心组件, 而 Spark 与 Storm 组件的开发语言都各自不尽相同, 这无疑大大增加了实时计算工程师的开发难度, 除了精通 Java 之外, 还必须精通 Scala(Spark 是由 Scala 写成),SparkSQL 和 SparkStreaming.
以上技术都是针对结构化和半结构化数据的开发处理, 非结构化数据的开发处理一直都是相对更繁琐的工作. 比如, 文本挖掘工程师的工作是对非结构化数据进行抽取, 解析, 建立全文索引等, 使非结构化数据转化成为有价值的结构化或半结构化数据. 数据处理工程师主要负责分布式存储与计算平台中的数据处理与传输, 承担着 "数据搬运工" 的角色, 不管是结构化或半结构化数据还是非结构化数据, 一般都会使用到 Kafka 或 MQ 等组件进行数据的解析与传输.
来源: http://www.jianshu.com/p/57d675ca985e