一、大数据开发工作内容
从大数据开发的工作内容来看大数据开发主要负责大数据的大数据挖掘,数据清洗的发展,数据建模工作。
主要负责处理和大数据应用,结合大数据可视化分析工程师,挖掘出价值的数据,为企业提供业务发展支持。大数据开发工程师偏重建设和优化系统。
第一类是编写一些Hadoop、Spark的应用程序,第二类是对大数据处理系统本身进行开发。第二类工作的话通常大公司里才有,一般他们都会搞自己的系统或者再对开源的做些二次开发。
这种工作的话对理论和实践要求的都更深一些,也更有技术含量。随手截了一些招聘信息的图,关于大数据开发岗位具体的工作内容,现如今企业的要求基本如下:
大数据开发学习有一定难度,零基础入门首先要学习Java语言打基础,一般而言,Java学习SE、EE,需要一段时间;然后进入大数据技术体系的学习,主要学习Hadoop、Spark、Storm等。
除此之外,学习大数据开发需要学习的内容包括三大部分,分别是:
大数据基础知识、大数据平台知识、大数据场景应用。
大数据基础知识有三个主要部分:数学、统计学和计算机;
大数据平台知识:是大数据开发的基础,往往以搭建Hadoop、Spark平台为主;
目前,一个大数据工程师的月薪轻松过万,一个有几年工作经验的工程师薪酬在40万~160万元之间不等,而更顶尖的大数据技术人才则是年薪轻松超百万。
二、大数据方面技术
一是大数据平台本身,一般是基于某些Hadoop产品如CDH的产品部署后提供服务。部署的产品里面有很多的组件,如HIVE、HBASE、SPARK、ZOOKEEPER等。
二是ETL,即数据抽取过程,大数据平台中的原始数据一般是来源于公司内的其它业务系统,如银行里面的信贷、核心等,这些业务系统的数据每天会从业务系统抽取到大数据平台中,然后进行一系列的标准化、清理等操作,再然后经过一些建模生成一些模型给下游系统使用。
三是数据分析,在数据收集完成后基于这些数据要做一些什么样的处理,典型的如报表应用,那每天可能就是写SQL开发报表了;还有一些如风险监测等平台,都要基于大数据平台收集的数据来进行处理。
三、从事大数据,需掌握哪些技术
1、Java编程
Java语言是基础,可以编写Web应用、桌面应用、分布式系统、嵌入式系统应用等。Java语言有很多优点,它的跨平台能力赢得了很多工程师的喜爱。
2、Linux基础操作命令
大数据开发一般在Linux环境下进行。大数据工程师使用的命令主要在三方面:查看进程,包括CPU、内存;排查故障,定位问题;排除系统慢的原因等。
3、Hadoop
Hadoop中使用最多的是HDFS集群和MapReduce框架。HDFS存储数据,并优化存取过程。
MapReduce方便了工程师编写应用程序。
4、HBase
HBase可以随机、实时读写大数据,更适合于非结构化数据存储,核心是分布式的、面向列的Apache HBase数据库。HBase作为Hadoop的数据看,它的应用、架构和高级用法对大数据开发来说非常重要。
5、Hive
Hive作为Hadoop的一个数据仓库工具,方便了数据汇总和统计分析。
6、ZooKeeper
ZooKeeper是Hadoop和Hbase的重要组件,可以协调为分布式应用程序。ZooKeeper的功能主要有:配置维护、域名服务、分布式同步、组件服务。
7、Phoenix
Phoenix是一种开源的sql引擎,是用Java语言编写的。
8、Avro与Protobuf
Avro、Protobuf是适合做数据存储的数据序列化系统,有较丰富的数据结构类型,可以在多种不同的语言间进行通信。
9、Cassandra
Apache Cassandra是运行在服务器或者云基础设施上的可以为数据提供完美平台的数据库,具有高性能、可扩展性、高线性。
Cassandra支持数据中心间互相复制,低延迟、不受断电影响。它的数据模型有列索引、高性能视图和内置缓存。
10、Kafka
Kafka可以通过集群来提供实时的消息的分布式发布订阅消息系统,具有很高的吞吐量,主要是利用Hadoop的并行加载来统一线上、离线的消息处理。
11、Spark
Spark是专为大规模数据处理而设计的快速通用的计算引擎,其提供了一个全面、统一的框架用于管理各种不同性质的数据集和数据源的大数据处理的需求,大数据开发需掌握Spark基础、SparkJob、Spark RDD、spark job部署与资源分配、Spark shuffle、Spark内存管理、Spark广播变量、Spark SQL、Spark Streaming以及Spark ML等相关知识。
12、Flume
Flume是海量日志处理系统,具有高可用、高可靠、分布式的特点,可以对日志进行采集、聚合和传输。Flume可以定制数据发送方来收集数据,也可以对数据简单处理后写到数据接收方。
除了在这里讲到的所需要具备的大数据行业的技能,如果往后想要更加长远更加顺利的发展则还需要不断的去修炼自身的技术。