大数据分析主要面向于离线计算。负责数据分析、报表统计等工作,重于数据价值的体现;数据的ETL调度,即E抽取、T转换、L加载,着重于离线数据的流转。虽然工作形式比较单一,但日常需求比较多,尤其是节假日的数据分析工作对时间要求也是极为紧迫。
为什么大数据行业,大部分岗位都是做离线数仓的工作,写HiveSQL的?
我在大数据实习的第一份工作就是大数据分析,目前很多实习生来了也都是安排数据分析工作。因为这一块工作偏向于业务,对技术水平要求不是很严格,入手比较简单。大部分的工作都是数据库SQL开发,经过指导很快就能开始工作。
其次,离线数据量大,数据的清洗、分层汇聚、准确性验证都是很需要人力和时间的。同时,业务需求量多,离线数据需要通过统计、同比、环比等分析手段,高效地支撑客户的营销决策以及对外变现,能快速为公司创造效益。所以,公司的业务结构和运营体系决定了需要大量的大数据分析岗位。
技术栈
编程语言:会则锦上添花,不会也可工作,但是建议学一点Python、Java。
大数据技术:Hadoop、HDFS、Hive、Hbase、ETL调度等。
其他:Shell、Linux操作、SQL。
大数据开发
大数据开发主要面向于实时计算。主要使用Java、Scala完成Flink、Spark的应用开发。相对于大数据分析来说,工作范围比较广,技术要求比较高,同时工作形式也比较灵活,可以通过不同的技术选型来制定多种解决方案,而且工作也没有那么繁杂。
一般公司大数据开发岗位比较少,大数据处理引擎和大数据平台产品开发除外。在我们十几个人大数据团队中,大部分都是大数据分析岗位,大数据开发就我自己形单影只。
目前,我的主要工作内容:
数据的接入:将数据量1万亿/天的二进制数据根据规范解析成明文,放于Kafka。主要是对Java多线程、JVM、NIO的应用。
流处理开发:Flink、Spark、IBMStreams应用开发。开发语言:Scala、SPL。
数据留存:将1万亿/天、300T大小的数据存放于HDFS,并加载到Hive。技术选型:Flume。
爬虫开发:结合营销场景采集数据,百万级数据量/天。技术选型:Scrapy。
所以,大数据开发主要是编程开发。和传统的Java开发的区别就是,Java开发面向于项目工程,模块结构比较庞大复杂,需要多人协同完成;大数据开发面向于单个应用场景的解决方案,通常就是几百行代码,通常一人即可完成。
技术栈
编程语言:主要语言是Java、Scala,需要有很强的编程能力。
大数据技术:主要是Flink、Spark、Kafka、Redis、Hadoop、HDFS、Yarn。
其他:Shell、Linux。
大数据运维
大数据运维主要是监控大数据平台、应用程序的健康状态,需要对紧急情况及时做出反应。大数据运维的工作比较辛苦,经常需要熬夜值班。要求运维工作者需要对集群、主机有一定的了解,同时也具有日志分析、问题跟踪解决的能力。
我负责大数据运维工作的时候,基本上电脑不离身,不是坐在电脑前就是背着电脑走在路上,除此之外,还要时常接受告警短信的轰炸。
技术栈
大数据平台使用、Linux操作、主机、网络、调度等。