想转IT方向,选择编程前景好还是大数据?s咋VCX
今天我们就来看一位专业人士对于编程和大数据的解读。
从就业而言,大数据和编程并不是什么冲突的岗位,而事实上大数据岗位也对编程能力也有不低的要求。通常我们所说的大数据工程师, 普遍指的是Hadoop生态系的开发者。
随着时间推移,大数据行业也经过了很多的变化,现在的热点也已经由大数据转向了AI,而大数据行业进入了一个相对平稳的发展期。其实也很容易理解,以前缺的是数据和处理数据的解决方案,而现在的AI就是一个利用数据产出结果的方向。
从工作性质上来看,大数据岗位大致分成四类:基础架构,ETL,数据可视化,数据分析。
1
基础架构
公司由于性质的不同,数据也不同,所以数据架构和设计方法,引入的组件也有所不同,需要有人设计,搭建和维护相应的基础架构。
关于这部分现在也有不少商用的应用,比如CDH, 它和以前另外一家Hortonworks合并了,其实他们两的合并也说明市场的一些反应。架构方法上不少使用的Lambda架构,这儿不细说了
2
ETL
ETL, 是Extract-Transform-Load的缩写,最常见的一些情况是从某一个系统把数据导到另外一个系统,导入的过程时会对数据进行一些加工,做一些数据的增强, 数据清洗,数据规整等工作。如果你对大数据开发感兴趣,想系统学习大数据的话,可以加入大数据技术学习交流扣扣群:458数字345数字782,欢迎添加,私信管理员,了解课程介绍,获取学习资源
这是一个非常常见的工作,其实绝大部分从事大数据的开发者都在做的一个事,区别是有的人只做这个,有的人部分工作在做这个,也或许从来没有意识到自己的大数据工作都是ETL的工作。这部分工作的无可避免,因为常见的数据来源,主要来自数据库(通常是关系型数据库)和日志数据
业务数据库, 业务数据的设计会遵从OLAP的设计,而后面我们所说的数据可视化和数据分析数据会遵从OLTP的数据设计,更多的冗余换来更快的处理时间,这就涉及到之间转换的ETL
日志总是以一种非结构化数据的方式存在,总是需要转换为结构化数据,还有一种和MySQL相关的比如binlog之类也可以归结到日志的加工
总而言之,这部分的工作虽然枯燥,但是非常重要又必不可少。
3
数据可视化
数据可视化可以归结到数据分析中,但很多公司的数据分析仅到此就结束了,所以特别列出来
例子:数据可视化
4
数据分析
利用现有的数据,对以前的数据进行分析汇总,比如支付系统的对账, 也有对未来的行为进行预测,比如ML/DL 系统也是一种数据分析
==================================
Q&A
大数据需要什么编程语言?
如果希望从事基础架构和ETL类,主要是Java+Scala为主,Python为辅。
如果希望从事数据可视化,可以根据前端的要求来, HTML + JS + CSS
如果希望从事分析类,基于现有的大数据架构的分析,还Java+Scala为主,Python为辅。如果是从事AI/ML,那么现阶段Python为主, C++(Tensorflow等底层实现)为辅。
而高手从来不问要选什么,他全都会!
大数据常用的技术?
我们说大数据普遍就在说基于Hadoop生态系的基础架构和ETL类的技术体系。
Hadoop,Hadoop有三个组件,MapReduce+HDFS+YARN, 现在手写MapReduce的已经很少,Hadoop能用的常见的是HDFS(分布式文件系统), YARN(资源调度系统)
Hive, 可以理解为一个上层系统操作Hadoop的MapReduce的操作,常用来处理一些大批量的Batch数据数据仓库工具
Pig,很少见到还有新开的项目在用了
Spark, 基于内存的大规模数据处理而设计的快速通用的计算引擎(此处要划重点)
Flink, Storm,Spark Steaming 流式计算(此处要划重点)
Flume, 日志收集
Hbase, Cassandra 等分布式数据库
Kafka,消息系统(此处要划重点)
网友评论