1.学习大数据需要掌握哪些知识
大数据技术体系庞杂,基础技术覆盖数据采集、数据预处理、分布式存储、NOSQL数据库、多模式计算(批处理、在线处理、实时流处理、内存处理)、多模态计算(图像、文本、视频、音频)、数据仓库、数据挖掘、机器学习、人工智能、深度学习、并行计算、可视化等各种技术范畴和不同的层面。
另外大数据应用领域广泛,各领域采用技术的差异性还是比较大的。短时间很难掌握多个领域的大数据理论和技术,建议从应用切入、以点带面,先从一个实际的应用领域需求,搞定一个一个技术点,有一定功底之后,再举一反三横向扩展,这样学习效果就会好很多。
2.大数据入门需学习哪些基础知识
前言,学大数据要先换电脑:
保证电脑4核8G内存64位操作系统,尽量有ssd做系统盘,否则卡到你丧失信心。硬盘越大越好。
1,语言要求
java刚入门的时候要求javase。
scala是学习spark要用的基本使用即可。
后期深入要求:
java NIO,netty,多线程,ClassLoader,jvm底层及调优等,rpc。
2,操作系统要求
linux 基本的shell脚本的使用。
crontab的使用,最多。
cpu,内存,网络,磁盘等瓶颈分析及状态查看的工具。
scp,ssh,hosts的配置使用。
telnet,ping等网络排查命令的使用
3,sql基本使用
sql是基础,hive,sparksql等都需要用到,况且大部分企业也还是以数据仓库为中心,少不了sql。
sql统计,排序,join,group等,然后就是sql语句调优,表设计等。
4,大数据基本了解
Zookeeper,hadoop,hbase,hive,sqoop,flume,kafka,spark,storm等这些框架的作用及基本环境的搭建,要熟练,要会运维,瓶颈分析。
5,mapreduce及相关框架hive,sqoop
深入了解mapreduce的核心思想。尤其是shuffle,join,文件输入格式,map数目,reduce数目,调优等。
6,hive和hbase等仓库
hive和hbase基本是大数据仓库的标配。要回用,懂调优,故障排查。
hbase看浪尖hbase系列文章。hive后期更新。
7,消息队列的使用
kafka基本概念,使用,瓶颈分析。看浪尖kafka系列文章。
8,实时处理系统
storm和spark Streaming
9,spark core和sparksql
spark用于离线分析的两个重要功能。
10,最终方向决策
a),运维。(精通整套系统及故障排查,会写运维脚本啥的。)
b),数据分析。(算法精通)
c),平台开发。(源码精通)
自学还是培训?
无基础的同学,培训之前先搞到视频通学一遍,防止盲目培训跟不上讲师节奏,浪费时间,精力,金钱。
有基础的尽量搞点视频学基础,然后跟群里大牛交流,前提是人家愿意,
想办法跟大牛做朋友才是王道。
3.大数据需要掌握多少知识
一、Java编程
Java语言是基础,可以编写Web应用、桌面应用、分布式系统、嵌入式系统应用等。Java语言有很多优点,它的跨平台能力赢得了很多工程师的喜爱。
二、linux基础操作命令
大数据开发一般在Linux环境下进行。
大数据工程师使用的命令主要在三方面:查看进程,包括CPU、内存;排查故障,定位问题;排除系统慢的原因等。
三、hadoop
Hadoop中使用最多的是HDFS集群和MapReduce框架。
HDFS存储数据,并优化存取过程。
MapReduce方便了工程师编写应用程序。
四、HBase
HBase可以随机、实时读写大数据,更适合于非结构化数据存储,核心是分布式的、面向列的Apache HBase数据库。
HBase作为Hadoop的数据看,它的应用、架构和高级用法对大数据开发来说非常重要。
五、Hive
Hive作为Hadoop的一个数据仓库工具,方便了数据汇总和统计分析。
六、ZooKeeper
ZooKeeper是Hadoop和Hbase的重要组件,可以协调为分布式应用程序。
ZooKeeper的功能主要有:配置维护、域名服务、分布式同步、组件服务。
七、phoenix
phoenix是一种开源的sql引擎,是用Java语言编写的。
八、Avro与Protobuf
Avro、Protobuf是适合做数据存储的数据序列化系统,有较丰富的数据结构类型,可以在多种不同的语言间进行通信。
九、Cassandra
Apache Cassandra是运行在服务器或者云基础设施上的可以为数据提供完美平台的数据库,具有高性能、可扩展性、高线性。
Cassandra支持数据中心间互相复制,低延迟、不受断电影响。它的数据模型有列索引、高性能视图和内置缓存。
十、Kafka
Kafka可以通过集群来提供实时的消息的分布式发布订阅消息系统,具有很高的吞吐量,主要是利用Hadoop的并行加载来统一线上、离线的消息处理。
十一、Chukwa
Chukwa是一个分布式的数据采集监视系统,具有可伸缩性和健壮性。
Chukwa的工具包可以对结果进行显示、监测、分析,充分使用收集到的数据。
十二、Flume
Flume是海量日志处理系统,具有高可用、高可靠、分布式的特点,可以对日志进行采集、聚合和传输。
Flume可以定制数据发送方来收集数据,也可以对数据简单处理后写到数据接收方。
4.大数据学习入门都需要学什么
1. 数学知识:数学知识是数据分析师的基础知识。
①对于初级数据分析师,了解一些描述统计相关的基础内容,有一定的公式计算能力即可,了解常用统计模型算法则是加分。
②对于高级数据分析师,统计模型相关知识是必备能力,线性代数(主要是矩阵计算相关知识)最好也有一定的了解。
③而对于数据挖掘工程师,除了统计学以外,各类算法也需要熟练使用,对数学的要求是最高的。
2. 分析工具
①对于初级数据分析师,玩转Excel是必须的,数据透视表和公式使用必须熟练,VBA是加分。另外,还要学会一个统计分析工具,SPSS作为入门是比较好的。
②对于高级数据分析师,使用分析工具是核心能力,VBA基本必备,SPSS/SAS/R至少要熟练使用其中之一,其他分析工具(如Matlab)视情况而定。
③对于数据挖掘工程师……嗯,会用用Excel就行了,主要工作要靠写代码来解决呢。
3. 编程语言
①对于初级数据分析师,会写SQL查询,有需要的话写写Hadoop和Hive查询,基本就OK了。
②对于高级数据分析师,除了SQL以外,学习Python是很有必要的,用来获取和处理数据都是事半功倍。当然其他编程语言也是可以的。
③对于数据挖掘工程师,Hadoop得熟悉,Python/Java/C++至少得熟悉一门,Shell得会用……总之编程语言绝对是数据挖掘工程师的最核心能力了。
4. 业务理解
业务理解说是数据分析师所有工作的基础也不为过,数据的获取方案、指标的选取、乃至最终结论的洞察,都依赖于数据分析师对业务本身的理解。
①对于初级数据分析师,主要工作是提取数据和做一些简单图表,以及少量的洞察结论,拥有对业务的基本了解就可以。
②对于高级数据分析师,需要对业务有较为深入的了解,能够基于数据,提炼出有效观点,对实际业务能有所帮助。
③对于数据挖掘工程师,对业务有基本了解就可以,重点还是需要放在发挥自己的技术能力上。
5. 逻辑思维
①对于初级数据分析师,逻辑思维主要体现在数据分析过程中每一步都有目的性,知道自己需要用什么样的手段,达到什么样的目标。
②对于高级数据分析师,逻辑思维主要体现在搭建完整有效的分析框架,了解分析对象之间的关联关系,清楚每一个指标变化的前因后果,会给业务带来的影响。
③对于数据挖掘工程师,逻辑思维除了体现在和业务相关的分析工作上,还包括算法逻辑,程序逻辑等,所以对逻辑思维的要求也是最高的。
6. 数据可视化
数据可视化说起来很高大上,其实包括的范围很广,做个PPT里边放上数据图表也可以算是数据可视化,所以我认为这是一项普遍需要的能力。
①对于初级数据分析师,能用Excel和PPT做出基本的图表和报告,能清楚的展示数据,就达到目标了。
②对于高级数据分析师,需要探寻更好的数据可视化方法,使用更有效的数据可视化工具,根据实际需求做出或简单或复杂,但适合受众观看的数据可视化内容。
③对于数据挖掘工程师,了解一些数据可视化工具是有必要的,也要根据需求做一些复杂的可视化图表,但通常不需要考虑太多美化的问题。
7. 协调沟通
①对于初级数据分析师,了解业务、寻找数据、讲解报告,都需要和不同部门的人打交道,因此沟通能力很重要。
②对于高级数据分析师,需要开始独立带项目,或者和产品做一些合作,因此除了沟通能力以外,还需要一些项目协调能力。
③对于数据挖掘工程师,和人沟通技术方面内容偏多,业务方面相对少一些,对沟通协调的要求也相对低一些。
8. 快速学习
无论做数据分析的哪个方向,初级还是高级,都需要有快速学习的能力,学业务逻辑、学行业知识、学技术工具、学分析框架……数据分析领域中有学不完的内容,需要大家有一颗时刻不忘学习的心。