大数据技术及应用-基于Python语言 课件 第1-3章 绪论、大数据实验环境构建、大数据采集与预处理_第1页
大数据技术及应用-基于Python语言 课件 第1-3章 绪论、大数据实验环境构建、大数据采集与预处理_第2页
大数据技术及应用-基于Python语言 课件 第1-3章 绪论、大数据实验环境构建、大数据采集与预处理_第3页
大数据技术及应用-基于Python语言 课件 第1-3章 绪论、大数据实验环境构建、大数据采集与预处理_第4页
大数据技术及应用-基于Python语言 课件 第1-3章 绪论、大数据实验环境构建、大数据采集与预处理_第5页
已阅读5页,还剩202页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章绪论目录Contents1.1

大数据的基本概念1.2大数据的价值和作用1.3大数据带来的思维方式变革1.4大数据处理技术基础1.5大数据面临的技术挑战大数据的基本概念1.1什么是“大数据”大数据的特点大数据的构成1.1.1什么是“大数据”

“大数据”这一名词最早公开出现于1998年,美国高性能计算公司SGI的首席科学家约翰•马西(John Mashey)在一个国际会议报告中指出:随着数据量的快速增长,必将出现数据难理解、难获取、难处理和难组织等四个难题,并用“Big Data(大数据)”来描述这一挑战,在计算机领域引起了人们的重视和关注。1.1.1什么是“大数据”在“大数据”这一概念形成的过程中,有三个标志性的事件。2008年9月,美国《自然》(Nature)杂志专刊——ThenextGoogle,第一次正式提出了“大数据”概念。2011年2月1日,《科学》(Science)杂志专刊——Dealingwithdata,第一次综合分析了大数据对人们生活造成的影响,详细描述了人类面临的“数据困境”。2011年5月,麦肯锡全球研究院(McKinseyGlobalInstitute)发布报告——BigData:TheNextFrontierforInnovation,Competition,andProductivity,第一次给大数据做出相对清晰的定义。1.1.1什么是“大数据”维基百科(Wikipedia)对大数据的定义是:规模庞大,结构复杂,难以通过现有商业工具和技术在可容忍的时间内获取、管理和处理的数据集。从以上对大数据的定义可以看出,大数据与传统所处理的数据相比,具有体量大、结构复杂的显著特点,并且难以用常规的技术进行处理。1.1.2大数据的特点通常用“4V特性”来描述大数据的主要特征,即大数据具有体量大(Volume)、种类多(Variety)、速度快(Velocity)和价值高(Value)四个主要特征。大数据的基本特征(1)体量大(Volume)

大数据的特征首先体现在数量巨大,存储单位达到TB、PB甚至EB级别。图灵奖得主JimGrey对人类社会信息量的增长提出一个“新摩尔定律:”每18个月,全球信息量是计算机有史以来全部信息量的总和“。根据IDC(InternationalDataCorporation,国际数据公司)的一份报告预测,从2013年至2020年,全球数据规模扩大了50倍,每年产生的数据量将增长到44万亿GB,相当于美国国家图书馆数据量的数百万倍,2025年全球数据总量预计将达175ZB。

大数据体量大Domo公司2020年每秒全球大数据产生量分析的可视化图示(/learn/data-never-sleeps-9)。可以看出Facebook用户每秒共享的图片有240K张、上传了44M条信息,INSTAGRAM用户每秒共享了65K张图片……。

大数据的基本特征(2)种类多(Variety)

大数据与传统数据相比,数据的来源广、维度大、类型杂。(3)速度快(Velocity)

随着计算机技术、互联网和物联网的发展,数据生成、储存、分析、处理的速度远远超出人们的想象力,这是大数据区别于传统数据或小数据的显著特征。(4)价值高(Value)

大数据有巨大的潜在价值,具有价值高但价值密度低的特点,也就是说同其呈几何指数爆发式增长相比,某一对象或模块数据的价值密度较低,这给我们挖掘海量的大数据增加了难度和成本。

1.1.2大数据的构成大数据的构成可以分为结构化数据、非结构化数据和半结构化数据三类

(1)结构化数据:结构化数据具有固定的结构、类型和属性划分等,通常可以用二维表表示,如用关系型数据库存储的信息、Excel表所存放的信息等。学号姓名性别出生日期1100101小王男1998-03-051100102小李女1999-08-051100103小陈男2000-03-07结构化数据示例1.1.2大数据的构成

(2)半结构化数据:半结构化数据具有一定的结构性,但又灵活多变。例如XML、HTML格式的文件,其自描述、数据结构和内容混杂在一起。可扩展标记语言XML是一种W3C制定的标准通用标记语言,已成为国际上数据交换的一种公共语言。1.1.2大数据的构成用XML文件格式来描述表1.2中的三条记录。1.1.2大数据的构成

(3)非结构化数据:非结构化数据是指无法采用固定的结构来表示的数据,如文本、图像、视频和音频等数据。非结构化数据其格式非常多样,无法用统一的结构表示,而且在技术上非结构化信息比结构化信息更难标准化和理解。文本、图片和视频文件示意图大数据的价值和作用1.21.2大数据的价值和作用1.人类的活动越来越依赖于数据电子商务物流金融教育科学研究……1.2大数据的价值和作用2.大数据的核心价值3.大数据的作用大数据的核心价值在于提供了一种人类认识复杂系统的新思维和新手段,可以帮助人们发现规律、预测未来和决策指导。目前,大数据技术在国内外各个行业发挥着越来越大作用,以下介绍几个著名的大数据应用案例。1.2大数据的价值和作用【案例】孟山都(Monsanto)是一家美国的跨国农业生物技术公司,该公司首先发起“GreenDataRevolution”运动,建立农业数据联盟(OpenAgDataAlliance)来统一数据标准,让农民也能享受大数据的成果。

典型的应用如农场设备制造商JohnDeere与DuPontPioneer联合提供“决策服务(DecisionServices)”,农民只需在驾驶室里拿出平板电脑,收集种子监视器传来的数据,然后将其上传给服务器,通过服务器端的智能决策服务系统,返回化肥的配方到农场的拖拉机上。1.2大数据的价值和作用

【案例】大数据金融监管。中国证监会于2013年下半年开始启用大数据分析系统,到2015年8月,已调查内幕交易线索375起,立案142起,分别比以往同期增长了21%、33%。上海证监局2017年以来招聘了大量的大数据研究和挖掘人才,专门模拟不同账户之间的关联,通过无数次的模拟分析找到看似无关,但本质上相关的账户之间的交易关联。1.2大数据的价值和作用

对于大数据在若干重要领域的作用,可以简短地总结如下:医疗大数据——看病更高效生物大数据——改良基因金融大数据——理财的利器零售大数据——了解消费者电商大数据——精准营销的法宝农牧大数据——量化生产交通大数据——畅通出行教育大数据——因材施教体育大数据——夺冠精灵食品大数据——安全饮食的保护伞政府大数据——改进社会服务讨论同学们谈谈大数据的作用数据带来的思维方式变革1.31.3大数据带来的思维方式变革大数据时代要关注三大变革:(1)处理数据理念的思维变革(2)挖掘数据价值的商业变革(3)面对数据风险的管理变革

其中,对于大数据时代带来的处理数据理念的思维模式转变,舍恩伯格提出了三个常著名的观点。大数据带来的思维方式变革

在过去,由于收集、储存和分析数据的技术落后,对大量数据的收集成本非常高昂,我们只能收集少量的数据进行分析。在大数据时代,可以获取足够大的数据样本乃至全体数据。抽样采用的不合理会导致预测结果的偏差,在大数据时代,依靠强大的数据处理能力,应该去处理所有数据。【案例】Farecast系统用大数据预测机票价格

1.要全体,不要抽样大数据带来的思维方式变革

因果分析和相关分析是人们认识、了解世界最重要的手段和方法。

因果关系,即某种现象(原因)引起了另一种现象(结果),其原因和结果必须同时具有必然的联系。

相关关系分析是从大量数据中通过频繁模式的挖掘,发现事物之间有趣的关联和相关联系,然而该分析方法通常面临数据量不足的问题。

在大数据时代,由于已经获取到了大量的数据,建立在相关关系分析法上面的预测成为大数据的核心。如果A事件和B事件经常一起发生,那么当B发生时,我们就可以预测A也发生了,至于为什么会是这样,在某些应用上,已经没那么重要了。【案例】沃尔玛:请把蛋挞与飓风用品摆在一起2.要相关,不要因果大数据带来的思维方式变革

对于采用“小数据”而言,由于收集的信息量比较少,必须确保记录下来的数据尽量精确,并要求计算模型和运算也非常精确,因为“差之毫厘便失之千里“。然而在大数据的“全样本时代”,有多少偏差就是多少偏差而不会被放大。谷歌公司的人工智能专家彼得.诺维格(PeterNorvig)说过:“大数据基础上的简单算法比小数据基础上的复杂算法更加有效。”因此快速获得一个大概的轮廓和发展脉络,要比严格的精确性重要得多。【案例】麻省理工学院的通货膨胀率预测3.要效率,允许不精确大数据处理技术基础1.4大数据处理的主要环节大数据的技术支撑流行的大数据技术1.4.1大数据处理的主要环节1.数据采集数据采集又称为数据获取,是指从现实世界系统中采集信息,并进行计量和记录的过程。数据的来源可能是传感器、互联网、系统运行的日志文件等,也可能是人类生活和生产活动所产生的各种类型的数据。在数据规模不断扩大的情况下,运用数据采集自动化工具,从外部系统、互联网和物联网等自动获取、传输和记录数据已经成为必要的技术手段。1.4.1大数据处理的主要环节

2.数据预处理采集的数据可能包含噪声、缺失值、不一致性和冗余等问题,数据预处理的目的就是要提高数据的质量。通过数据预处理工作,可以使残缺的数据完整,并将错误的数据纠正、多余的数据去除,进而将所需的数据挑选出来,并且进行数据集成。数据预处理有多种方法,如:数据清理,数据集成,数据变换,数据归纳等。1.4.1大数据处理的主要环节

3.大数据的存储与管理目前,“分布式存储系统”是大数据存储的主要技术手段,例如,分布式文件系统、集群文件系统和并行文件系统等。

云存储也是大数据存储常用的技术方法,它通过集群应用、网格技术或分布式文件系统等,将网络中各种不同的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。1.4.1大数据处理的主要环节分布式文件系统示意图课后学习分布式文件系统如何提高数据存储的可靠性?1.4.1大数据处理的主要环节4.大数据分析与挖掘数据信息知识智慧过去未来“分析”通常指用传统的统计学方法,对数据的特征进行分析,如:统计特征分析、数据分布特性分析和回归分析等。

而“挖掘”通常指的是用人工智能方法,挖掘大数据中所蕴含的知识,如:聚类、分类和关联规则挖掘等。

知识发现与数据挖掘(KDD)的过程可以用一个金字塔形形象地进行说明,如右图所示。知识发现与数据挖掘过程1.4.2大数据的技术支撑大数据技术发展的主要技术支撑来自于存储成本的下降、计算速度的提高和人工智能理论与技术的发展,而云计算和分布式系统、人工智能、物联网、硬件性价比的提高以及软件技术的进步推动了大数据技术的发展。如右图是大数据的三大支撑技术之间关系的示意图。大数据的支撑技术1.4.2大数据的技术支撑

1.云计算的支撑作用

云计算提供了云存储中心和分布式处理,一方面降低了存储成本,另一方面提供了强大的计算能力。没有云计算,就不会有大数据的被分析和利用。

2.人工智能与大数据一方面,数据及对数据的分析,客观上支撑了一大类人工智能的发展;另一方面,人工智能使得机器拥有理解数据的能力。

3.物联网与大数据

物联网为大数据技术的发展提供了海量的数据来源和广泛的应用平台;而大数据技术的发展,促进了物联网系统在更多领域的应用,并提高了其应用的效果。1.4.3目前流行的大数据技术大数据时代,数据的存储和处理由“集中式”向“分布式”演进。2003~2006年,Google发表了四篇文章,分别是关于分布式文件系统(GFS),分布式计算框架(MapReduce),大数据管理(BigTable)和分布式资源管理(Chubby),至此奠定了分布式计算发展的基础。在大数据处理技术中,“分布式存储”和“分布式计算”框架最为重要也是最基础的技术支撑,所谓“框架”是一组负责对系统中的数据进行操作的“计算引擎和组件”。1.4.3目前流行的大数据技术Hadoop和Spark是目前最著名的两大主流大数据处理框架。Hadoop生态系统示意图Hadoop被公认为行业大数据标准开源软件,通常运行在Linux平台上。几乎所有主流厂商都围绕Hadoop提供开发工具和技术服务。国内采用Hadoop的公司主要有百度、淘宝、网易、华为、中国移动等。1.4.3目前流行的大数据技术ApacheSpark是UCBerkeleyAMPLab(加州大学伯克利分校的AMP实验室)所开源的类似于MapReduce的通用大数据计算框架,Spark不同于MapReduce的是中间结果可以保存在内存中,而不再需要频繁读写HDFS(HadoopDistributedFileSystem),因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。当前,Hadoop与Spark两个大数据计算框架的结合是一种被广泛应用的大数据处理架构。

分布式存储1.分布式存储分布式存储是相对于集中式存储而言的。当前,随着大数据时代的到来和IT技术的飞速发展,各种非结构化数据(如图片、视频、音频等)呈几何数级增长,传统的集中式存储模式已经无法满足其容量、性能和安全性的需求。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。流行的开源分布式数据库系统名

称数据存储方式速

度事务支持主要应用场景HBase表、列写快、读慢支持持久存储MongoDB文档快只支持单文档事务文档存储PostgreDB表快支持多媒体数据Redis键-值很快支持缓存Mysql表快支持Web系统、日志、嵌入式系统表1.4流行的开源分布式数据库系统分布式计算框架1.分布式计算框架

目前流行的大数据计算框架包括MapReduce、Storm和Spark等,以下分别对这三种计算框架进行简要的介绍。(1)MapReduceHadoop的MapReduce属于“批量计算”框架。所谓“批量计算”是指对存储在文件系统中的数据集进行批量处理的方式,它适用于处理存储在文件系统中的大容量静态数据集,但每个任务需要多次执行读取和写入操作,因此不适用于实时性要求较高的场合。1.4.3目前流行的大数据技术(2)StormStorm是由Twitter公司开源的“实时流式计算”框架。“实时流式计算”方式是基于内存的计算模式,它无须针对整个数据集进行操作,而是对通过系统传输的每个数据项执行操作,可以对随时进入系统的数据进行计算,因此适用于时间性要求较高的场合。其他著名的实时流计算框架还有Facebook公司的Puma和Yahoo!公司的S4(SimpleScalableStreamingSystem)等。(3)SparkSpark属于前两种框架形式的集合体,是一种混合式的计算框架。它既有自带的“实时流式计算”引擎,也可以和Hadoop集成,代替其中的MapReduce,Spark也可以单独拿出来部署集群,但是还得借助HDFS等分布式存储系统作为其基础支撑架构。两种计算方式的对比

批量计算流式计算数据到达计算开始前数据已准备好计算进行中数据持续到来计算周期计算完成后会结束计算一般会作为服务持续运行使用场景时效性要求低的场景时效性要求高的场景表1.5批量计算和流式计算的特性比较批量计算”和“实时流式计算”对比示意图两种计算方式的对比大数据面临的技术挑战1.5数据存储和管理的挑战计算速度的挑战数据安全的挑战

1.5.1数据存储和管理的挑战大数据的体量非常大,虽然一些新的数据存储技术已经被开发应用,但面对数据量大约每两年增长一倍的速度,如何跟上数据增长的步伐并找到有效存储数据的方法,仍然是许多企业面临的严峻挑战。但是仅仅存储数据是不够的,数据必须是有价值的,这取决于对数据的管理和分析。干净的数据,以及以支持有意义的分析的方式组织的数据,需要大量的工作。数据科学家通常需要花50%到80%的时间来管理和准备数据,然后才可以实际使用。1.5.2计算速度的挑战大数据技术正在快速变化,跟上大数据技术的发展是一个持续不断的挑战。海量数据从原始数据源到产生价值,期间会经过存储、清洗、挖掘、分析等多个环节,如果计算速度不够快,很多事情是无法实现的。所以,在大数据的发展过程中,计算速度是非常关键的因素。

1.5.3数据安全的挑战除了技术上所面临的挑战,制约大数据应用发展的一个重要瓶颈是隐私、安全与共享利用之间的矛盾问题。一方面,数据共享开放的需求十分迫切,另一方面,数据的无序流通与共享,又可能导致隐私保护和数据安全方面的重大风险,必须对其加以规范和限制。在国家层面推出促进数据共享开放、保障数据安全和保护公民隐私的相关政策和法规,并制定相关的数据互操作技术规范和标准,以及保证数据质量的技术方法等,对于推动大数据技术的发展和规范应用具有非常重要的意义。

1.5.3数据安全的挑战

《中华人民共和国数据安全法》,由中华人民共和国第十三届全国人民代表大会常务委员会第二十九次会议于2021年6月10日通过,自2021年9月1日起施行。《中华人民共和国个人信息保护法》,由中华人民共和国第十三届全国人民代表大会常务委员会第三十次会议于2021年8月20日通过,自2021年11月1日起施行。PPT模板下载:/moban/行业PPT模板:/hangye/节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/优秀PPT下载:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/资料下载:/ziliao/PPT课件下载:/kejian/范文下载:/fanwen/试卷下载:/shiti/教案下载:/jiaoan/字体下载:/ziti/

谢谢!

第2章大数据实验环境构建目录Contents2.1

在Windows中安装Linux虚拟机2.2

Linux操作基础2.3

建立Hadoop集群2.4

Hadoop系统简介2.5构建Hadoop“伪分布式”集群目录Contents2.6

构建“完全分布式”Hadoop集群2.7

测试Hadoop集群2.8

安装Zookeeper2.9本章小结在Windows中安装Linux虚拟机2.1创建虚拟机虚拟机启动初始化克隆虚拟机2.1.1创建虚拟机

在Windows中安装Linux虚拟机通常可以用VMwareWorkstation、VirtualBox和Windows系统自带的Hyper-V软件,接下来以VMwareWorkstation和CentOS为例介绍Linux虚拟机的安装过程。

方法是使用VMwareWorkstation安装一台Linux虚拟机,然后使用克隆的方法创建另外两台虚拟机,最终构建一个由3台Linux主机组成的Hadoop集群。2.1.1

创建虚拟机首先,在Windows中安装VMwareWorkstationPro中文版,运行该软件后的主界面如图所示。VMwareWorkstation16Pro主界面2.2.1创建虚拟机

在Windows中安装VMwareWorkstation后,Windows系统中会自动增加5项与VMware相关的服务以及两块虚拟网卡,如图所示。其中,虚拟网卡VMnet1是用于虚拟机网络服务的“仅主机模式”,VMnet8是用于“网络代理NAT模式”。

(a)Windows系统中增加的VMware服务(b)Windows中增加的虚拟网卡VMware在Windows系统中增加的服务项和虚拟网卡2.1.1

创建虚拟机

设置虚拟机操作系统类型和版本

接着,在VMwareWorkstation主界面中单击“创建新的虚拟机”按钮,启动“新建虚拟机向导”,使用默认安装方式连续点击“下一步”按钮,进入到“选择客户机操作系统”界面,选择要安装的操作系统为“Linux”、版本为“CentOS64位”,如图所示。2.1.1

创建虚拟机虚拟机处理器配置窗口

命名虚拟机和存放位置窗口

接着点击“下一步”按钮,在“命名虚拟机”窗口(如下左图所示)中设置虚拟机名称(如:“Node01”)和存放位置。完成虚拟机命名后,进行“处理器配置”,根据电脑的硬件配置设置虚拟机的“处理器数量”和“每个处理器内核数量“,如下右图所示。2.1.1

创建虚拟机

完成虚拟机处理器配置后,再设置虚拟机内存大小,如图所示。

一般设置1024MB到4096MB之间,由于Node01是作为Hadoop集群的主节点,因此可以分配较大的内存,其他两台主机Node02和Node03可以分配较小的内存容量。设置虚拟机内存容量窗口2.1.1

创建虚拟机

设置虚拟机内存容量后,点击“下一步”按钮,进入到设置“网络类型“窗口,如图所示,选择默认的“网络地址转换(NAT)”模式。设置好网络类型后,连续点击“下一步”按钮,完成虚拟机的创建。接下来,还需要对所创建的虚拟机进行初始化和Linux操作系统的安装。设置网络类型

2.1.2

虚拟机启动初始化

创建虚拟机“Node01”后,接着使用Centos8.2安装光盘完成Linux系统的安装和初始化。在VMwareWorkstation主窗口中右击“Node01”,在菜单中选择“设置”项,在弹出的“虚拟机设置”窗口中选择“CD/DVD(IDE)”,再选择“使用ISO镜像文件(M)”项,单击“浏览(B)”按钮,设置CentOS8.2安装光盘镜像文件的位置,如图所示。指定CentOS8.2安装光盘镜像文件

2.1.2虚拟机启动初始化

接下来点击“启动此虚拟机操作系统”按钮,进行CentOS8.2的初始化安装,安装过程中的语言可以选择中文简体。“安装目的地”的设置只需要择使用自动方式即可,如图所示。在CentOS8.2的安装过程花费的时间较长,期间需要进行一些项目的配置,例如账户和密码等。

2.1.3

克隆虚拟机

安装好一台Linux主机后,利用VMware提供的克隆虚拟机功能,从原始虚拟机Node01克隆出另外两台虚拟机,分别命名为Node02和Node03。首先关闭虚拟机Node01,在VMware主界面左侧系统资源库中右击Node01,选择“管理”菜单下的“克隆”命令(如右图所示),弹出克隆虚拟机向导。

在VMwareWorkstation中克隆虚拟机

2.1.3

克隆虚拟机

在“克隆虚拟机向导”窗口中连续点击“下一步”按钮,当出现“克隆类型”窗口时,选择“创建完整克隆”选项(如右图所示),对原始虚拟机进行完全独立的一个复制,不与原始虚拟机共享资源,可以独立使用。

指定克隆类型”窗口

2.1.3

克隆虚拟机

接着指定新虚拟机的名称和存放位置,如右图所示。

通过克隆虚拟机操作,生成另外两台Linux虚拟机,分别命名为Node02和Node03。虚拟机命名和指定存放位置Linux操作基础2.2软件包管理工具目录和文件操作用户和权限管理命令修改文件的访问权限压缩和解压缩网络配置命令系统服务命令查找命令

2.2

Linux操作基础

Linux是免费开源的操作系统,目前常用的版有CentOS、Ubuntu、RedHat和Debian等,CentOS比Ubuntu更新较慢但更稳定,适合作为服务器操作系统使用,而Ubuntu的版本更新更快,适合于作为桌面操作系统使用。本书使用CentOS+Hadoop来构建大数据平台,为了更好地在CentOS中进行大数据环境的配置和实验,本节以CentOS8.2为例,介绍一些常用的Linux基本操作命令。Linux中命令的用法可以使用以下方式获得帮助:命令名称--help例如输入“cd--help”命令,Linux系统会给出cd命令详细的用法说明。2.2.1

软件包管理工具yum工具

CentOS系统包含一个前端软件包管理器工具yum(YellowdogUpdater,Modified),yum能够从指定的服务器自动下载RPM包并且安装,并可以自动处理依赖性关系,一次性完成所有依赖的软体包的下载和安装。示例如下:

$yuminstall<package_name>#安装软件包

$yumremove<package_name>#删除软件包

$yumupdate<package_name> #升级软件包$yumlistpam*#找出以pam开头的软件名称rpm工具

rpm是Linux中的RPM软件包管理工具,使用示例如下:$rpm-ql<package_name> #查询软件包$rpm-ivh<package_name> #安装软件包$rpm-e<package_name> #删除软件包

2.2.2

目录和文件操作1.

目录操作命令常用的目录操作命令命令功能cd切换目录mkdir创建目录rmdir删除一个空的目录pwd显示目录下表是Linux常用的目录操作命令:

2.文件操作命令lls:查看目录中的文件列表lcp:复制文件lmv:移动文件lrm:删除文件lcat、more和tac:查看文件内容常用的文件操作命令:2.2.3

用户和权限管理命令新建用户新建用户组删除用户或用户组为用户分配所属的用户组切换当前用户$suroo #切换当前用户为root$su-root#参数“-”不但切换用户,而且改变环境变量$useradduser1 #创建用户user1$passwduser1

#设置用户user1的密码$userdelusername

#删除用户$groupdelgroupname

#删除用户组$userdel-fusername

#删除用户的主目录和邮件池$groupaddgroup1

#创建用户组group1$usermod-Ggroupnameusername#将用户分配到用户组$groupsusername#查看用户隶属的所有组2.2.4

修改文件的访问权限

为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。文件被创建后,文件的创建者自动拥有对该文件的读、写和可执行权限,而其他用户需要通过权限设置来获得对该用文件的访问权限,首先通过例子来理解文件的用户访问权限。(1)查看文件的访问权限

可以用以下命令显示/etc/sysconfig/network-scripts目录下ifcfg-ens33文件的访问权限:$cd/etc/sysconfig/network-scripts$ls-lifcfg-ens33 #查看ifcfg-ens33详细信息2.2.4

修改文件的访问权限显示结果如下图所示:-rw-r--r--.1rootroot40311月1009:18ifcfg-ens33上图中第1位“-“表示文件类型,接着的9位字符是文件的访问权限:头3位“rw-”表示文件所有者(user)拥有的权限中间3位“r--”表示文件所隶属的组(group)的用户拥有的权限后3位“r--”表示其他人(others)拥有的权限接下来的“1”表示连接数;“root”表示文件的拥有者为root,第2个“root“表示文件的隶属组为root。2.2.4

修改文件的访问权限文件权限信息和含义表文件属性项文件类型文件所有者权限文件所属组用户权限其他用户权限字符表示d/-/l/b/crwxrwxrwx数字表示

421421421含义d:目录,-:文件读写执行读写执行读写执行2.2.4

修改文件的访问权限(2)修改文件的访问权限

要修改文件的访问权限可以使用chmod命令,有两种设置方法,一种是

数字法,一种是符号法。

数字法$chmod777ifcfg-ens33#将ifcfg-ens33改为所有用户可读、写和执行

$chmod764ifcfg-ens33#将ifcfg-ens33文件修改为“rwxrw-r–”权限其中数字764的含义如下rwxrw-r– 1111101007642.2.4

修改文件的访问权限字符法$chmoda+rwxifcfg-ens33 #对所有用户添加读、写和执行权限

注:a:所有用户,u:用户,g:组用户,o:其他用户。

修改文件的属主和属组:

修改文件的属主和属组用chown命令,用法为:

chown[-R]属主名:属组名文件名

例如: $chownhadoopifcfg-ens33#修改文件的属主为hadoop2.2.5

压缩和解压缩

Linux中的tar命令(tapearchive)用于对文件进行压缩和解压,tar可以处理*.tar、*.tar.gz、*.tar.bz2等文件类型。主要的参数有:

必选参数:-f5个独立的参数可选参数必选参数:-f-f:指定备份文件名(该参数是最后一个参数,后面只能接档案名)-z:有gzip属性的

-j:有bz2属性的

-Z:有compress属性的-v:显示所有过程

-O:将文件解压到标准输出-C:指定解压的目的目录-c:建立压缩文件

-x:解压

-t:查看内容

-r:向压缩文件末尾追加文件

-u:更新原压缩包中的文件2.2.6

网络配置命令举例如下:$tar-cfall.tar*.jpg#将所有.jpg文件压缩成名为all.tar的包(c表示建立压缩文档,f指定压缩包文件名)$tar-xvfall.tar #解出all.tar包中所有文件。x表示解压,v表示显示整个过程$tar-xzvffile1.tar.gz #解压一个gz包。z表示解压或压缩*.gz文件$tar-xjvffile1.tar.bz2-C/home#把file1.gar.bz2解压到/home/目录下2.2.6

网络配置命令1.netstat命令

netstat命令用于查看当前计算机开放的端口,从而判断当前计算

机启动了哪些服务。2.ifconfig命令

ifconfig命令用于查看与配置网络状态,3.nmcli命令

CentOS中的nmcli网络命令行工具(NetworkManagerCommandTools)比传统的ifconfig的功能更为强大,该命令的语法为:

nmcli[OPTIONS]OBJECT{COMMAND|help}2.2.7系统服务命令1.系统服务管理命令systemctl

Systemctl命令是系统服务管理器指令,主要负责控制systemd系统和服务管理器,常用的功能包括:查看所有服务状态,启动、重启、停止、重载服务,激活服务,开机启动或禁用服务等。2.显示当前进程状态命令ps(processstatus)

该命令可以查看有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等信息。举例如下:$ps1085

#查看1085号进程信息3.强制结束进程

Linux中用“kill”命令结束进程。

$kill-91085

#彻底杀死编号为1085的进程2.2.8

查找命令

1.文本查找命令grep

例如:ps-ef命令用于查找所有进程,如果在所有显示的进程中找到sshd进程,

我们可以使用以下命令:

$ps-ef|grepsshd #查找sshd进程,命令中|表示管道

在文件中查找文本示例:

$grep-n‘hello’file1.txt #在文件file1.txt中查找文本hello,并显示行号

2.目录中搜索文件命令find

Linux的find命令用来在指定目录下查找文件,举例如下:

$find.-name"*.log" #在当前目录中查找以.log结尾的文件

$fine/home/-perm777 #查找/home目录中权限为777的文件

$find.-size+100M #查找当前目录中大于100M的文件建立Hadoop集群2.3VMwareWorkstation的网络模式简介集群规划和网络设置配置虚拟机的网络参数系统服务命令关闭防火墙和SELinuxSSH免密登录2.3

建立Hadoop集群

用于Hadoop的集群由三台Linux虚拟机组成,一主(Master)二副(Slaver),一台作为Hadoop的NameNode和ResourceManager,另两台作为DataNode,其结构如图所示。

三台Linux虚拟机组成的Hadoop集群示意图2.3.1VMwareWorkstation的网络模式简介

在VMwareWorkstation中,虚拟机的联网可以设置为3种模式:“桥接”、“网络代理(NAT)”和“仅主机”模式,以下分别介绍这3种网络模式。

1.桥接模式

桥接模式是把虚拟出来的网卡直接连接到局域网中,就好像是局域网络中增加了一台真正的计算机一样,虚拟机的网络地址使用的是局域网中的IP地址,因此可以直接访问外网,虚拟机之间也能相互访问,其他的外部计算机也能访问虚拟机。下图是桥接模式的示意图。桥接模式示意图2.3.1VMwareWorkstation的网络模式简介2.NAT模式(网络代理模式)

NAT模式是在宿主机中创建一个虚拟子网,把虚拟机中加入该虚拟子网,子网中有一个NAT服务(网络代理服务),虚拟机可以通过该网络代理访问外网,同时宿主机与虚拟机之间、虚拟机与虚拟机之间均可互相访问,但其他外部计算机无法访问虚拟机。下图是NAT模式的示意图。NAT模式示意图2.3.1VMwareWorkstation的网络模式简介3.仅主机模式

仅主机模式是在宿主机中创建一个虚拟子网,把虚拟机中加入该子网,子网中没有Nat服务,虚拟机之间可以互相访问,宿主机与虚拟机之间也能互相访问,但虚拟机不能访问外网。下图是仅主机模式的示意图。

仅主机模式示意图2.3.2

集群规划和网络设置我们采用“NAT模式”来构建Linux集群,“NAT模式”下虚拟机可以连接外网,同时加入该虚拟子网的所有虚拟机与宿主机均可互相访问,便于将文件从宿主机拷贝到虚拟机中。打开VMwareworkstation的虚拟网络编辑器窗口,如图所示,其中名为“VMnet8”的虚拟网卡是用于配置VMware的NAT网络服务。虚拟网卡编辑器窗口示意图2.3.2

集群规划和网络设置

在“虚拟网络编辑器”窗口中点击“更改设置(C)”按钮,再选择名为“VMnet8”的虚拟网卡,设置其NAT虚拟子网的地址,如右图所示。

设置虚拟网卡VMnet8的NAT子网IP地址2.3.2

集群规划和网络设置

再点击“DHCP设置(p)”按钮,从弹出的“DHCP设置”窗口(如右图所示)中看出DHCP服务自动分配的虚拟机IP地址范围是28~54(可以人工修改)。设置虚拟网卡VMnet8的NAT子网IP地址2.3.3

配置虚拟机的网络参数1.

配置主机名首先修改Linux虚拟机的主机名,使用vim命令打开/etc/hostname文件,修改主机名(分别命名为Node01、Node02和Node03)。$vim/etc/hostname2.3.3

配置虚拟机的网络参数2.

配置虚拟机的网络参数CentOS8.2的网络配置文件存放在/etc/sysconfig/network-scripts/目录中,用以下命令进入该目录: $cd/etc/sysconfig/network-scripts用vim编辑器打开“ifcfg-ens33”文件,对其进行编辑。 $vimifcfg-ens33把“BOOTPROTO”项由DHCP更改为static(即采用静态IP地址,ONBOOT项由no更改为yes,并增加IPADDR、NETMASK、GATEWAY、HWADDR和DNS1等项目。2.3.3

配置虚拟机的网络参数3.映射主机名与IP地址CentOS主机名与IP地址的映射文件为/etc/hosts,对3台虚拟机分别用命令“vim/etc/hosts”编辑该文件,输入如下图所示的内容。

2.3.3

配置虚拟机的网络参数4.

配置效果验证配置好网络参数,重新启动CentOS(或使用nmclicreload重启Linux的网络服务),可以用ifconfig命令查看网络参数,并验证宿主机及3台虚拟机是否可以相互ping通。此外,还可以使用CentOS8.2提供的图形界面配置其网络参数。2.3.4

关闭防火墙和SELinux1.关闭防火墙

由于Linux防火墙会给远程访问和FTP带来一些意想不到的问题,为了方便学习,可以关闭3台虚拟机的防火墙,使用以下命令关闭防火墙,并禁止开机启动:$systemctlstatusfirewalld.service

#查看状态$systemctlstopfirewalld.service

#关闭防火墙$systemctldisablefirewalld.service

#禁止开机启动2.关闭SElinux

SELinux是Linux的一种安全子系统,主要作用是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。如果开启SELinux,需要进行较多配置,为了方便学习,一般不必使用SELinux。可以用以下命令打开SELinux的配置文件:

$vim/etc/selinux/config在该文件中将SELINUX=disabled。2.3.5

SSH免密登录

SSH它是一种专门为远程登录话和其他网络服务提供安全的协议,可实现两个功能:(1)通过终端仿真软件远程连接Linux主机,以更方便执行Linux命令和传输文件。(2)在集群开发中,实现多台Linux主机间的免密登录,避免在各个节点相互频繁访问时重复输入用户名和密码。1.SSH服务远程登录配置安装CentOS后,系统会自动安装和启动SSH服务,可以使用以下命令查看是否安装和启动了SSH协议。 $rpm-qa|grepssh #查看是否安装SSH服务 $ps-e|grepssh #查看是否启动SSH服务2.3.5

SSH免密登录SecureCRT创建新连接和登录Linux主机的界面示意图2.3.5

SSH免密登录2.SSH免密登录配置Hadoop集群中的主节点需要启动从节点,需要主节点登录到从节点,如果每次都输入密码,则非常麻烦。可以使用SSH协议来配置免密登录,SSH免密登录的工作原理如下(假设A主机要免密登录B主机):(1)在B主机上存储A主机的公钥;(2)A主机请求登录B主机;(3)B主机使用A主机的公钥加密一段随机文本;(4)A主机使用私钥解密,并发回B主机;(5)B主机验证文本是否正确。2.3.5

SSH免密登录SSH免密登录在3台虚拟机上的操作步骤:(1)步骤1:生成公钥和私钥分别在3台虚拟机上执行下面的命令生成公钥和私钥: $ssh-keygen-trsa#生成ssh密钥对(2)步骤2:将3台虚拟机的公钥拷贝到Node01上 $ssh-copy-idNode01

(注:需要在Node01、Node02和Node03上都执行此命令。)(3)步骤3:从Node01复制公钥到Node02和Node03 $scp/root/.ssh/authorized_keysNode02:/root/.ssh $scp/root/.ssh/authorized_keysNode03:/root/.ssh2.3.5

SSH免密登录完成上述操作后,在Node01上输入sshNode02命令访问Node02主机时就不需要输入密码了。下图是在SecureCRT中从Node01免密登录Node02和Node03的示意图。2.3.5

SSH免密登录3.时间同步在CentOS8中设置系统时间同步使用的是chrony工具(CentOS7以下使用ntp工具),具体操作方法如下: $yuminstallchrony #安装chrony $systemctlstartchronyd #启动chrony $systemctlenablechronyd #设为系统自动启动编辑配置文件/etc/chrony.conf: $vim/etc/chrony.conf在chrony.conf文件中注释掉“pool2.iburst”,并输入以下内容: serveriburst serveriburst2.3.5

SSH免密登录接着重新加载chronyd服务

$systemctlrestartchronyd.service查看时间服务器源是否更新成功: $chronycsources-vHadoop系统简介2.4Hadoop的生态系统简介Hadoop集群的类型2.4.1

Hadoop的生态系统

随着Hadoop平台的发展,其生态系统越来越完善,下图是Hadoop生成系统示意图,主要包括底层分布式文件系统HDFS、分布式数据库系统HBase、分布式计算框架MapReduce和分布式协作服务管理器Zookeeper等。Hadoop生态系统示意图2.4.2

Hadoop集群的类型

Hadoop平台部署在由多台Linux主机组成的Hadoop

集群上,Hadoop集群包含一个NameNode和多个DataNode。NameNode负责管理文件系统命名空间和控制外部客户机的访问。DataNode响应来自NameNode的创建、删除和复制块的命令,以及来自HDFS客户机的读写请求。

Hadoop

集群分为三种,分别简介如下。(1)独立模式(Pseudo-DistributedMode):也就是单机模式,该模式下所有程序只在一台主机的单个JVM(Java虚拟机)上执行,适合于在学习阶段或开发调试阶段使用。(2)伪分布模式(Pseudo-DistributedMode):就是假的分布式,只用一台主机模拟Hadoop集群的分布式任务的执行过程。(3)完全分布模式(Fully-DistributedMode):由多台主机构成Hadoop集群,Hadoop的守护进程真实运行在多台主机上,在实际工作中,通常使用该模式构建企业级的Hadoop系统。构建“伪分布式”集群2.5安装JDK安装Hadoop软件配置SSH免密登录启动Hadoop2.5

构建Hadoop“伪分布式”集群

Hadoop“完全分布式”集群的安装与配置过程比较复杂,对学习者的操作技能要求较高。为了让某些初学者可以只用一台虚拟机来模拟Hadoop集群,本节介绍“伪分布式”(Pseudo-DistributedMode)Hadoop集群的安装和配置。

所谓“伪分布式”,就是只用一台主机来模拟执行Hadoop集群的分布式任务,因此更为简单,但其并不是真正的分布式系统,只适用于初学者的学习,以及调试分布式程序。2.5.1

安装JDK

由于Hadoop是用Java语言开发的,因此Hadoop的运行依赖于Java环境,Hadoop-3要求JDK(JavaDevelopmentKit)版本不低于1.8,首先在Linux虚拟机中安装JDK1.8。

首先查询系统中是否已经安装了JDK,如果已经安装了,则需要先卸载,然后再安装。

$rpm-qa|grepjava #查看系统中是否已经安装JDK

$rpm-epackage_name #卸载已经安装的软件包2.5.1

安装JDK

步骤1:下载和上传JDK安装包可以在Windows中使用WinSCP软件连接Linux主机,进行文件上传和下载,WinSCP的界面如下图所示。WinSCP软件界面示意图Windows本地目录Linux目录2.5.1

安装JDK

步骤2:解压安装JDK安装包

将jdk-8u212-linux-x64.tar.gz解压到/usr/local/servsers目录中:

$tar-zxvfjdk-8u212-linux-x64.tar.gz-C/usr/local/servers

解压完JDK安装包后,进入/usr/local/servers目录,可以看到JDK子目录,

例如/usr/local/servers/jdk1.8.0_212,为了操作方便,可以把目录重命名:

$mvjdk1.8.0_212jdk#将jdk1.8.0_212目录重命名为jdk2.5.1

安装JDK

步骤3:配置运行JDK的环境变量

安装完JDK后,需要配置JDK的环境变量,“/etc/profile”是CentOS系统用于设置环境变量的文件,使用vim/etc/profile文件,在文件中添加以下内容:2.5.1

安装JDK步骤4:验证是否设置成功$source/etc/profile #让设置的环境变量生效$java-version #查看jdk版本如果正确安装和配置JDK运行环境,则会出现如图所示的JDK版本号等信息。

安装、配置和查看JDK版本信息2.5.2安装Hadoop软件1.下载和安装Hadoop软件

可以从Apache官网:/dist/hadoop/common/下载hadoop安装包,本书以Hadoop3.3.0版本为例,介绍Hadoop安装的详细过程。

将下载的hadoop-3.3.0.tar.gz文件上传到Linux虚拟机的/usr/local/uploads,然后将文件解压到/usr/local/servers目录,并且为了操作方便,把安装目录更名为hadoop:

$tar-zxvf/usr/local/uploads/hadoop-3.3.0.tar.gz-C/usr/local/servers

进入/usr/local/servers目录,输入以下命令:

$mvhadoop-3.3.0hadoop #将hadoop-3.3.0目录重命名为hadoop

Hadoop的安装目录即为/usr/local/servers/hadoop。2.5.2安装Hadoop软件2.配置环境变量

接着配置运行Hadoop的环境变量,用vim/etc/profile命令编辑profile文件,在文件尾部添加以下内容:

exportHADOOP_HOME=/usr/local/servers/hadoop

exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin接着验证安装配置是否成功:

$source/etc/profile #让刚设置的环境变量生效

$hadoopversion #查看Hadoop版本2.5.2安装Hadoop软件3.Hadoop的目录结构 lbin:是Hadoop最基本的管理脚本和使用脚本所在的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。 letc:Hadoop配置文件所在的目录,包括:core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等配置文件。 linclude:对外提供的编程库头文件(具体的动态库和静态库在lib目录中),这些文件都是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。2.5.2

安装Hadoop软件 llib:包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。 llibexec:各个服务对应的shell配置文件所在的目录,可用于配置日志输出目录、启动参数(比如JVM参数)等基本信息。 lsbin:Hadoop管理脚本所在目录,主要包含HDFS和YARN中各类服务启动/关闭的脚本。 lshare:Hadoop各个模块编译后的Jar包所在目录,这个目录中也包含了Hadoop文档和官方案例。2.5.3配置SSH免密登录

在“伪分布模式“下虽然只有一台主机,但也需要配置SSH免密登录。

$ssh-keygen-trsa

$ssh-copy-idlocalhost

执行完上述两条命令后,输入“SSHlocalhost”测试是否可以免密登录成功。2.5.4配置Hadoop

在Hadoop安装目录下的etc/hadoop子目($HADOOP_HOME/etc/hadoop)中存放Hadoop的配置文件,主要涉及7个配置文件,下表是相关的配置文件及功能简介。Hadoop主要配置文件配置文件功能简介hadoop-env.sh配置Hadoop运行所需的环境变量core-site.xmlHadoop核心全局配置文件hdfs-site.xmlHDFS配置文件,继承core-site.xml配置文件mapred-site.xmlMapReduce配置文件,继承core-site.xml配置文件yarn-site.xmlYarn配置文件,继承core-site.xml配置文件yarn-env.h配置YARN运行所需的环境变量workers配置在Hadoop中有哪些DataNode节点在“伪分布模式“下,需要修改hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml五个配置文件,具体配置方法参看教材2.5.4节。2.5.5

启动Hadoop

1.格式化NameNode

首次启动HDFS系统时,必须对主节点进行格式化处理,命令如下:$hdfsnamenode-format

2.启动Hadoop

$start-dfs.sh

$start-yarn.sh

(提示:也可以使用start-all.sh命令一次性启动HDFS和YARN集群,以及使用stop-all.sh命令关闭集群)

2.5.5

启动Hadoop

3.执行jps验证集群是否启动成功

执行jps后,如果显示以下几个进程,说明启动成功。DataNodeSecondaryNameNodeNameNodeNodeManagerResourceManager

(提示:如果Hadoop集群启动失败,可以查看hadoop安装目录下的logs目录(/usr/local/servers/hadoop/logs)中的日志文件,分析失败的原因。)

构建“完全分布式”集群2.6配置Hadoop集群的主节点将配置文件发送到从节点2.6

构建“完全分布式”Hadoop集群

“完全分布模式”(Fully-DistributedMode)的Hadoop集群的结构如2.3节的图“三台Linux虚拟机组成的Hadoop集群示意图”所示。

为了在多台Linux主机组成的Hadoop集群上协调运行Hadoop系统,需要对相关的配置文件进行较为复杂的修改,可以参考Apache官网上Hadoop3配置的参考文档:/docs/current3/hadoop-project-dist/hadoop-common/ClusterSetup.html。2.6.1

配置Hadoop集群的主节点我们将虚拟机Node01作为Hadoop集群的主节点(Master),将Node02和Node03作为从节点(Slaver),首先在主节点Node01上进行Hadoop的配置,然后把配置文件拷贝到从节点中。在Node01上首先要安装和配置JDK和Hadoop软件,方法与2.5节中“伪分布模式”下的安装与配置方法完成一样,不再赘述。1.修改Hadoop-env.sh文件在“完全分布”模式下,Hadoop-env.sh文件的内容与“伪分布”模式相同。2.6.1

配置Hadoop集群的主节点2.修改core-site.xml文件

3.修改hdfs-site.xml文件4.修改yarn-site.xml文件5.修改mapred-site.xml文件由于文件的内容较多,具体细节可参看教材2.5.5节。

2.6.1

配置Hadoop集群的主节点6.修改workers文件

该文件用于配置在Hadoop中有哪些DataNode节点(在“完全分布”模式下有三个DataNode节点),编辑该文件并输入以下内容:Node01Node02Node037.创建配置文件中相关的文件夹用“mkdir”命令创建相关的文件夹:$mkdir/usr/local/servers/hadoop/tmp$mkdir/usr/local/servers/hadoop/tmp/nndata$mkdir/usr/local/servers/hadoop/tmp/dndata2.6.2

将配置文件发送到从节点

完成主节点Node01的配置后,将已经安装的JDK、Hadoop文件和配

置文件发送到从节点Node02和Node03中,命令如下:$scp/etc/profileNode02:/etc/profile$scp/etc/profileNode03:/etc/profile$scp-r/usr/local/Node02:/usr$scp-r/usr/local/Node03:/usr拷贝完成后,分别在Node02和Node03上执行“source/etc/profile”。测试Hadoop集群2.7测试HDFS测试WordCount程序2.7.1

测试HDFS1.格式化HDFS文件系统

首次启动HDFS系统时,必须对主节点进行格式化处理,命令如下:

$hdfsnamenode-format2.启动Hadoop集群

$start-dfs.sh

$start-yarn.sh(提示:也可以使用start-all.sh命令一次性启动HDFS和YARN集群,以及使用stop-all.sh命令关闭集群)启动成功后,在主节点Node01中使用jps命令可以看到启动了NodeManager、DataNode、ResourceManager和NameNode进程,如下左图所示。2.7.1

测试HDFSHadoop集群启动信息示意图

从节点启动的Hadoop进程示意图

与此同时,在从节点Node02和Node03会自动启动DataNode、NodeManager进程,而Node02主机比Node03会多启动一个SecondaryNameNode进程,在Node02上执行jps命令后的结果如上右图所示。2.7.1

测试HDFS3.通过浏览器查看Hadoop运行状态

Hadoop集群启动成功后,可以用浏览器访问主节点Node01的9870和8088两个端口,分别查看HDFS集群和YARN集群的运行状态。(提示:必须关闭Linux主机的防火墙,参考2.3.4节)

通过01:9870和01:8088,可以看到HDFS集群和YARN集群的UI窗口。2.7.1

测试HDFS4.测试HDFS文件操作

HDFS文件操作命令格式为:hdfsdfs<参数>,右表是HDFS文件操作命令示例和相关说明。HDFS文件操作命令示例2.7.2

测试WordCount程序

Hadoop自带的MapReduce示例程序保存在Hadoop安装目录中的share/hadoop/mapreduce目录中。进入该目录,可以看到该目录下有若干个用java语言编写的示例程序,如图所示。

Hadoop官方示例程序2.7.2测试WordCount程序使用hadoop-mapreduce-examples-3.3.0.jar程序进行单词个数统计的演示。(1)运行hadoop-mapreduce-examples-3.3.0.jar程序:$cd/usr/local/servers/hadoop/share/hadoop/mapreduce$hadoopjarhadoop-mapreduce-examples-3.3.0.jarwordcount/in/output说明:HDFS的/in目录中已经有test1.txt和test2.txt两个文件,执行上面的命令,会自动读取这两个文件作为程序的输入,执行完成后的结果存放在HDFS的/output目录中。(2)验证运行结果

运行MapReduce示例程序成功后,可以看到HDFS文件系统中多了一个目录“/output”,保存有单词统计结果文件“part-r-00000”,以及执行标识文件_SUCCESS,如下图所示。2.7.2测试WordCount程序MapReduce示例程序运行结果示意图输入命令“hdfsdfs-cat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论