大数据怎样做
Ⅰ 大数据建设需要怎么做
首先是收集需求,接着根据需要定制产品,然后再实施,大方向就是这样
Ⅱ 身处大数据时代,我们该如何做
大数来据时代,可以知道世自界上任何一个角落上发生的事。网络方便人们获取信息的同时,也大大增加了人们信息泄露的可能性。加米谷大数据来分享我们该如何保护自己的个人信息。
如何防范自己的个人信息泄露呢?
1、不要随便填写各种各样的调查问卷。现在在街上、校园、网上都会遇到各种问卷调查,那么此时一定要注意防范,不要轻易填写个人信息。
2、不要贪小便宜。对于一些留下联系方式或者注册某个APP就能得到一些精美的小礼品的活动,千万要注意,因为你的个人信息大部分就是这样泄露的。
3、不要随便扔快递单据。快递单那里会写上你的收货地址、姓名和联系方式,如果随便丢弃,就相当于自己主动泄露个人信息。
4、不要随意丢弃车票和机票。现在的飞机票和火车票都实行了实名制,上面有自己的身份证等信息,随意丢弃会导致信息泄露。
5、及时删除在打印店打印的资料。在打印店打印,很多人喜欢将U盘的文件拷到电脑上,打印之后又忘记删除,特别是一些简历等含有个人信息的资料。
6、网络上的个人信息也需要进行保护。
Ⅲ 大数据怎么做
如果对大数据了解不多的话建议体系化的看课程视频跟着多易教育的老师好好学习学习。
Ⅳ 大数据如何入门
听说你想要学大数据?你确定你搞清楚概念了吗?我们来做个小测验吧:
数据分析师在公司是干什么的?
大数据和普通数据最大的区别是什么?
你的日常工作中根本接触不到大数据,你真正想学的是大数据吗?
有点蒙圈了吧。鱼君正是要帮你在最短的时间内理清这些概念,找准自己前进的方向。
大数据之“大”数据,大家会陌生吗?不会。我们每天的日常生活都会接触到数据。淘宝购物时货比三家的价格,年终考核之后发给我们的奖金,发表在知乎上的文章的评论数量,这些都是数据。
从人们会计数开始,数据就有了,数据分析也是。那么大数据呢?
说到大数据,你就绕不开互联网。在互联网出现之前,虽然政府部门和一些公共事业单位通过日积月累获得了较大量的数据,但并没有形成足够的影响力。直到互联网产品的出现,由于它收集用户数据的便利性,通常在一天之内就能够累计其他行业可能一年才能获取的数据量。
数据量的升级造成算法和硬件都必须要升级,操作起来的技术难度也就会提高很多。这个时候,就需要专业的技术和平台来完成存储,处理和分析大数据的工作。比如说,大家都听过的Hadoop平台,MapRece算法。都是大数据时代的产物。
因此,我认为,大数据的核心,就在于大。
有一定规模的互联网公司都会成立专门的大数据部门来管理自己产品所收集到的大数据。数据量越大,处理难度就越高,相应的,可能挖掘到的内涵也会更多。于是,大数据就成了一个产业,一个火热的产业。
大数据圈子里的人在大数据行业这个圈子里,公司提供的职位大致分为三类:数据分析师,数据产品经理,数据工程师。他们紧密合作,共同驱动公司的数据决策文化。
那么,着三种职位都是做什么的?又该怎么入行呢?
数据分析师
数据分析师,是使用大数据的人。核心是掌握各种数据分析工具和数据分析技能,目标是为公司管理层和产品团队提供分析报告,帮助他们做决策。
实际工作中,数据会被处理成各种不同的类型提供给数据分析师使用,有比较原始的,有比较简单好用的。因此,数据分析师需要掌握R, SQL,Excel, Python基础编程等多种技能,以及熟练掌握常用的数据分析方法。
如果你立志于成为一个数据分析师甚至数据科学家,那么我强烈建议你进行系统的学习。
数据产品经理
数据产品经理是设计数据产品的人。核心技能是数据需求分析和数据产品的设计,和其他的互联网产品经理并没有本质的不同。实际工作中,数据产品经理需要收集不同用户的数据需求并且设计出好用的数据产品提供给大家,帮助他们“用数据做决定”。
怎么入门呢?关于具体的进阶流程,我希望你听一下我在一块听听上做的讲座《4步让你成为大数据产品经理》,会为你提供非常全面的介绍。
常见的推荐入门书籍有《人人都是产品经理》,《The DatawareHouse Toolkit》,《Lean Analytics》等等。
数据工程师
数据工程师,简单分两种,一类是数据挖掘工程师,另外一类是大数据平台工程师。工程师的基本技能当然是写代码,写高质量的代码。
数据挖掘工程师主要工作是开发大数据流水线以及和数据分析师一起完成数据挖掘项目,而数据平台工程师主要工作是维护大数据平台。
因此,理工科背景出身,掌握C, C#, Python等编程/脚本语言,熟悉各种基础算法即可以胜任。
如何用数据做决策
对于那些并不想转行进入大数据圈子的人,我们要学的究竟是什么?
我相信,在我们的日常工作中,特别是业绩不佳,找不到突破口的时候,都曾想过能否用数据来帮助自己。因为我们都曾或多或少听过一些牛逼的数据案例,比如纸尿布与啤酒之类。
举一个简单的例子,你经营的餐馆现在状况不佳。你可以自己拍脑袋想一堆的新点子来尝试改善现状。你也可以,收集整理数据,通过分析找出根本原因,并提出对应解决方案,从而扭转局面。后者听起来似乎更加靠谱一些。
那么,你该收集什么数据,做什么分析,这就是你需要学习的:“如何用数据做决策”。从这个角度讲,我认为:
人人都应该是数据分析师
学习系统的数据决策和数据分析思维,我们可以从这篇文章开始:从0到1搭建数据分析知识体系。我自己工作中常用的数据分析方法都被囊括在里面,如果趋势分析,多维分解,用户分群,漏斗分析等等。请不要小看一篇文章,知识在精不在多。
你还可以从一本简单好读的《谁说菜鸟不会数据分析》开始搭建你的数据分析思维。
关于数据分析的书籍太多了,众口难调,随便一搜就有一大堆推荐。而其中所讲的知识和理论其实都是类似的。最终要让他们发挥作用,还是要和实践结合起来。
因此,我认为,在自己的生意和工作中多实践数据分析,多思考,遇到问题多在社群中提问和大家探讨,是最好的学习办法。我自己也一直是这样践行的。
带着问题去学习,是最好的方式。
在这个过程中,随着你对数据的深入了解,掌握更多的数据分析语言和工具。从Excel到SQL,甚至到R和Python。你所能使用的数据量也会越来越大。但你大可不必一开始就扎入这些工具的学习中,那样会收效甚微。
Ⅳ 如何入门大数据
大数据
数据科学并没有一个独立的学科体系,统计学,机器学习,数据挖掘,数据库,分布式计算,云计算,信息可视化等技术或方法来对付数据。
但从狭义上来看,我认为数据科学就是解决三个问题:
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 introction 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讲得不多,说成数据处理应该更合适。掌握了这本书,处理各种糟心的数据就问题不大了。
Introction 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,MapRece,Storage,Servers,NLP库与工具包,机器学习工具包,数据可视化工具包,数据清洗,序列化指南等等。总之,是一本辞典式的大数据入门指导。
Mining of Massive Datasets:这本书是斯坦福大学Web Mining的讲义,里面很多内容与韩家炜的Data Mining那本书重合,但这本书里详细地讲了MapRece的设计原理,PageRank(Google创业时期的核心排序算法,现在也在不断优化更新)讲解得也比较详细。
Developing Analytic Talent: 作者是个从事了十几年数据工作的geek,技术博客写得很有个人风格,写的内容都比较偏门,通常只有具备相关数据处理经验的人能体会出来,丝毫不照顾初学者的感受。比如他会谈到当数据流更新太快时该怎么办,或者MapRece在什么时候不好用的问题,才不管你懂不懂相关基础原理。所以这本书不太适合初学者阅读。这本书其实是作者的博客文章的集结,用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(可选): MapRece是当前最著名也是运用最广泛的分布式计算框架,由Google建立。Hadoop/Spark/storm都是基于MapRece的框架建立起来的分布式计算系统,要说他们之间的区别就是,Hadoop用硬盘存储数据,Spark用内存存储数据,Storm只接受实时数据流而不存储数据。一言以蔽之,如果数据是离线的,如果数据比较复杂且对处理速度要求一般,就Hadoop,如果要速度,就Spark,如果数据是在线的实时的流数据,就Storm。
OpenRefine(可选):Google开发的一个易于操作的数据清洗工具,可以实现一些基本的清洗功能。
Tableau(可选):一个可交互的数据可视化工具,操作简单,开箱即用。而且图表都设计得非常漂亮。专业版1999美刀,终身使用。媒体和公关方面用得比较多。
Gephi(可选):跟Tableau类似,都是那种可交互的可视化工具,不需要编程基础,生成的图表在美学和设计上也是花了心血的。更擅长复杂网络的可视化。
Ⅵ java 大数据怎么做
Java是编程语言;
大数据是一个概念,包含的技术较多,比如Hadoop、Spark、Storm等;
学习大数据先要学习Java,Java是基础,而大数据比较核心的两个课程是HADOOP、SPARK。
Ⅶ 怎样学习大数据
首先我们要了解Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。
Java :只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据基础。
Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。
Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapRece和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapRece是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。
Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。
Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。
Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。
Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapRece程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。
Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapRece、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。
Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。
Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。
Spark:它是用来弥补基于MapRece处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。
Ⅷ 大数据入门学习怎么做
:一、整体了解数据分析——5小时 新人们被”大数据“、”人工智能“、”21世纪是数据分析师的时代“等等信息吸引过来,立志成为一名数据分析师,于是问题来了,数据分析到底是干什么的?数据分析都包含什么内容? 市面上有很多讲数据分析内容的书籍
Ⅸ 大数据如何入门
导读:
第一章:初识Hadoop
第二章:更高效的WordCount
第三章:把别处的数据搞到Hadoop上
第四章:把Hadoop上的数据搞到别处去
第五章:快一点吧,我的SQL
第六章:一夫多妻制
第七章:越来越多的分析任务
第八章:我的数据要实时
第九章:我的数据要对外
第十章:牛逼高大上的机器学习
经常有初学者会问,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高……首先,如果你确定了想往这个方面发展,先考虑自己的过去从业经历、专业、兴趣是什么。计算机专业——操作系统、硬件、网络、服务器?软件专业——软件开发、编程、写代码?还是数学、统计学专业——对数据和数字特别感兴趣?
其实这就是想告诉你大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。
先扯一下大数据的4V特征:
数据量大,TB->PB
数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;
商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;
处理时效性高,海量数据的处理需求不再局限在离线计算当中。
Hadoop 1.0、Hadoop 2.0
MapRece、HDFS
NameNode、DataNode
JobTracker、TaskTracker
Yarn、ResourceManager、NodeManager
HDFS目录操作命令;
上传、下载文件命令;
提交运行MapRece示例程序;
打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。
知道Hadoop的系统日志在哪里。
- SELECT word,COUNT(1) FROM wordcount GROUP BY word;
- 这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。
- 至此,大数据平台底层架构已经成型了,其中包括了数据采集、数据存储与计算(离线和实时)、数据同步、任务调度与监控这几大模块。接下来是时候考虑如何更好的对外提供数据了。
现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:
文件存储:Hadoop HDFS、Tachyon、KFS
离线计算:Hadoop MapRece、Spark
流式、实时计算:Storm、Spark Streaming、S4、Heron
K-V、NOSQL数据库:HBase、Redis、MongoDB
资源管理:YARN、Mesos
日志收集:Flume、Scribe、Logstash、Kibana
消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ
查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分布式协调服务:Zookeeper
集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager
数据挖掘、机器学习:Mahout、Spark MLLib
数据同步:Sqoop
任务调度:Oozie
······
第一章:初识Hadoop
1.1学会网络与Google
不论遇到什么问题,先试试搜索并自己解决。
Google首选,翻不过去的,就用网络吧。
1.2参考资料首选官方文档
特别是对于入门来说,官方文档永远是首选文档。
相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。
1.3先让Hadoop跑起来
Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。
关于Hadoop,你至少需要搞清楚以下是什么:
自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。
建议先使用安装包命令行安装,不要使用管理工具安装。
另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.
1.4尝试使用Hadoop
1.5了解它们的原理
MapRece:如何分而治之;
HDFS:数据到底在哪里,什么是副本;
Yarn到底是什么,它能干什么;
NameNode到底在干些什么;
ResourceManager到底在干些什么;
1.6自己写一个MapRece程序
仿照WordCount例子,自己写一个(照抄也行)WordCount程序,
打包并提交到Hadoop运行。
不会Java的话,Shell、Python都可以,有个东西叫Hadoop Streaming。
如果能认真完成了以上几步,恭喜你,你的一只脚已经进来了。
第二章:更高效的WordCount
2.1学点SQL吧
如果不懂数据库的童鞋先学习使用SQL句。
2.2 SQL版WordCount
在1.6中,你写(或者抄)的WordCount一共有几行代码?
如果用SQL的话:
这便是SQL的魅力,编程需要几十行,甚至上百行代码,SQL一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。
2.3安装配置Hive
Hive算是数据仓库工具,安装不难,网上有很多教程,配置完成后,可以正常进入Hive命令行。
2.4试试使用Hive
尝试在Hive中创建wordcount表,并运行2.2中的SQL语句。在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapRece中的结果一致。
明明写的是SQL,为什么Hadoop WEB界面中看到的是MapRece任务?
2.5学会Hive的基本命令
创建、删除表;加载数据到表;下载Hive表的数据;并学习更多关于Hive的语法和命令。
以上如果按照第一章和第二章的流程认真完整的走了一遍后,应该已经具备以下技能和知识点:
0和Hadoop2.0的区别
MapRece的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);
HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;
自己会写简单的MapRece程序,运行出现问题,知道在哪里查看日志;
会写简单的SELECT、WHERE、GROUP BY等SQL语句;
Hive SQL转换成MapRece的大致流程;
Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;
从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapRece是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapRece,提交运行。
此时,你的认知中“大数据平台”是这样的:
总结:
为什么Spark比MapRece快。
使用SparkSQL代替Hive,更快的运行SQL。
使用Kafka完成数据的一次收集,多次消费架构。
自己可以写程序完成Kafka的生产者和消费者。
前面的学习已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务之间又存在一定的依赖性,比如,必须等数据采集任务成功完成后,数据计算任务才能开始运行。如果一个任务执行失败,需要给开发运维人员发送告警,同时需要提供完整的日志来方便查错。
第七章:越来越多的分析任务
不仅仅是分析任务,数据采集、数据交换同样是一个个的任务。这些任务中,有的是定时触发,有点则需要依赖其他任务来触发。当平台中有几百上千个任务需要维护和运行时候,仅仅靠crontab远远不够了,这时便需要一个调度监控系统来完成这件事。调度监控系统是整个数据平台的中枢系统,类似于AppMaster,负责分配和监控任务。
7.1 Apache Oozie
1. Oozie是什么?有哪些功能?
2. Oozie可以调度哪些类型的任务(程序)?
3. Oozie可以支持哪些任务触发方式?
4.安装配置Oozie。
7.2其他开源的任务调度系统
Azkaban
light-task-scheler
alibaba/zeus
……
此时:
第八章:数据要实时
在第六章介绍Kafka的时候提到了一些需要实时指标的业务场景,实时基本可以分为绝对实时和准实时,绝对实时的延迟要求一般在毫秒级,准实时的延迟要求一般在秒、分钟级。对于需要绝对实时的业务场景,用的比较多的是Storm,对于其他准实时的业务场景,可以是Storm,也可以是Spark Streaming。当然,如果可以的话,也可以自己写程序来做。
8.1 Storm
1. 什么是Storm?有哪些可能的应用场景?
2. Storm由哪些核心组件构成,各自担任什么角色?
3. Storm的简单安装和部署。
4. 自己编写Demo程序,使用Storm完成实时数据流计算。
8.2 Spark Streaming
1. 什么是Spark Streaming,它和Spark是什么关系?
2. Spark Streaming和Storm比较,各有什么优缺点?
3. 使用Kafka + Spark Streaming,完成实时计算的Demo程序。
此时:
第九章:数据要对外
通常对外(业务)提供数据访问,大体上包含以下方面:
离线:比如,每天将前一天的数据提供到指定的数据源(DB、FILE、FTP)等;
离线数据的提供可以采用Sqoop、DataX等离线数据交换工具。
实时:比如,在线网站的推荐系统,需要实时从数据平台中获取给用户的推荐数据,这种要求延时非常低(50毫秒以内)。
根据延时要求和实时数据的查询需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。
OLAP分析:OLAP除了要求底层的数据模型比较规范,另外,对查询的响应速度要求也越来越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的数据模型比较规模,那么Kylin是最好的选择。
即席查询:即席查询的数据比较随意,一般很难建立通用的数据模型,因此可能的方案有:Impala、Presto、SparkSQL。
这么多比较成熟的框架和方案,需要结合自己的业务需求及数据平台技术架构,选择合适的。原则只有一个:越简单越稳定的,就是最好的。
如果你已经掌握了如何很好的对外(业务)提供数据,那么你的“大数据平台”应该是这样的:
第十章:牛逼高大上的机器学习
这里本人也没有接触太多,稍微讲一下我们的业务场景应用,遇到的能用机器学习解决的问题大概这么三类:
分类问题:包括二分类和多分类,二分类就是解决了预测的问题,就像预测一封邮件是否垃圾邮件;多分类解决的是文本的分类;
聚类问题:从用户搜索过的关键词,对用户进行大概的归类。
推荐问题:根据用户的历史浏览和点击行为进行相关推荐。
大多数行业,使用机器学习解决的,也就是这几类问题。
入门学习线路:
数学基础;
机器学习实战(Machine Learning in Action),懂Python最好;
SparkMlLib提供了一些封装好的算法,以及特征处理、特征选择的方法。
那么把机器学习部分加进 “大数据平台”。