大数据的开发过程,如图1-1所示。

图 1-1大数据开发通用步骤图


上图只是一个简化后的步骤和流程,实际开发中,有的步骤可能不需要,有的还需要增加步骤,有的流程可能更复杂,因具体情况而定。


下面以Google搜索引擎为例,来说明以上步骤。

1. 大数据采集

Google的数据来源于互联网上的网页,它们由Google Spider(蜘蛛、爬虫、机器人)来抓取,抓取的原理也很简单,就是模拟我们人的行为,来访问各个网页,然后保存网页内容。

Google Spider是一个程序,运行在全球各地的Google服务器之中,Spider们非常勤奋,日夜不停地工作。

2008年Google数据表明,它们每天都会访问大约200亿个网页,而在总量上,它们追踪着300亿个左右的独立URL链接。

可以说,只要是互联网上的网站,只要没有在robots.txt文件禁止Spider访问的话,其网页基本上都会在很短的时间内,被抓取到Google的服务器上。

全球的网页,这是典型的大数据。因此,Google Spider所做的就是典型的大数据采集工作。

2. 大数据预处理

Google Spider爬取的网页,无论是从格式还是结构等,都不统一,为了便于后续处理,需要先做一些处理,例如,在存储之前,先转码,使用统一的格式对网页进行编码,这些工作就是预处理。

3. 大数据存储

网页经过预处理后,就可以存储到Google的服务器上。

2008年,Google已经索引了全世界1万亿个网页,到2014年,这个数字变成了30万亿个。

为了减少开销,节约空间,Google将多个网页文件合并成一个大文件,文件大小通常在1GB以上。


这还是15年以前的数字,那时,主流台式机硬盘也就是60GB左右,1GB的文件在当时可以说是大文件了。


为了实现这些大文件高效、可靠、低成本存储,Google发明了一种构建在普通商业机器之上的分布式文件系统:Google File System,缩写为GFS,用来存储文件(又称之为非结构化数据)。

网页文件存储下来后,就可以对这些网页进行处理了,例如统计每个网页出现的单词以及次数,统计每个网页的外链等等。

这些被统计的信息,就成为了数据库表中的一个属性,每个网页最终就会成为数据库表中的一条或若干条记录。

由于Google存储的网页太多,30万亿个以上,因此,这个数据库表也是超级庞大的,传统的数据库,像Oracle等,根本无法处理这么大的数据,因此Google基于GFS,发明了一种存储海量结构化数据(数据库表)的分布式系统Bigtable

上述两个系统(GFS和Bigtable)并未开源,Google仅通过文章的形式,描述了它们的设计思想。

所幸的是,基于Google的这些设计思想,时至今日,已经出现了不少开源海量数据分布式文件系统,如HDFS等,也出现了许多开源海量结构化数据的分布式存储系统,如HBase、Cassandra等,它们分别用于不同类型大数据的存储。


总之,如果采集过来的大数据需要存储,要先判断数据类型,再确定存储方案选型;

如果不需要存储(如有的流数据不需要存储,直接处理),则直接跳过此步骤,进行处理。


4. 大数据处理

网页存储后,就可以对存储的数据进行处理了,对于搜索引擎来说,主要有3步:

1)单词统计:统计网页中每个单词出现的次数;

2)倒排索引:统计每个单词所在的网页URL(Uniform Resource Locator统一资源定位符,俗称网页网址)以及次数;

3)计算网页级别:根据特定的排序算法,如PageRank,来计算每个网页的级别,越重要的网页,级别越高,以此决定网页在搜索返回结果中的排序位置。

例如,当用户在搜索框输入关键词“足球”后,搜索引擎会查找倒排索引表,得到“足球”这个关键词在哪些网页(URL)中出现,然后,根据这些网页的级别进行排序,将级别最高的网页排在最前面,返回给用户,这就是点击“搜索”后,看到的最终结果。

大数据处理时,往往需要从存储系统读取数据,处理完毕后,其结果也往往需要输出到存储。因此,大数据处理阶段和存储系统的交互非常频繁。

大数据处理和前面大数据预处理,在技术上是相通的,只是所处阶段不同;

此处理环节是大数据开发阶段的一个必需的环节!

5. 大数据可视化

大数据可视化是将数据以图形的方式展现出来,与纯粹的数字表示相比,图形方式更为直观,更容易发现数据之间的规律。

例如,Google Analytics是一个网站流量分析工具,它统计每个用户使用搜索引擎访问网站的数据,然后得到每个网站的流量信息,包括网站每天的访问次数,访问量最多的页面、用户的平均停留时间、回访率等,所有数据都以图形的方式,直观地显示出来,如图1-2所示

图1-2 Google网站访问量分析图

大数据开发高薪必备全套资源【免费获取】

Oracle高级技术总监多年精心创作一套完整课程体系【大数据、人工智能开发必看】,全面助力大数据开发零基础+入门+提升+项目=高薪

「大数据零基础入门」

「大数据架构系统组件」

「大数据全套系统工具安装包」

Java必备工具

大数据必备工具

「大数据行业必备知资讯」

「大数据精品实战案例」

「大数据就业指导方案」

最后说一下的,也就是以上教程的获取方式!

领取方法:

还是那个万年不变的老规矩

1.评论文章,没字数限制,一个字都行!

2.成为小编成为的粉丝!

3.私信小编:“大数据开发教程”即可!

谢谢大家,祝大家学习愉快!(拿到教程后一定要好好学习,多练习哦!)

开发步骤_大数据开发必备的通用步骤详解相关推荐

  1. 大数据项目开发案例_大数据开发相关术语解析

    Java['dʒɑːvə] 当前软件开发行业应用最广.就业量最大的编程语言,在各类编程语言排行榜长期位列第一.是企业软件开发的首选语言,也是Android系统的开发语言. Java吸取了C++语言的众 ...

  2. python大数据开发工程师_大数据开发工程师的职责

    大数据开发工程师的职责 大数据开发工程师的职责1 职责: 1.负责数据采集.数据存储.数据查询.数据计算等基础平台的设计和开发工作; 2.利用Hadoop.Spark.Flink等技术进行离线和实时数 ...

  3. python开发和大数据开发工程师_大数据开发工程师的岗位职责

    大数据开发工程师负责该领域的业务需求讨论,完成技术方案及数据开发.下面是学习啦小编整理的大数据开发工程师的岗位职责. 大数据开发工程师的岗位职责1 职责: 1.负责所分管团队的团队建设和日常管理工作; ...

  4. python工程师干什么的_大数据开发工程师薪资待遇及招聘要求?

     目录: 大数据开发是干什么的? 大数据开发需要掌握哪些技术?学习路线如何? 大数据开发需要掌握数学知识吗? 大数据开发就业前景如何? 大数据开发工程师薪资待遇及招聘要求? 大数据开发是干什么的? 大 ...

  5. php 内容采集_php开发工程师和大数据开发工程师有什么区别

    通过岗位职责.工作内容,告诉你php开发工程师和大数据开发工程师的区别?还为你对比php开发工程师和大数据开发工程师的学历要求.经验要求.工资待遇,为你揭晓php开发工程师和大数据开发工程师哪个好? ...

  6. 数据库开发工程师转行大数据开发可以吗?

    对有工作经验想转行大数据开发主要考察三个方面,一是基础,二是学习能力,三是解决问题的能力. 基础很好考察,给几道笔试题做完基本上就知道什么水平了.数据库开发工程师转大数据开发怎么样? 首先给大家普及一 ...

  7. 图解大数据 | 分布式平台Hadoop与Map-Reduce详解

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/84 本文地址:https://www.showmeai.tech/article-d ...

  8. python处理excel大数据-Python实现大数据收集至excel的思路详解

    一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入 ...

  9. 大数据时代 | 数据分析方法及理论详解

    大数据时代 | 数据分析方法及理论详解 1 数据分析前,我们需要思考 像一场战役的总指挥影响着整个战役的胜败一样,数据分析师的思想对于整体分析思路,甚至分析结果都有着关键性的作用. 2 分析问题和解决 ...

最新文章

  1. Coefficients: (1 not defined because of singularities)
  2. vb 6.0服务器组件选哪个,VB 6.0包括几种版本?分别是什么?
  3. 使用Jenkins自动远程调用压测机实现不同用户场景下的并发测试
  4. (素材源代码) 猫猫学iOS 之UIDynamic重力、弹性碰撞吸附等现象牛逼Demo
  5. 使用OpenCV,Keras和Tensorflow构建Covid19掩模检测器
  6. JavaScript工具
  7. html滚动条样式自定义,如何自定义CSS滚动条的样式?
  8. c语言对抗程序代码,C语言贪吃蛇源程序代码双人对抗
  9. Android NDK学习(二):编译脚本语法Android.mk和Application.mk
  10. JAVA 导出 Excel, JS 导出 Excel
  11. ThinkPhp项目部署到Linux file_put_contents() 报错:failed to open stream: Permission denied
  12. Qt 字符编码转换(UTF-8 转换为 GBK)
  13. ECharts学习笔记(1)——使用关系图展示关联分析结果
  14. 多功能便携扩音器,老师上课的好帮手
  15. 虚拟机处理器核数与物理cpu的关系
  16. 戴钊《自我教练:迈向自我实现之路》读书笔记
  17. github网络安全项目工具集合
  18. 【Android】Android Studio Profiler Memery (一)
  19. [人生感悟]写在毕业前
  20. WordPress 不修改代码通过sql语句修改数据库批量增加文章阅读量

热门文章

  1. 霏凡2007经典流行壁纸光盘 [贺岁版]
  2. SP Flash Tool使用异常集锦
  3. python小点心--判断操作系统类型
  4. 数据中台: 数据产品的自动化生产线
  5. rg1 蓝光危害rg0_天猫中国日-2019纽约春夏时装周_2019春夏中国时装周
  6. 利用SVM小样本机械故障诊断(MATLAB代码)
  7. matlab顺序消元法例题,求助,关于用matlab解列主元消去法的题
  8. C++标准程序库(学习笔记)
  9. 计算机辅助设计高级绘图员技能鉴定试题,计算机辅助设计高级绘图员技能鉴定试题1...
  10. 微信支付php详解 php,ThinkPHP框架整合微信支付之刷卡模式图文详解