人工智能基础通识教程(第3章 人工智能技术平台)人工智能基础通识教程(第3章人工智能的计算平台)本章目录3.1计算系统的发展3.2单计算机系统3.3计算机的数字化编码3.4多计算机系统3.5GPU并行计算系统3.6云计算3.7本章小结桂小林2人工智能基础3.1人工智能平台概述人工智能的计算平台是支撑AI算法和模型运行的基础设施,它通常包括硬件和软件两个层面。硬件层面包括个人计算机、多计算机系统、云计算系统、边缘计算设备和专用AI加速器等。软件层面包括深度学习框架、机器学习库和AI开发平台等。事实上,我们每天都在使用计算系统或平台,小到智能手机、平板电脑、桌面电脑,大到服务器和云计算系统。桂小林33.1.1硬件基础设施人工智能的硬件基础设施是支撑人工智能技术运行与发展的基石,主要包括计算硬件、数据存储解决方案和网络基础设施等关键组成部分,每个部分都有其特定的作用和功能。1、计算硬件最简单的计算硬件包括个人计算机、手机和平板计算机;稍微复杂的计算硬件主要包括高性能计算服务器;更复杂的计算硬件则包括人工智能专用服务器。2、数据存储人工智能中的数据存储解决方案旨在应对数据爆炸性增长、高性能需求以及成本效益等多方面的挑战。例如,传统的存储技术(如基于硬盘驱动器(HDD)或固态硬盘(SSD))在人工智能快速发展的背景下处理大规模数据集时,可能面临性能瓶颈、成本高昂以及运维复杂等问题。特别是在AI应用中,数据的读取和写入速度、存储密度以及长期稳定性都成为了关键考量因素。桂小林43.1.1硬件基础设施3、网络基础设施人工智能的网络设施是一个综合性的体系,它涵盖了多个层面和组件,以支持人工智能技术的运行和应用。(1)5G/6G网络(2)有线和无线网络融合(3)网络通信协议(4)物联网设备(5)网络安全防护(7)高速网络桂小林53.1.2软件开发环境人工智能的软件平台与开发环境是支撑人工智能技术应用与开发的重要基础。1、人工智能的软件平台人工智能软件平台通常集成了各种工具、库和框架,用于支持数据处理、模型训练、推理和部署等任务。(1)GoogleAIPlatform使机器学习开发人员、数据科学家和数据工程师能够轻松地将他们的ML项目从构思到生产和部署。(2)TensorFlow用于使用数据流图进行数值计算的开源软件库。(3)MicrosoftAzure支持将模型作为Web服务进行部署。桂小林62、人工智能的开发环境为了高效地开发人工智能应用,开发者需要搭建一个合适的开发环境。这通常包括编程语言、开发框架、数据处理工具、可视化工具以及硬件支持等。(1)Python是人工智能开发中最常用的编程语言之一。R也是常用的数据分析和机器学习编程语言,尤其在统计建模和图形呈现方面表现出色。(2)TensorFlow、PyTorch等深度学习框架.(3)数据处理与可视化工具:NumPy、Pandas等数据处理库可以用于数据的清洗、转换和分析;Matplotlib、Seaborn等可视化工具则用于数据的可视化呈现。(4)集成开发环境(IDE):PyCharm、JupyterNotebook等IDE提供了代码编写、调试、测试和部署的一站式服务,大大提高了开发效率。桂小林73.2单计算机系统单计算机系统是指一种大小、价格和性能适用于个人使用的多用途计算机。台式机、笔记本电脑、平板电脑、超级本和智能手机等都属于这个范畴。桂小林83.2.1单计算机系统模型计算模式的演变经历了一个较为长期的演变过程。从早期的图灵机理论模型,到冯诺依曼单计算机实现模型,再到量子计算体系;从多机并行计算体系到网络分布式计算体系。每一次计算模型的演化都有其深刻的技术背景和巨大的应用需求。应用需求是推动计算模型不断演化的主要动力。桂小林9图灵机模型1936年,英国数学家阿兰・麦席森・图灵(1912―1954年)提出了一种抽象的计算模型—图灵机(Turingmachine)。图灵机,又称图灵计算机,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作。(1)在纸上写上或擦除某个符号。(2)把注意力从纸的一个位置移动到另一个位置。桂小林10冯诺依曼计算机体系冯·诺依曼计算机是一个包括控制器、运算器、存储器、输入设备、输出设备五部分组成的系统,如图所示。构运算器又称算术逻辑单元(arithmeticalandlogicalunit,ALU)。ALU负责算术运算和逻辑运算。算术运算包括加、减、乘、除等基本运算;逻辑运算包括逻辑判断、关系比较以及其他的基本逻辑运算,如“与”“或”“非”等。控制器是整个计算机系统的指挥控制中心,它控制计算机各部分自动协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。桂小林11冯诺依曼计算机体系输入设备用来向计算机输入各种原始数据和程序的设备叫输入设备。输入设备把各种形式的信息,如数字、文字、声音、图像等转换为数字形式的“编码”,即计算机能够识别的用1和0表示的二进制代码,并把它们“输入”(Input)到计算机的内存中存储起来。键盘是标准的输入设备,除此外还有鼠标、扫描仪、光笔、数字化仪、麦克风、视频摄像机等。输出设备从计算机输出各类数据或计算结果的设备叫作输出设备。输出设备把计算机加工处理的结果(仍然是数字形式的编码)变换为人或其他设备所能接收和识别的信息形式,如文字、数字、图形、图像、声音等。常用的输出设备有显示器、打印机、绘图仪、音像等。通常,我们把输入设备和输出设备统称为输入/输出设备(简称,I/O设备)。桂小林12冯诺依曼计算机体系冯-诺依曼计算机的工作过程可以描述如下。第一步:将程序和数据通过输入设备送入存储器,初始化程序指针,启动运行。第二步:计算机的CPU根据程序指针的值,从存储器中取出程序指令送到控制器去分析和识别,根据分析识别结果,确定该指令功能和含义。第三步:控制器根据指令的功能和含义,发出相应的命令(如打开或关闭数据通路上的开关),将存储单元中存放的操作数据取出送往运算器进行运算(如进行加法、减法或逻辑运算等),再把运算结果送回存储器指定的单元中。第四步:当运算任务完成后,就可以根据指令将结果通过输出设备输出。第五步:修改程序指针,指向下一条指令,重复第二至第五步。桂小林13量子计算体系1982年,美国著名物理物学家理查德·费曼在一个公开的演讲中提出利用量子体系实现通用计算的想法。1985年,英国物理学家大卫·杜斯提出了量子计算图灵机模型。理查德·费曼当时就提出如果用量子系统所构成的计算机来模拟量子现象则运算时间可大幅度减少,从而量子计算机的概念诞生了。1993年,姚期智等证明了量子图灵机与量子线路之间存在等价性从而为实现量子计算机提供了理论基础。桂小林143.2.2单计算机系统的组成1.主机主机是微型计算机系统的核心部件,通常采用总线结构,CPU、存储器、外设接口等均挂接在总线上,外设通过总线和外设接口与主机互连,完成各种输入输出功能。2.外设计算机的输入/输出设备种类繁多,不同设备可以满足人们使用计算机时的各种不同需要。桂小林15计算机软件计算机软件是计算机运行与工作的灵魂,不配置计算机软件的计算机什么事情都做不成。计算机软件按其功能可分为系统软件、应用软件和软件开发环境三大类。目前,常用的台式计算机操作系统有:麒麟、Windows、Unix、Linux、MacOS等;常用的手机操作系统有谷歌的安卓(Android)、苹果的iOS、华为的鸿蒙(Harmony)、微软的WindowsPhone/Mobile等。应用软件是指专门为解决某个应用领域内的具体问题而编制的软件(或实用程序)。如文字处理软件、计算机辅助设计软件、企事业单位的信息管理软件,以及游戏软件等等。软件集成开发环境(IDE)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。桂小林163.3计算机的数字化编码什么是信息信息通常是指音讯或消息,即通信系统传输和处理的对象,泛指人类社会传播的一切内容。在网络通信和工业应用系统中,信息是一种普遍存在的形式,人们通过感知器获得来自自然界和社会的不同信息并以此识别不同事物,从而认识和改造世界。什么是信息革命信息革命是指由于信息生产、处理手段的高度发展而导致的社会生产力、生产关系的一种变革活动,有时也称为第三次工业革命。信息革命的主要标志是计算机的出现、互联网的全球化普及与应用。桂小林17什么是数字技术数字技术(digitaltechnology)是一项与电子计算机相伴相生的科学技术,它是指借助一定的设备将各种信息,包括:图、文、声、像等,转化为电子计算机能识别的二进制数字“0”和“1”后进行运算、加工、存储、传送、传播、还原的技术。由于在运算、存储等环节中要借助计算机对信息进行编码、压缩、解码等,因此,有时候也称为数字化编码技术等。

“数字化技术”是随着互联网的迭代与发展,在市场需求中应运而生出来的一门技术。它是指组织在处理或存储数据和完成许多其他功能时所应用的电子工具、设备、系统和资源,目的在于提高组织与员工的生产力和效率。桂小林183.3.1计算机的数制信息的数字化主要涉及数据的二进制表示及编码。在日常生活中,人们通常采用十进制(decimal)来表示数据。但在计算机中,由于受到电子元器件技术的限制,计算机采用二进制(binary)来表示数据。由于一个二进制数所需要的位数较多,所以书写不方便,记忆也困难。在计算机编程中,人们为了书写方便,还经常使用八进制(octal)和十六进制(hexadecimal)来表示数据。桂小林193.3.1计算机的数制八进制是一种以8为基数的记数法,由数码0、1.2.3、4、5、6、7八个数组成,常用大写字母O或Q表示,采用“逢八进一”进位方式,例如,353.72Q或53.72Q。十六进制是一种以16为基数的记数法,由数码0~9和字母A~F组成(其中,A~F分别表示10~15),常用字母H或h标识,采用“逢十六进一”的进位方式,例如,8A.E8H。在历史上,中国曾经在重量单位上使用过十六进制,比如,规定16两为一斤。桂小林203.3.1计算机的数制计算机二进制设置了位(bit)、字节(byte)、字(word)和双字等多种数据表示单位。(1)位位是计算机内部编码的最基本单位。在计算机中,程序和数据都用二进制表示,一个二进制位只能表示两种状态位,即0和1。位是计算机存储数据的最小单位。(2)字节一个字节等于八个二进制位。以字节作为度量的单位有B(字节)、KB(千字节)、MB(兆字节)、GB(吉字节)和TB(太字节),其中,1KB=1024B、1MB=1024KB、1GB=1024MB、1TB=1024GB。(3)字和双字一个字等于2个字节;一个双字等于2个字,4个字节。桂小林213.3.2进制数的转换1.二进制数转换为十六进制数将二进制数的整数部分和小数部分分别进行转换,即以小数点为界,整数部分从小数点开始往左数,每4位分成一组,当最左边的数不足4位时,可根据需要在数的最左边添加若干个“0”以补足4位;对于小数部分,从小数点开始往右数,每4位分成一组,当最右边的数不足4位时,可根据需要在数的最右边添加若干个“0”以补足4位,最终使二进制数的总的位数是4的倍数,然后用相应的十六进制数取而代之。例如:111013.1010011011B=00111013.101001101100B=3B.A6CH2.十六进制数转换为二进制数要将十六进制数转换成二进制数,只要将1位十六进制数写成4位二进制数,然后将整数部分最左边的“0”和小数部分最右边的“0”去掉即可。例如:3B.328H=00111011.001100101000B=111011.001100101B桂小林223.十进制数转换为二进制数要将一个十进制数转换成二进制数,通常采用的方法是基数乘除法。这种转换方法是对十进制数的整数部分和小数部分分别进行处理,整数部分用除基取余法,小数部分用乘基取整法,最后将它们拼接起来即可。1)十进制整数转换为二进制整数(除基取余法)十进制整数转换为二进制整数的规则是:除以基数(这里为2)后取余数,先得到的余数为低位,后得到的余数为高位。例如,将175D转换成二进制数,如右图2)十进制小数转换为二进制小数(乘基取整法)将十进制小数转换为二进制小数的规则是:乘以基数(这里为2)取整数,先得到的整数为高位,后得到的整数为低位。桂小林233.3.3字符编码信息的数字化编码(也称为信息编码、数据编码)是指用“0”和“1”这两个最简单的二进制数码,按照一定的组合规则来表示数据、文字、声音、图像、视频等复杂信息。本节主要讨论英、中文字符和语音等在计算机中的表示方法。1.英文字符的ASCII编码ASCII是美国标准信息交换代码,广泛用于小型机和各种微型计算机中。标准的ASCII是由7位二进制数组成,其对应的国际标准为ISO646,其字符编码规则如表1-1所示,表中的列号(横轴)用7位ASCII的高3位二进制b6b5b4表示,行号(纵轴)用ASCII的低4位二进制b3b2b1b0表示,表格的内容为对应ASCII的字符。桂小林24该标准定义了128个符号,在128个ASCII字符中,有95个是可显示和打印的字符,包括10个十进制数字(0~9)、52个英文大写和小写字母(A~Z,a~z),以及若干个运算符和标点符号。例如,大写字母A的ASCII码为1000001B(十六进制表示为41H,十进制表示为65),空格的ASCII为0100000B(十六进制为20H,十进制为32)等。桂小林252.中文字符的汉字机内码1981年,中国制订了中华人民共和国国家标准信息交换汉字编码代号为GB2312-80,在这种标准编码的字符集中一共收录了汉字和图形符号7445个,其中包括6763个常用汉字和682个图形符号。为避免同西文的存储发生冲突,GB2312字符在进行存储时,通过将原来的每个字节第8位设置为1,用来跟西文加以区别。如果第8位为0,则表示西文字符,否则表示GB2312中的中文字符。桂小林263.多语种的混合编码由于不同国家或地区的ANSI编码之间互不兼容,解决这个问题的最佳方案是设计一种全新的编码方法,而这种方法必须有足够的能力来容纳全世界所有语言中任意一种语言的所有符号,这就是统一码Unicode。目前实际应用的Unicode对应于两字节通用字符集UCS-2,每个字符占用2个字节,使用16位的编码空间,理论上允许表示216=65536个字符,可以基本满足各种语言的使用需要。考虑到将来,又定义了UCS-4编码,即每个字符占用4个字节(实际上只用了31位,最高位必须为0),理论上可以表示231=2147483648个字符。桂小林274.多语种混合的压缩编码UTF-8是一种是针对Unicode码进行压缩的可变长度字符编码。它可以根据不同的符号自动选择编码的长短,其目的是提高Unicode的编码效率。UTF-8根据不同字符,使用1~4字节为每个字符进行编码,其编码规则为:1)当为标准ASCII字符集时,则采用1个字节进行编码,对应Unicode范围为U+0000~U+007F。2)当为带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等字母时,则采用2个字节编码,对应Unicode范围为U+0080~U+07FF。3)当为中日韩文字、东南亚文字、中东文字等时,则使用3个字节进行编码。4)当为其他极少使用的语言字符时,则使用4个字节进行编码。桂小林28Unicode与UTF-8之间的编码映射关系如表1-3所示。桂小林29Unicode-2到UTF-8编码步骤如下:第一,根据Unicode的编码范围,确定转换后的UTF-8需要的字节数,选取对应的UTF-8编码模板;第二,将Unicode编码写成二进制序列,以二进制形式,从高到低位,依次填充到对应的UTF-8编码模板中“x”位置上。第三,将填充完成的UTF-8编码模板按照十六进制读出,就是转换后的UTF-8编码。桂小林303.3.4字形编码ASCII、汉字机内码和Unicode码都是一种文字编码方法,不能直接在屏幕上进行文字显示。要在屏幕上进行显示,不管是中文汉字还是英文字母和数字,都需要为其构建相对应的点阵字库或矢量字库。我们把为中英文字符构建点阵字库或矢量字库的过程,称为字形编码。桂小林31例如,一个16×16点阵的“你”字,其点阵结构如图所示。在图中,黑色小方块用1表示,白色小方块用0表示。就可以得到一个32字节的“你”字的字模信息2.中文字符显示的矢量编码矢量字库就是通过数学曲线来对每一个汉字进行描述,保存的是每个汉字的字形信息,比如一个笔画的起始、终止坐标,半径、弧度和连线的导数等。字形显示时,字体的渲染引擎读取这些矢量信息,然后通过数学运算来进行显示。这类字库可以保证汉字在任意缩放下不变形,笔画轮廓仍然能保持圆滑和不变色。主流的矢量字库有3种:Type1TrueType OpenType桂小林323.4多计算机系统1)并行计算系统并行计算(parallelcomputing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。根据并行计算系统使用的CPU的差异性,可以将并行计算系统分为同构并行计算系统和异构并行计算系统。同构计算系统是指由多个相同的处理机或计算机通过网络连接起来所构建的一个多计算机系统。异构计算系统是指由一组异构机器通过高速网络连接起来、配以异构计算支撑软件所构成的一个多计算机系统。桂小林331)并行计算系统超级计算系统高效能的并行计算系统又称为超级计算机系统。2003年,曙光4000L超级计算机登上全国十大科技进展的榜单。基于中国自主研发的神威26010众核处理器构建的“神威-太湖之光”超级计算机系统,安装了40960个峰值性能3168万亿次每秒的国产处理器。2020年7月,中国科大在“神威-太湖之光”上首次实现千万核心并行第一性原理计算模拟。图给出的是“天河二号”的外部架构。桂小林342)网络计算系统网络计算系统是一种分布式计算系统,旨在为各类研究者提供汇集全球各地大量个人电脑和服务器的强大运算能力,主要包括网格计算平台、云计算平台等。1)网格计算平台网格计算平台(gridcomputingplatform)是2018年公布的计算机科学技术名词。它是一种基于互联网的分布式计算平台。它通过系统软件,把分布在不同地理位置的计算资源有效地集成和管理起来,能屏蔽计算、存储或软件资源的异构性,向开发人员提供单一系统映像,以及全局一致、安全友好的编程接口。桂小林352)网络计算系统2)云计算平台在2006年的搜索引擎大会上,谷歌公司的首席执行官埃里克·施密特首次提出“云计算”这一概念。云计算一经提出,发展极为迅速,不仅受到工业界的高度重视,也得到了学术界的广泛关注。我国政府对云计算的发展给予了有力的支持,在2015年印发的《国务院关于促进云计算创新发展培育信息产业新业态的意见》中,明确了我国云计算产业的发展目标、主要任务和保障措施。3)移动边缘计算平台移动边缘计算是一种新兴的分布式计算模式,它结合移动通信技术和云计算技术,将计算资源和服务推向网络边缘。移动边缘计算将应用服务部署到边缘服务器上,以解决移动设备面临的计算能力不足、延迟高和能源消耗大等问题。桂小林363.5GPU并行计算系统人工智能的GPU并行计算系统是一种高效的计算架构,特别适用于处理人工智能领域中的大规模数据和复杂计算任务。3.5.1GPU体系架构GPU(图形处理单元)并行计算系统的体系架构是专门设计用于高效处理大规模并行计算任务的。1、GPU体系架构GPU的体系架构主要包括计算单元、内存系统、多处理单元等几个关键部分。2、GPU并行计算体系架构GPU的并行计算体系架构包括GPU核心、显存与显存控制器、电源管理单元、散热系统和接口电路等几个部分。桂小林373.5GPU并行计算系统3.5.2GPU工作流程与应用GPU采用流式并行计算模式,可对每个数据行进行独立的并行计算。这种模式使得GPU能够高效地处理大规模并行计算任务。GPU具有多级内存结构,包括寄存器、L1缓存、L2缓存、显存等。这些内存层次结构的设计旨在提高内存访问效率,减少延迟。随着技术的发展,GPU逐渐具备了高度的可编程性。开发人员可以使用特定的编程语言(如CUDA)为GPU编写程序,实现自定义的计算任务。桂小林383.6云计算维基百科:云计算是一种新的基于互联网的计算方式,虚拟化的资源在互联网上通过服务的形式提供给用户,而用户不需要知道这些支持云计算的基础设施的具体管理方法。亚马逊公司:云计算是一种新的计算模型,它通过互联网以及“即付即用”的模式进行资源和应用的交付。云计算服务提供商能够给用户提供快速、弹性的资源访问,用户能够简单地通过互联网访问存储、数据库以及服务器等而无须了解底层架构和具体的实现细节。IBM公司:云计算是一种共享的网络交付信息的服务模式,用户看到的只是服务本身,可以按照实际使用量付费,不用去关心实现服务的底层基础设施。桂小林393.6.1云计算的服务模式按照云计算的服务范围和服务对象,可以将云计算平台分为三类:公有云平台、私有云平台和混合云平台。公有云:公有云是指云服务面向大众,由云服务提供商运行和维护,为用户提供各种IT资源,包括应用程序、软件运行环境、物理基础设施等。典型的公有云包括:GoogleAppEngine、AmazonEC2、IBMDeveloperCloud及中国的“无锡云计算中心”私有云:私有云是指云服务提供商仅为本企业或组织内部提供云服务,又称为专属云。相对公有云,私有云的用户完全拥有整个云中心设施,可以控制应用程序的运行位置及决定用户的使用权限等。混合云:混合云是指把“公有云”和“私有云”结合在一起的方式。用户可以通过一种可控的方式实现资源部分拥有、部分与他人共享。桂小林403.6.1云计算的服务模式按照云计算提供的服务能力划分,云计算可划分为三个层次的服务模式:软件即服务(SaaS):服务提供商在云计算设施上运行应用程序,用户通过各种瘦客户终端设备(如手机、平板)使用这些应用程序。平台即服务(PaaS):用户采用服务提供商支持的工具和编程语言创建个性化的应用,然后将其部署到云平台中运行。如谷歌的AppEngine、微软的Azure和新浪的AppEngine等。基础设施即服务(IaaS):将数据中心的计算和存储资源虚拟化,以授权服务形式提供,用户按自己的意志部署处理器、存储系统、网络、数据库等资源,自主运行操作系统和应用程序等软件。如Amazon的弹性计算云EC2(ElasticComputeCloud)和IBM的蓝云平台等。桂小林413.6.2云计算虚拟化技术在计算机科学领域中,虚拟化代表着对计算资源的抽象。例如,对物理内存的抽象,产生了虚拟内存技术,使得应用程序认为其自身拥有连续可用的地址空间;对CPU的抽象,产生了CPU的虚拟化技术,可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。桂小林423.6.3云存储技术云数据存储(也称云存储)是在云计算概念上延伸和发展出来的一个新的概念,是指通过集群应用、分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。云存储的发展推动了NOSQL发展。传统的关系数据库具有较好的性能,高稳定性,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例,为互联网的发展做出了卓越的贡献。云存储不是一种产品,而是一种服务,它的概念始于Amazon提供的简单存储服务(S3),同时还伴随着亚马逊弹性计算云(EC2),在Amazon的S3的服务背后,它还管理着多个商业硬件设备,并捆绑着相应的软件,用于创建一个存储池。目前常见的符合这样特征的系统,有Google的GFS(GoogleFileSystem)以及BigTable,Apache基金会的Hadoop(包括HDFS和HBase),此外还有MongoDB、Redis等等。桂小林43(1)Hadoop体系架构Hadoop是具有可靠性和扩展性的一个开源分布式系统的基础框架,被部署到一个集群上,使多台机器可彼此通信并能协同工作。Hadoop它为用户提供了一个透明的生态系统,用户在不了解分布式底层细节的情况下,可开发分布式应用程序,充分利用集群的威力进行数据的高速运算和存储。Hadoop的核心是分布式文件系统HDFS和MapReduce。HDFS支持大数据存储,MapReduce支持大数据计算。桂小林44Haddop生态系统Hadoop是在分布式服务器集群上存储海量数据并运行分布式分析应用的一个开源的软件框架,具有可靠、高效、可伸缩的特点。先后经历了Hadoop1时期和Haddop2时期。桂小林45HDFS的体系结构HDFS采用主从式(master/slave)架构,由一个名称节点(namenode)和一些数据节点(datanode)组成。其中,名称节点作为中心服务器控制所有文件操作,是所有HDFS元数据的管理者,负责管理文件系统的命名空间(namespace)和客户端访问文件。数据节点则提供存储块,负责本节点的存储管理。HDFS公开文件系统的命名空间,以文件形式存储数据。HDFS将存储文件分为一个或多个数据单元块,然后复制这些数据块到一组数据节点上。