计算机的基本工作就是处理数据,包括磁盘文件中的数据,通过网络传输的数据流或数据包,数据库中的结构化数据等。随着互联网、物联网等技术得到越来越广泛的应用,数据规模不断增加,TB、PB量级成为常态,对数据的处理已无法由单台计算机完成,而只能由多台机器共同承担计算任务。而在分布式环境中进行大数据处理,除了与存储系统打交道外,还涉及计算任务的分工,计算负荷的分配,计算机之间的数据迁移等工作,并且要考虑计算机或网络发生故障时的数据安全,情况要复杂得多。
举一个简单的例子,假设我们要从销售记录中统计各种商品销售额。在单机环境中,我们只需把销售记录扫描一遍,对各商品的销售额进行累加即可。如果销售记录存放在关系数据库中,则更省事,执行一个SQL语句就可以了。现在假定销售记录实在太多,需要设计出由多台计算机来统计销售额的方案。为保证计算的正确、可靠、高效及方便,这个方案需要考虑下列问题:
如何为每台机器分配任务,是先按商品种类对销售记录分组,不同机器处理不同商品种类的销售记录,还是随机向各台机器分发一部分销售记录进行统计,最后把各台机器的统计结果按商品种类合并?
大数据是我的研究方向之一,所以我来一下这个问题。
大数据产业链围绕数据展开,有数据采集、整理、传输、存储、安全、分析、呈现和应用,涉及到诸多学科的综合使用,不同的岗位需要的基础知识也不尽相同。下面我以大数据工程师岗位,粗粒度的介绍一下大数据的基础知识。
第一,操作系统知识。大数据平台往往搭建在Linux操作系统之上,所以大数据工程师要有Linux系列操作系统的知识。
第二,数据库基础。大数据一个重要的内容是数据存储,要掌握传统数据库知识,包括建库、建表、Sql语句的使用等等。当然在学习大数据的时候还要学习Nosql数据产品。
第三,网络基础。大数据的数据来源于网络,尤其是物联网系统,所以掌握网络基础知识对学习大数据来说非常重要。
下面的大数据核心术语来自Apache 软件基金会(ASF)的大数据开源项目,目前有350多个。解释完这些项目需要耗费大量时间,所以只挑选解释了50个核心而流行的术语,希望对你学习大数据有帮助。
Apache Kafka:命名于捷克作家卡夫卡,用于构建实时数据管道和流媒体应用。 它如此流行的原因在于能够以容错的方式存储、管理和处理数据流,据说还非常“快速”。 鉴于社交网络环境大量涉及数据流的处理,卡夫卡目前非常受欢迎。
Apache Mahout:Mahout 提供了一个用于机器学习和数据挖掘的预制算法库,也可用作创建更多算法的环境。 换句话说,机器学习极客的最佳环境。
虽然题主问的是大数据的入门,但在我看来“大数据”就是数据科学的一个高阶状态。以下内容中除个别情况,我基本上都会使用“数据科学”这个概念。
数据科学并没有一个独立的学科体系,统计学,机器学习,数据挖掘,数据库,分布式计算,云计算,信息可视化等技术或方法来对付数据。但从狭义上来看,我认为数据科学就是解决三个问题:
1. data pre-processing;
2. data interpretation; 3.data modeling and analysis.
大多数数据科学家每天都使用组合技能,其中一些是他们在工作当中自学的,也有可能通过其他途径学到的。他们有各自不同的背景。不是说你非要有什么学位证书才能证明你是数据科学家。你可以把本文的内容看作是指导你如何成为一名数据科学家。
数学
数学是数据科学的重要组成部分。从微积分到线性代数这些大学数学的基础知识,要确保你都能知道。你知道的越多,你也会越来越好。
当数据变得越来越庞大,也就意味着它越来越难处理。这时候你就必须使用数学来处理数据了。
别以为你在大学没上过这些课,你就可以不知道了。说到底你还得需要了解如何操作数据矩阵,算法数学背后的大致思路你也得知道。
Python大数据开发的思维导图如下:
编程语言
比较适合大数据编程语言的有以下几种:C/C++、Java、Scala和Python等,如果本身有技术栈,那么按照自己熟悉的语言走。假如没有那么我建议从Python这门语言入手,其学习反馈周期短,很容易上手。
Python相关学习资料可参考我另一:
https://www.wukong.com/question/6462208594099044621/
学习大数据需要的预备知识,其实也没有大家想象的那么多,接触过大数据技术的人都是知道,在大数据开发中用到的一些组件许多底层的一些知识都是用Java语言进行开发的,所以,这也是导致现在的大数据开发培训的课程很多都是以Java语言的学习开始的。
这里既然提到了学习大数据要预备哪些知识,我感觉需要预备的知识那就是最好有一些掌握Java相关的一下技术知识,当然,最好是能够在Java开发行业有一定的工作经验的人是更好的。
如果,是零基础的学员大家也不用过于担心害怕,因为现在的大多数的培训机构都是针对于这样的学员设计的大数据开发培训课程,只要是达到了大数据学习需求的学历和一定的思维逻辑的考察,那么学习大数据也是没有任何问题的。
请。
大数据包括两个层次,一是数据分析,二是技术实现。如果是做数据分析,需要掌握概率统计,时间数列分析,组合最优化,模糊数学,数字信号处理,数据结构,计算方法等内容,主要是数学。如果是做技术实现,则需要掌握数据库,一些算法语言及工具。这两者最好都能有所了解。
初期需要学习java和linux,这是学习大数据的基础
然后学习大数据技术,完整的大数据课程给你分享一份,希望对你有所帮助
此课程为顺序学习,有不了解的可以联系我
1.linux基本操作,懂shell脚本更好
2.java 基础扎实, j2se
如果1会,基本搭建服务器都没问题
2.基本写代码,读代码没问题