大数据导论第2章-大数据技术基础课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大数据导论第2章-大数据技术基础课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 导论 技术 基础 课件
- 资源描述:
-
1、数据中国“百校工程”项目系列教材数据科学与大数据技术专业系列规划教材第2章 大数据技术基础 本章主要内容如下。本章主要内容如下。(1 1)计算机操作系统。)计算机操作系统。(2 2)编程语言。)编程语言。(3 3)数据库。)数据库。(4 4)算法。)算法。(5 5)大数据系统。)大数据系统。(6 6)大数据应用开发流程。)大数据应用开发流程。2.1 计算机操作系统 本章首先介绍计算机操作系统,帮助读者建立对大数据技术基本章首先介绍计算机操作系统,帮助读者建立对大数据技术基础的整体印象。础的整体印象。2.1.1 2.1.1 什么是操作系统什么是操作系统 操作系统(操作系统(Operating S
2、ystemOperating System,OSOS)实际是一整套程序的组合)实际是一整套程序的组合体,这套程序的主要任务是管理计算机的所有活动和驱动计算机的体,这套程序的主要任务是管理计算机的所有活动和驱动计算机的整体硬件。计算机硬件包括输入单元(主要指键盘和鼠标等)、输整体硬件。计算机硬件包括输入单元(主要指键盘和鼠标等)、输出单元(显示器、音响等)、出单元(显示器、音响等)、CPUCPU和主存储器等主要部分。和主存储器等主要部分。操作系统可以统筹协调计算机硬件系统的工作,具体就是通操作系统可以统筹协调计算机硬件系统的工作,具体就是通过操作系统的工作使过操作系统的工作使CPUCPU可以进行
3、逻辑与数值运算,主存储器能够可以进行逻辑与数值运算,主存储器能够加载应用数据与程序代码,硬盘可以顺利存入与读出信息,输入加载应用数据与程序代码,硬盘可以顺利存入与读出信息,输入设备、输出设备可以根据需要实时写入、写出必要信息等。因此,设备、输出设备可以根据需要实时写入、写出必要信息等。因此,操作系统实际是整个计算机硬件系统的操作系统实际是整个计算机硬件系统的“CEO”“CEO”,担负着整个计算,担负着整个计算机硬件系统的管理、协调和运作的全部任务。机硬件系统的管理、协调和运作的全部任务。1 1系统呼叫接口系统呼叫接口2 2程序管理程序管理3 3内存管理内存管理4 4文件系统管理文件系统管理5
4、5硬件装置的驱动硬件装置的驱动2.1.2 Linux2.1.2 Linux操作系统操作系统 Linux Linux系统基本经历了系统基本经历了3 3个发展阶段。个发展阶段。1 1单一个人维护阶段单一个人维护阶段2 2广大黑客志愿者加入阶段广大黑客志愿者加入阶段3 3LinuxLinux核心的细分工、快速发展阶段核心的细分工、快速发展阶段 LinuxLinux的核心版本编号如图的核心版本编号如图2-12-1所示,自所示,自3.03.0以后的版本都遵循以后的版本都遵循统一的编码标准,并且基本上后续的版本都是在前序版本的基础统一的编码标准,并且基本上后续的版本都是在前序版本的基础上经过完善后再开发出
5、来的。上经过完善后再开发出来的。图2-1 Linux核心版本编号注解 LinuxLinux的核心版本是的核心版本是Linux KernelLinux Kernel的版本,此外还有的版本,此外还有Linux Linux DistributionDistribution,两者的关系如图,两者的关系如图2-22-2所示。所示。Linux Distribution Linux Distribution是专门为使用者量身打造的是专门为使用者量身打造的Linux Linux Kernel+Software+ToolsKernel+Software+Tools的可安全安装程序的综合发布版的可安全安装程序的综
6、合发布版本,可帮助日常使用者在本,可帮助日常使用者在LinuxLinux系统下完成工作和其他相关任系统下完成工作和其他相关任务。务。图2-2 Linux Kernel与Linux Distribution 目前目前Linux DistributionLinux Distribution主要分为两大系统:一种是使用主要分为两大系统:一种是使用RPMRPM(Red-Hat Package ManagerRed-Hat Package Manager)方式安装软件的系统,主要包括)方式安装软件的系统,主要包括RHELRHEL、SuSESuSE、FedoraFedora等;另一种是使用等;另一种是使用
7、DebianDebian的的DPKGDPKG方式安装软件的系统,方式安装软件的系统,包括包括UbuntuUbuntu、DebianDebian、B2DB2D等。具体的主要版本如表等。具体的主要版本如表2-12-1所示。所示。机构机构RPMRPM软件管理软件管理DPKGDPKG软件管理软件管理其他未分类其他未分类商业公司商业公司RHELRHEL(Red HatRed Hat)SuSESuSE(Micro FocusMicro Focus)UbuntuUbuntu(CanonicalCanonical)社区单位社区单位FedoraCentOSOpenSuSEFedoraCentOSOpenSuSE
8、DebianB2DDebianB2DGentooGentoo表2-1 Linux Distribution主要版本 目前目前LinuxLinux的主要应用场景如下。的主要应用场景如下。(1 1)企业环境的应用,主要包括网络服务器(目前最热门的应用)、)企业环境的应用,主要包括网络服务器(目前最热门的应用)、关键任务的应用(金融数据库、大型企业网管环境)、学术机构的高关键任务的应用(金融数据库、大型企业网管环境)、学术机构的高效能运算任务等。效能运算任务等。(2 2)个人环境的使用,主要包括桌面计算机系统(实现和)个人环境的使用,主要包括桌面计算机系统(实现和WindowsWindows系系统一
9、样的桌面操作系统)、手持系统(统一样的桌面操作系统)、手持系统(PDAPDA、手机端系统如、手机端系统如AndroidAndroid)、)、嵌入式系统(包括路由器、防火墙、嵌入式系统(包括路由器、防火墙、IPIP分享器、交换机等)。分享器、交换机等)。(3 3)云端的运用,主要包括云程序(云端虚拟机资源)、云端设备等。)云端的运用,主要包括云程序(云端虚拟机资源)、云端设备等。2.2 编 程 语 言 语言可以使人们以更加规范、方便和快捷的方式进行交流。语言可以使人们以更加规范、方便和快捷的方式进行交流。自然语言的作用显然是使人们更加高效地交流不同的思想和文化,自然语言的作用显然是使人们更加高效
10、地交流不同的思想和文化,编程语言则是为了实现人与计算机之间的交流而设计的语言。编程语言则是为了实现人与计算机之间的交流而设计的语言。随着计算机技术的不断发展和完善,编程语言已经得到了长随着计算机技术的不断发展和完善,编程语言已经得到了长足的发展,并被广泛地应用于实际,已经成为人们与计算机进行足的发展,并被广泛地应用于实际,已经成为人们与计算机进行深入深入“交流交流”的必需工具。的必需工具。2.2.1 2.2.1 编程语言的发展与种类编程语言的发展与种类 随着电气革命的深入,人们终于在随着电气革命的深入,人们终于在 20 20 世纪世纪4040年代制造出了年代制造出了可以用于实际计算的晶体管计算
11、机。这时候的计算机体积相当大,可以用于实际计算的晶体管计算机。这时候的计算机体积相当大,同时能耗巨大。伴随着晶体管计算机的诞生,人们也编写了第一同时能耗巨大。伴随着晶体管计算机的诞生,人们也编写了第一种真正意义上的编程语言,这就是机器语言。种真正意义上的编程语言,这就是机器语言。对普通人来说,机器语言基本就是对普通人来说,机器语言基本就是“天书天书”,因为它完全是,因为它完全是用用0 0和和1 1的机器代码来写成的,然后被光电阅读机记录在穿孔卡片的机器代码来写成的,然后被光电阅读机记录在穿孔卡片上,作为晶体管计算机的读入上,作为晶体管计算机的读入/读出数据,如图读出数据,如图2-32-3所示。
12、所示。图2-3 记录在穿孔卡片上的机器语言 机器语言太难理解和书写,且极易出错,汇编语言(机器语言太难理解和书写,且极易出错,汇编语言(Assembly Assembly LanguageLanguage)就应运而生。实际上汇编语言是使用助记符()就应运而生。实际上汇编语言是使用助记符(MnemonicsMnemonics)来代替机器指令的操作码(来代替机器指令的操作码(0 0和和1 1的指令集),用标号(的指令集),用标号(LabelLabel)和地址)和地址符号(符号(SymbolSymbol)分别来代替机器指令或者操作数值的存储地址,其大)分别来代替机器指令或者操作数值的存储地址,其大体
13、的工作原理如图体的工作原理如图 2-4 2-4 所示。机器语言和汇编语言统称为低级语言所示。机器语言和汇编语言统称为低级语言(1946195319461953年)。年)。图2-4 汇编语言大体的工作原理 与机器语言相比,汇编语言确实有了很大的进步,但是人们与机器语言相比,汇编语言确实有了很大的进步,但是人们希望让编程语言与自然语言无缝对接,于是编程语言进入了高级希望让编程语言与自然语言无缝对接,于是编程语言进入了高级语言(语言(High-Level Programming LanguageHigh-Level Programming Language)时代()时代(19541954年至今)。年
14、至今)。相对于机器语言的机器码(相对于机器语言的机器码(Machine CodeMachine Code),高级语言基本以人),高级语言基本以人们的日常语言为基础,基本上人们易于接受的文字就是构成高级们的日常语言为基础,基本上人们易于接受的文字就是构成高级语言的基本词汇。由于早期的计算机技术都主要由美国主导,因语言的基本词汇。由于早期的计算机技术都主要由美国主导,因此高级语言基本都是以英语为蓝本的。因为英语是国际语言且简此高级语言基本都是以英语为蓝本的。因为英语是国际语言且简单易懂,程序基本上都是用英文实现的,所以想成为合格的编程单易懂,程序基本上都是用英文实现的,所以想成为合格的编程人员,英
15、语基础是必不可少的。接下来我们就大体看看整个高级人员,英语基础是必不可少的。接下来我们就大体看看整个高级语言的发展历程。语言的发展历程。19541954年,年,John BackusJohn Backus在纽约正式发布人类第一个高级编程语在纽约正式发布人类第一个高级编程语言言FORTRANFORTRAN(FORmula TRANslatorFORmula TRANslator的几个字母的缩写拼合)的几个字母的缩写拼合),从,从字面翻译(公式翻译语言)就知道其主要是用来做数学数值计算字面翻译(公式翻译语言)就知道其主要是用来做数学数值计算尤其是科学计算的。尤其是科学计算的。FORTRAN FOR
16、TRAN 的功能简单,但它的开创性工作的功能简单,但它的开创性工作在社会上引起了极大的反响。在社会上引起了极大的反响。1957 1957年,第一个年,第一个FORTRANFORTRAN编译器在编译器在IBM 704IBM 704计算机上实现,并计算机上实现,并首次成功运行了首次成功运行了FORTRANFORTRAN程序。随后在程序。随后在19601960年出现了第一个结构化年出现了第一个结构化语言语言AlgolAlgol(Algorithmic LanguageAlgorithmic Language),它是算法语言的鼻祖,目),它是算法语言的鼻祖,目的在于纯粹面向描述计算过程,其语法也是用严
17、格的公式化的方的在于纯粹面向描述计算过程,其语法也是用严格的公式化的方法说明的。法说明的。同时,值得一提的是,同时,值得一提的是,Algol 60Algol 60是程序设计语言发展史上的一是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的学科。个里程碑,它标志着程序设计语言成为一门独立的学科。19641964年,年,美国达特茅斯学院的美国达特茅斯学院的J.KemenyJ.Kemeny和和T.KurtzT.Kurtz开发了开发了BASICBASIC(Beginners Beginners All Purpose Symbolic Introduction CodeAll Pu
18、rpose Symbolic Introduction Code),该语言只有),该语言只有2626个变个变量、量、1717条语句,是初学编程人员的福音。条语句,是初学编程人员的福音。后来,编程语言发展到了使用编译器的阶段,出现了我们都熟知的后来,编程语言发展到了使用编译器的阶段,出现了我们都熟知的C C语言(语言(Compiler languageCompiler language)。这种语言的核心在于编译器,而编译器的)。这种语言的核心在于编译器,而编译器的作用就是把某种语言写的代码转变为机器语言,从而让计算机识别并运行。作用就是把某种语言写的代码转变为机器语言,从而让计算机识别并运行。高
19、级语言经过编译器时代的发展,过渡到面向对象时代(高级语言经过编译器时代的发展,过渡到面向对象时代(19951995年开年开始),编程人员终于可以针对特殊的对象进行一对一的编程处理。业内称始),编程人员终于可以针对特殊的对象进行一对一的编程处理。业内称这种方法为面向对象程序设计(这种方法为面向对象程序设计(Object-Oriented ProgrammingObject-Oriented Programming,OOPOOP)。)。随着面向对象程序设计语言的不断成熟,随着面向对象程序设计语言的不断成熟,IDEIDE(Integrated Integrated Develop Environme
20、ntDevelop Environment)作为提供程序开发环境的应用程序开始得)作为提供程序开发环境的应用程序开始得到发展。到发展。IDEIDE一般包括代码编辑器、编译器、调试器和图形用户界一般包括代码编辑器、编译器、调试器和图形用户界面工具,也就是集成了代码编写功能、分析功能、编译功能、调面工具,也就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套件。这样的集成开发环境大大试功能等一体化的开发软件服务套件。这样的集成开发环境大大方便了编程人员的开发工作。随着方便了编程人员的开发工作。随着JavaJava语言的全球风靡,与之相语言的全球风靡,与之相关的关的IDEID
21、E也不断地发展起来。也不断地发展起来。下面我们总结一下目前市场上的所用编程语言。下面我们总结一下目前市场上的所用编程语言。(1 1)JavaJava的使用者最多。的使用者最多。(2 2)C C和和C+C+在嵌入式开发方面的地位不可动摇。在嵌入式开发方面的地位不可动摇。(3 3)C#C#迅速崛起。迅速崛起。(4 4)其他程序如)其他程序如RubyRuby、JSPJSP、JavaScriptJavaScript、PHPPHP等也占据了一定的市场。等也占据了一定的市场。(5 5)未来的编程语言是动态语言如)未来的编程语言是动态语言如PythonPython的天下的天下。2.2.2 Python2.2
22、.2 Python语言语言 Python Python语言诞生于语言诞生于19911991年(比年(比JavaJava还早,最早发行于还早,最早发行于19941994年),年),并且一直是比较流行的十大计算机语言之一。并且一直是比较流行的十大计算机语言之一。PythonPython可以应用在命可以应用在命令行窗口、图形用户界面(包括令行窗口、图形用户界面(包括WebWeb)、客户端和服务器端)、客户端和服务器端WebWeb、大、大型网站后端、云服务(第三方管理服务器)、移动设备、嵌入式设型网站后端、云服务(第三方管理服务器)、移动设备、嵌入式设备等许多的计算环境下。从一次性的脚本到几十万行的系
23、统,备等许多的计算环境下。从一次性的脚本到几十万行的系统,PythonPython都可以进行游刃有余的开发。都可以进行游刃有余的开发。PythonPython语言自身的优点和在实际应用方面的便捷性。语言自身的优点和在实际应用方面的便捷性。首先介绍命令行终端窗口。命令行终端窗口就是我们所熟知的首先介绍命令行终端窗口。命令行终端窗口就是我们所熟知的shellshell程序,它是操作系统内置的可直接由系统核心提供命令运行并显示结果程序,它是操作系统内置的可直接由系统核心提供命令运行并显示结果的编程语言。的编程语言。WindowsWindows下的下的shellshell即是我们称为即是我们称为CMD
24、CMD的命令行终端,其运行的命令行终端,其运行后缀为后缀为.bat.bat的的BATCHBATCH格式文件。格式文件。LinuxLinux和其他的和其他的UNIXUNIX操作系统(包括操作系统(包括macOS macOS X X等)有很多的等)有很多的shellshell程序,其中,最为人们所熟知的便是程序,其中,最为人们所熟知的便是bashbash(或其简(或其简写写shsh)程序语言。)程序语言。shell shell一般是程序人员接触的第一种程序语言,其百行之后的扩展性一般是程序人员接触的第一种程序语言,其百行之后的扩展性很差,同时运行速度一般,如下就是一段很差,同时运行速度一般,如下就
25、是一段shellshell程序。程序。然后,我们再来看看然后,我们再来看看C C和和C+C+。它们都是底层语言,应用在十。它们都是底层语言,应用在十分重视程序运行效率和做硬件嵌入式开发的场景时具有很好的效分重视程序运行效率和做硬件嵌入式开发的场景时具有很好的效果,但是人们很难学习,并且有许多细微的地方需要做缜密的处果,但是人们很难学习,并且有许多细微的地方需要做缜密的处理,稍微不小心就会发生程序全盘崩溃的情况。理,稍微不小心就会发生程序全盘崩溃的情况。Java Java语言虽然解决了很多语言虽然解决了很多C C和和C+C+的问题,但是代码实在繁杂,的问题,但是代码实在繁杂,让人无所适从。让人无
展开阅读全文