如何入门大数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何入门大数据相关的知识,希望对你有一定的参考价值。

大数据
数据科学并没有一个独立的学科体系,统计学,机器学习,数据挖掘,数据库,分布式计算,云计算,信息可视化等技术或方法来对付数据。
但从狭义上来看,我认为数据科学就是解决三个问题:
1. data pre-processing;(数据预处理)
2. data interpretation;(数据解读)
3.data modeling and analysis.(数据建模与分析)
这也就是我们做数据工作的三个大步骤:
1、原始数据要经过一连串收集、提取、清洗、整理等等的预处理过程,才能形成高质量的数据;
2、我们想看看数据“长什么样”,有什么特点和规律;
3、按照自己的需要,比如要对数据贴标签分类,或者预测,或者想要从大量复杂的数据中提取有价值的且不易发现的信息,都要对数据建模,得到output。
这三个步骤未必严谨,每个大步骤下面可能依问题的不同也会有不同的小步骤,但按我这几年的经验来看,按照这个大思路走,数据一般不会做跑偏。
这样看来,数据科学其实就是门复合型的技术,既然是技术就从编程语言谈起吧,为了简练,只说说R和Python。但既然是荐数据科学方面的书,我这里就不提R/Python编程基础之类的书了,直接上跟数据科学相关的。
R programming
如果只是想初步了解一下R语言已经R在数据分析方面的应用,那不妨就看看这两本:
R in action:我的R语言大数据101。其实对于一个没有任何编程基础的人来说,一开始就学这本书,学习曲线可能会比较陡峭。但如果配合上一些辅助材料,如官方发布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的问题集(Newest ‘r’ Questions),遇到复杂的问题可在上面搜索,总会找到解决方案的。这样一来,用这本书拿来入门学习也问题不大。而且这本书作者写得也比较轻松,紧贴实战。
Data analysis and graphics using R:使用R语言做数据分析的入门书。这本书的特点也是紧贴实战,没有过多地讲解统计学理论,所以喜欢通过情境应用来学习的人应该会喜欢这本入门书。而且这本书可读性比较强,也就是说哪怕你手头没电脑写不了代码,有事没事拿出这本书翻一翻,也能读得进去。
但如果你先用R来从事实实在在的数据工作,那么上面两本恐怕不够,还需要这些:
Modern applied statistics with S:这本书里统计学的理论就讲得比较多了,好处就是你可以用一本书既复习了统计学,又学了R语言。(S/Splus和R的关系就类似于Unix和Linux,所以用S教程学习R,一点问题都没有)
Data manipulation with R:这本书实务性很强,它教给你怎么从不同格式的原始数据文件里读取、清洗、转换、整合成高质量的数据。当然和任何一本注重实战的书一样,本书也有丰富的真实数据或模拟数据供你练习。对于真正从事数据处理工作的人来说,这本书的内容非常重要,因为对于任何研究,一项熟练的数据预处理技能可以帮你节省大量的时间和精力。否则,你的研究总是要等待你的数据。
R Graphics Cookbook:想用R做可视化,就用这本书吧。150多个recipes,足以帮你应付绝大多数类型的数据。以我现在极业余的可视化操作水平来看,R是最容易做出最漂亮的图表的工具了。
An introduction to statistical learning with application in R:这本书算是著名的the element of statistical learning的姊妹篇,后者更注重统计(机器)学习的模型和算法,而前者所涉及的模型和算法原没有后者全面或深入,但却是用R来学习和应用机器学习的很好的入口。
A handbook of statistical analysis using R:这本书内容同样非常扎实,很多统计学的学生就是用这本书来学习用R来进行统计建模的。
Python
Think Python,Think Stats,Think Bayes:这是Allen B. Downey写的著名的Think X series三大卷。其实是三本精致的小册子,如果想快速地掌握Python在统计方面的操作,好好阅读这三本书,认真做习题,答案链接在书里有。这三本书学通了,就可以上手用Python进行基本的统计建模了。
Python For Data Analysis: 作者是pandas的主要开发者,也正是Pandas使Python能够像R一样拥有dataframe的功能,能够处理结构比较复杂的数据。这本书其实analysis讲得不多,说成数据处理应该更合适。掌握了这本书,处理各种糟心的数据就问题不大了。
Introduction to Python for Econometrics, Statistics and Data Analysis:这本书第一章就告诉你要安装Numpy, Scipy, Matplotlib, Pandas, IPython等等。然后接下来的十好几章就是逐一介绍这几个库该怎么用。很全面,但读起来比较枯燥,可以用来当工具书。
Practical Data Analysis: 这本书挺奇葩,貌似很畅销,但作者把内容安排得东一榔头西一棒子,什么都讲一点,但一个都没讲透。这本书可以作为我们学习数据分析的一个索引,看到哪块内容有意思,就顺着它这个藤去摸更多的瓜。
Python Data Visualization Cookbook: 用Python做可视化的教材肯定不少,我看过的也就这一本,觉得还不错。其实这类书差别都不会很大,咬住一本啃下来就是王道。
Exploratory Data Analysis 和 Data Visualization
Exploratory Data Analysis:John Tukey写于1977年的经典老教材,是这一领域的开山之作。如今EDA已经是统计学里的重要一支,但当时还是有很多人对他的工作不屑一顾。可他爱数据,坚信数据可以以一种出人意料的方式呈现出来。正是他的努力,让数据可视化成为一门无比迷人的技术。但这本书不推荐阅读了,内容略过时。要想完整地了解EDA,推荐下一本:
Exploratory Data Analysis with MATLAB:这本书虽然标题带了个MATLAB,但实际上内容几乎没怎么讲MATLAB,只是每讲一个方法的时候就列出对应的MATALB函数。这本书的重要之处在于,这是我读过的讲EDA最系统的一本书,除了对visualization有不输于John Tucky的讲解外,对于高维的数据集,通过怎样的方法才能让我们从中找到潜在的pattern,这本书也做了详尽的讲解。全书所以案例都有对应的MATALB代码,而且还提供了GUI(图形用户界面)。所以这本书学起来还是相当轻松愉悦的。
Visualize This:中译本叫“鲜活的数据”,作者是个“超级数据迷”,建立了一个叫http://flowingdata.com的网页展示他的数据可视化作品,这本书告诉你该选择什么样的可视化工具,然后告诉你怎样visualize关系型数据、时间序列、空间数据等,最后你就可以用数据讲故事了。如果你只想感受一下数据可视化是个什么,可以直接点开下面这个链接感受下吧!A tour through the visualization zoo(A Tour Through the Visualization Zoo)
Machine Learning & Data Mining
这一块就不多说了,不是因为它不重要,而是因为它太太太重要。所以这一部分就推两本书,都是”世界名著“,都比较难读,需要一点点地啃。这两本书拿下,基本就算是登堂入室了。其实作为机器学习的延伸和深化,概率图模型(PGM)和深度学习(deep learning)同样值得研究,特别是后者现在简直火得不得了。但PGM偏难,啃K.Daphne那本大作实在太烧脑,也没必要,而且在数据领域的应用也不算很广。deep learning目前工业界的步子迈得比学术界的大,各个domain的应用如火如荼,但要有公认的好教材问世则还需时日,所以PGM和deep learning这两块就不荐书了。
The Element of Statistical Learning:要学机器学习,如果让我只推荐一本书,我就推荐这本巨著。Hastie、Tibshirani、Friedman这三位大牛写书写得太用心了,大厦建得够高够大,结构也非常严谨,而且很有前瞻性,纳入了很多前沿的内容,而不仅仅是一部综述性的教材。(图表也做得非常漂亮,应该是用R语言的ggplot2做的。)这本书注重讲解模型和算法本身,所以需要具备比较扎实的数理基础,啃起这本书来才不会太吃力。事实上掌握模型和算法的原理非常重要。机器学习(统计学习)的库现在已经非常丰富,即使你没有完全搞懂某个模型或算法的原理和过程,只要会用那几个库,机器学习也能做得下去。但你会发现你把数据代进去,效果永远都不好。但是,当你透彻地理解了模型和算法本身,你再调用那几个库的时候,心情是完全不一样的,效果也不一样。
Data Mining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 数据挖掘的教材汗牛充栋,之所以推荐这本韩家炜爷爷的,是因为虽然他这本书的出发点是应用,但原理上的内容也一点没有落下,内容非常完整。而且紧跟时代,更新的很快,我看过的是第二版,就已经加进去了social network analysis这种当时的前沿内容。现在已经有第三版了,我还没看过,但应该也加入了不少新内容。其实这本书并不难读,只是篇幅较长,啃起来比较耗时。
其实这两本书里单拎出来一块内容可能又是几本书的节奏,比如bayesian方法,再拿出两三本书来讲也不为过,我个人用到的比较多,而且也确实有不少好书。但并非是所有data scientist都要用到,所以这一块就不再细说。
还有一些印象比较深刻的书:
Big Data Glossary: 主要讲解大数据处理技术及工具,内容涵盖了NoSQL,MapReduce,Storage,Servers,NLP库与工具包,机器学习工具包,数据可视化工具包,数据清洗,序列化指南等等。总之,是一本辞典式的大数据入门指导。
Mining of Massive Datasets:这本书是斯坦福大学Web Mining的讲义,里面很多内容与韩家炜的Data Mining那本书重合,但这本书里详细地讲了MapReduce的设计原理,PageRank(Google创业时期的核心排序算法,现在也在不断优化更新)讲解得也比较详细。
Developing Analytic Talent: 作者是个从事了十几年数据工作的geek,技术博客写得很有个人风格,写的内容都比较偏门,通常只有具备相关数据处理经验的人能体会出来,丝毫不照顾初学者的感受。比如他会谈到当数据流更新太快时该怎么办,或者MapReduce在什么时候不好用的问题,才不管你懂不懂相关基础原理。所以这本书不太适合初学者阅读。这本书其实是作者的博客文章的集结,用how to become a data scientist的逻辑把他近几年的博客文章串联了起来。
Past, Present and Future of Statistical Science:这本书是由COPSS(统计学社主席委员会,由国际各大统计学会的带头人组成)在50周年出版的一本纪念册,里面有50位统计学家每人分别贡献出的一两篇文章,有的回忆了自己当年如何走上统计学这条路,有的探讨了一些统计学的根本问题,有的谈了谈自己在从事的前沿研究,有的则给年轻一代写下了寄语。非常有爱的一本书。
其它资料
Harvard Data Science:这是H大的Data science在线课,我没有修过,但口碑很好。这门课需要费用8千刀左右,比起华盛顿大学的4千刀的Data science在线课虽贵一倍,但比斯坦福的14千刀要便宜将近一半(而且斯坦福的更偏计算机)。如果想自学,早有好心人分享了slides: (https://drive.google.com/folderview?id=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=sharing)和homeworks and solutions: (https://github.com/cs109/content)
PyData:PyData是来自各个domain的用Python做数据的人每年举行一次的聚会,期间会有各路牛人举行一些规模不大的seminar或workshop,有好心人已经把video上传到github,有兴趣的去认领吧(DataTau/datascience-anthology-pydata · GitHub)
工具
R/Python/MATLAB(必备):如果是做数据分析和模型开发,以我的观察来看,使用这三种工具的最多。R生来就是一个统计学家开发的软件,所做的事也自然围绕统计学展开。MATLAB虽然算不上是个专业的数据分析工具,但因为很多人不是专业做数据的,做数据还是为了自己的domain expertise(特别是科学计算、信号处理等),而MATLAB又是个强大无比的Domain expertise工具,所以很多人也就顺带让MATLAB也承担了数据处理的工作,虽然它有时候显得效率不高。Python虽然不是做数据分析的专业软件,但作为一个面向对象的高级动态语言,其开源的生态使Python拥有无比丰富的库,Numpy, Scipy 实现了矩阵运算/科学计算,相当于实现了MATLAB的功能,Pandas又使Python能够像R一样处理dataframe,scikit-learn又实现了机器学习。
SQL(必备):虽然现在人们都说传统的关系型数据库如Oracle、mysql越来越无法适应大数据的发展,但对于很多人来说,他们每天都有处理数据的需要,但可能一辈子都没机会接触TB级的数据。不管怎么说,不论是用关系型还是非关系型数据库,SQL语言是必须要掌握的技能,用什么数据库视具体情况而定。
MongoDB(可选):目前最受欢迎的非关系型数据库NoSQL之一,不少人认为MongoDB完全可以取代mySQL。确实MongoDB方便易用,扩展性强,Web2.0时代的必需品。
Hadoop/Spark/Storm(可选): MapReduce是当前最著名也是运用最广泛的分布式计算框架,由Google建立。Hadoop/Spark/storm都是基于MapReduce的框架建立起来的分布式计算系统,要说他们之间的区别就是,Hadoop用硬盘存储数据,Spark用内存存储数据,Storm只接受实时数据流而不存储数据。一言以蔽之,如果数据是离线的,如果数据比较复杂且对处理速度要求一般,就Hadoop,如果要速度,就Spark,如果数据是在线的实时的流数据,就Storm。
OpenRefine(可选):Google开发的一个易于操作的数据清洗工具,可以实现一些基本的清洗功能。
Tableau(可选):一个可交互的数据可视化工具,操作简单,开箱即用。而且图表都设计得非常漂亮。专业版1999美刀,终身使用。媒体和公关方面用得比较多。
Gephi(可选):跟Tableau类似,都是那种可交互的可视化工具,不需要编程基础,生成的图表在美学和设计上也是花了心血的。更擅长复杂网络的可视化。
参考技术A

如何学习大数据?如何学习才更加高效呢?

    首先好入门的自然是大数据开发,对于Linux的操作系统和编程语言的部分没什么过多说明的,不要觉得有些东西没用就跳过,有些时候编程思想和解决问题的方法同样很重要,课本上有的一定要扎实。对于和大数据相关的组件,看上去十分的繁杂,很多小伙伴可能都是钻研于每个组件的用法、算子、函数、API,这当然没有错,但是同时一定不要忘记埋在其中的主线,那就是:完整的数据分析流程。在学习的过程中一定要了解各组件的特点、区别和应用的数据场景。

离线计算

    在离线计算场景下,使用的都是历史数据,也就是不会再发生改变的数据。在数据源确定以后,这些数据不会再增加、也不会再更新,比较适合对实时性要求不高的场景。大多数情况下是周期性的计算某一个指标或执行一个Job,运算耗时基本上可以控制在分钟级。

    数据源:数据文件、数据库中的数据等

    数据采集:Sqoop、HDFS数据上传、Hive数据导入等

    数据存储:HDFS

    数据分析:MapReduce、Hive QL

    计算结果:Hive结果表(HiveJDBC查询)、导出至关系型数据库

实时计算

    实时计算所面对的数据是不断的流入的,要能够使用合适的组件处理实时流入的数据。有些时候单位时间内的数据流入会比较多,消费的比较慢。有些时候单位时间内的数据流入会比较少,消费的会比较快。所以在采集数据时一方面要保证数据不丢失,同时还需要有中间件来管理好数据。在进行实时计算时可以使用微批次的方式也可以使用其他方式,同时要处理好计算结果合并的问题,实时展示最新的结果。

    数据源:日志文件增量监听等

    数据采集:Flume

    中间件:Kafka

    数据分析:Spark-Streaming,Flink等

    计算结果:HBase

    以上只是简单的列举了一些实现不同场景数据流程的组件整合方案,诣在告诉大家一定要善于发现和总结不同组件的特点,把合适的组件放在合适的位置,这也是面试官经常喜欢问的场景题目。其实每个组件的使用方法和调用API并没有很复杂,重点还是在于流程化、一体化、把组件之间连接起来,不断的渗透和强化数据分析和处理的思路,能够把一个需求直接翻译成数据分析方案,这才是学习的重点。

参考技术B 我们都知道现在大数据很火,很多小伙伴也在学习大数据的方法,比如说:怎样进行大数据的入门学习?
对于大数据的入门学习,基础不一样,起点就会不一样,今天先来说说,对于零基础的同学想要学习大数据的方式方法吧!很多人可能感到不可思议,零基础怎么可能学习大数据,没有编程基础怎么能入门呢?其实这个观点是很正确的,对于大数据的开发而言,是需要一定的编程基础的,所以我们的大数据入门级课程就落在了编程语言的学习。

现在一般的大数据入门课程,都是从编程语言开始教授的,但请你一定要认清一个问题,编程语言只是大数据课程的一小部分,如果整个大数据的课程一大部分都是编程语言的教授,你就要小心了,这真的不是真正的大数据课程。还有一些“戏精”机构以html5、Java、大数据可视化等擦边知识, 混淆真实大数据授课标准课程,蒙蔽学员,发现时才追悔莫及。我们总结以下假课,避免学员入坑。
不靠谱的大数据学习课程总结如下:
1、大数据偏HTML5
课程偏重HTML5、css、HTMl、AJAX、jQuery、AngleJs、Js等内容讲解。
2、大数据偏Java
课程偏重Java、JavaWeb、Spring、SpringMVC、MyBatis、HTCargo项目实战。
3、大数据偏大数据可视化
课程偏重Photoshop、javascript及可视化工具,就职大数据运维工程师。薪资低、就业慢,岗位少。
4、大数据偏测试课程
课程偏重数据库管理系统(DBMS)、VBScript脚本语言等。
靠谱的大数据学习课程如下:
靠谱的大数据学习课程,要让学生掌握计算机技术、hadoop 、spark、storm开发、hive 数据库、Linux 操作系统等知识,具备分布式存储、分布式计算框架等技术,熟悉大数据处理和分析技术。
其中,大数据生态体系的各个模块的功能和开发技术,包括 Hadoop 体系中的 HDFS, Hbase 进行数据操作,MapReduce 进行数据开发,YARN 进行资源配置,Hive 完成数据仓库,Pig进行数据分析,以及 Oozie,Zookeeper,Sqoop 和 Flume 等模块。还有Spark 生态体系的学习,及其 Scala 基础和 SparkSQL 开发。
话不多说了,想要学习大数据的,快开始行动吧!

10小时入门大数据

第1章 大数据概述
本章将从几则故事说起,让大家明白大数据是与我们的生活息息相关的,并不是遥不可及的,还会介绍大数据的特性,以及大数据对我们带来的技术变革,大数据处理过程中涉及到的技术

1-1 导学
1-2 章节安排_
1-3 OOTB镜像文件和虚拟机的使用
1-4 说两则故事说起
1-5 大数据与生活息息相关
1-6 大数据基本概念
1-7 大数据带来的挑战
1-8 如何应对大数据带来的挑战
1-9 -如何学好大数据
第2章 初识Hadoop
本章节将带领大家认识Hadoop以及Hadoop生态系统、Hadoop的发展史、Hadoop的优缺点、Hadoop的三个核心组件、Hadoop发行版的选择以及Hadoop在企业中的案例分享,为后续深入讲解Hadoop打下坚实的基础

2-1 章节安排
2-2 Hadoop概述
2-3 2.03-Hadoop核心组件之HDFS
2-4 2.04-Hadoop核心组件之YARN
2-5 2.05-Hadoop核心组件之MapReduce
2-6 2.06-Hadoop优势
2-7 2.07-Hadoop发展史
2-8 2.08-Hadoop生态系统
2-9 2.09-Hadoop常用发行版及选型
2-10 2.10-Hadoop应用案例
第3章 分布式文件系统HDFS
本章将从Hadoop的设计目标、架构及副本的脚本带大家详细剖析,快速搭建单节点伪分布式HDFS的实验环境,并讲解使用hdfs shell以及Java API的方式操作HDFS文件系统,并详细分析HDFS文件的读写流程,使得大家对Hadoop分布式文件系统HDFS有深刻的认识以及使用...

3-1 -课程目录-
3-2 -普通分布式文件系统的设计思路
3-3 HDFS概述及设计目标
3-4 HDFS架构
3-5 HDFS副本机制
3-6 HDFS副本存放策略
3-7 JDK安装&ssh安装&ssh免密码登陆配置
3-8 HDFS伪分布式环境搭建
3-9 HDFS shell操作
3-10 Java操作HDFS开发环境搭建
3-11 Java API操作HDFS文件系统
3-12 HDFS写数据流程
3-13 HDFS读数据流程
3-14 HDFS文件系统的优缺点
第4章 分布式资源调度YARN
本章将从YARN的产生背景、YARN的架构及执行流程的角度带大家认知Hadoop的资源调度框架YARN,快速搭建单节点伪分布式YARN的实验环境并掌握如何提交一个官方自带的MapReduce作业提交到YARN上运行

4-1 -课程目录
4-2 -YARN产生背景
4-3 -YARN架构
4-4 -YARN执行流程
4-5 -YARN环境搭建
4-6 -初识提交PI的MapReduce作业到YARN上执行
第5章 分布式计算框架MapReduce
本章将从架构、优缺点、编程模型等角度带大家认识Hadoop的分布式计算框架MapReduce,掌握MapReduce应用程序的开发,学会配置JobHistory Server

5-1 -课程目录
5-2 -MapReduce概述
5-3 -从WordCount案例说起MapReduce编程模型
5-4 -MapReduce执行流程
5-5 -MapReduce核心概念
5-6 -MapReduce1.x架构
5-7 -MapReduce2.x架构
5-8 -Java版本wordcount功能实现
5-9 -Java版本wordcount功能重构
5-10 -Combiner应用程序开发
5-11 -Partitioner应用程序开发
5-12 JobHistory使用
第6章 Hadoop项目实战
本章将通过对慕课网主站的访问日志进行分析的项目实战,来将前面几个章节讲解的知识点串联起来,综合使用Hadoop的技术进行离线统计分析

6-1 -课程目录--
6-2 用户行为日志概述
6-3 离线数据处理架构
6-4 项目需求
6-5 功能实现之UserAgent解析类测试
6-6 功能实现之单机本地完成需求统计
6-7 使用MapReduce完成需求统计
6-8 功能扩展思路
第7章 Hadoop分布式集群搭建
本章将带领大家搭建一个三个节点的分布式Hadoop集群环境,让大家对于Hadoop集群的安装有更深入的认识,并将项目实战案例运行在分布式集群环境中

7-1 -课程目录
7-2 -分布式环境搭建之环境介绍
7-3 -分布式环境搭建前置配置之ssh免密码登陆
7-4 -分布式环境搭建前置配置之JDK安装
7-5 -分布式环境搭建集群搭建之Hadoop配置及分发
7-6 -分布式环境搭建Hadoop格式化及启停
7-7 -分布式环境HDFS及YARN的使用
7-8 -将Hadoop项目运行在Hadoop集群之上
第8章 Hadoop集成Spring的使用
本章将带领大家使用Java社区中最流行的Spring框架来整合Hadoop的使用

8-1 -课程目录
8-2 -Spring Hadoop概述
8-3 -Spring Hadoop开发环境搭建及访问HDFS文件系统
8-4 -Spring Hadoop配置文件详解
8-5 -Spring Boot访问HDFS文件系统
8-6 -Spring Hadoop其他
第9章 前沿技术拓展: Spark/Flink/Beam
本章将带领大家认识当前大数据领域中非常火爆的三个框架:Spark、Flink以及Beam,并使用这三个框架完成词频统计分析操作,为大家以后更加深入的学习这几个框架打下坚实的基础

9-1 -课程目录
9-2 -吐槽MapReduce
9-3 -Spark特点
9-4 -Spark与Hadoop深入对比
9-5 -Spark开发语言及运行模式介绍
9-6 -Scala&Maven安装
9-7 -Spark环境搭建及wordcount案例实现
9-8 -Flink概述
9-9 -使用Flink完成wordcount统计
9-10 -Beam概述
9-11 -将WordCount的Beam程序以多种不同Runner运行
9-12 -课程目录
第10章 Hadoop3.x新特性
本章将带来大家学习Hadoop3.x版本的一些新特性,实时跟上Hadoop社区的发展

10-1 -课程目录
10-2 -Hadoop3.x概述
10-3 -Hadoop3.x新特性之Common改进
10-4 -Hadoop3.x新特性之HDFS改进
10-5 -Hadoop3.x新特性之YARN改进
10-6 -Hadoop3.x新特性之MapReduce改进
10-7 -Hadoop3.x新特性之其他

下载地址:10小时入门大数据






































































































以上是关于如何入门大数据的主要内容,如果未能解决你的问题,请参考以下文章

新如何学习大数据技术?大数据怎么入门?怎么做大数据分析?

大数据生态圈如何入门?

大数据生态圈如何入门?

大数据开发如何入门你必须知道这些

10小时入门大数据

大数据之-HIVE入门(十四)