大数据基础 课件汇 胡坚 单元2-8 Linux常用命令- 大数据典型行业_第1页
大数据基础 课件汇 胡坚 单元2-8 Linux常用命令- 大数据典型行业_第2页
大数据基础 课件汇 胡坚 单元2-8 Linux常用命令- 大数据典型行业_第3页
大数据基础 课件汇 胡坚 单元2-8 Linux常用命令- 大数据典型行业_第4页
大数据基础 课件汇 胡坚 单元2-8 Linux常用命令- 大数据典型行业_第5页
已阅读5页,还剩367页未读 继续免费阅读

下载本文档

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

文档简介

大数据基础Unit2《大数据基础》.移动商务营销课程群2.1Linux简介基础Linux应用2.1Linux简介

UNIX操作系统:UNIX支持多用户和多任务;颇具灵活性,可以很容易地被修改,从而使UNIX发展多样化;在UNIX不断发展的过程中,它的定位是一个大型操作系统;随着PC逐渐发展且功能日趋强大,人们开始着手开发UNIX的PC版本。UNIX的兴起2.1Linux简介

开源、自由的Linux1991年10月,LinusTorvalds使用了由AndrewTanenbaum教授的小型教学用操作系统Minix后,Linus自己开发出了他自称为Linus版的Minix,后来命名为Linux。2.1Linux简介

Linux从诞生之日起,创始人Linus明确Linux定位:所有人共享的自由软件源代码全部开源非盈利工具软件开源、自由的Linux2.1Linux简介

Linux是为Intel架构的个人计算机和工作站设计的操作系统。

既有字符界面,又可提供像Windows和Macintosh那样功能齐全的图形用户界面;Linux被定位为一个自由软件,是免费的、开放源代码的产品。Linux的诞生2.1Linux简介Linux的特点开放性:所有源码公开兼容性:与UNIX兼容自由软件多用户:秉承UNIX系统的多用户特性多任务:可同时处理若干任务移植性:90%的源代码采用C语言编写,移植性很高,便于定制和再开发内存管理:未使用的内存区域作为buffer,采取内存保护模式来执行程序

《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit2《大数据基础》.移动商务营销课程群2.2.1Linux在虚拟机中的安装2.2Linux操作系统安装与使用2.2.2Linux文本编辑器Vi的使用大数据基础基础Linux应用1Vmware中安装CentOs本课程实验环境为在VmwareWorkstation虚拟机中安装CentOs:

2.2.1Linux在虚拟机中的安装CentOs是Linux发行版之一VMwareWorkstation虚拟机是独立运行主机操作系统的离散环境2.2.1Linux在虚拟机中的安装2安装

1)请自行下载VMwareWorkstation软件及CentOs镜像文件。

2)按照常规的软件安装流程安装好VMwareWorkStation后,打开后如右图所示。

3)选择“创建虚拟机”。2.2.1Linux在虚拟机中的安装2安装

4)根据提示创建完成后,VmwareWorkStations中显示了刚安装的虚拟机。

5)点击开启此虚拟机。2.2.1Linux在虚拟机中的安装2安装

6)点击启动此虚拟机后,根据提示进行操作,出现右图所示界面,点击开始安装即可。2.2.1Linux在虚拟机中的安装2安装

7)完成CentOs的安装后,重新开机将进入系统的第一次启动,只有当系统能正常启动才说明安装成功,否则需要排查故障或重新安装。2.2.1Linux在虚拟机中的安装3系统登录

系统启动后根据安装时用户的设置,系统登录界面有所不同。共分为两种模式:1)以文本模式登录2)以图形模式登录若选择系统启动后是进入文本模式,则出现如下图所示登录界面,输入用户账号和密码,账号验证成功后登录系统。本课程实验在文本模式下进行。

若需要以图形模式登入,则在安装centos时需要额外安装图形界面程序包。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit2《大数据基础》.移动商务营销课程群2.2.1Linux在虚拟机中的安装2.2Linux操作系统安装与使用2.2.2Linux文本编辑器Vi的使用基础Linux应用2.2.2Linux文本编辑器Vi的使用1什么是vi(vim)文本编辑器vi:无论是一般的文本文件、数据文件,还是编写的源程序文件,都能使用vi来建立、编辑、显示和处理。文本编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作。vi开销较小,功能却较强,并且兼容各种Linux系统的特点这使得它历经数十年仍然被广泛使用。2vi的使用

vi的3种工作模式:插入模式(insertmode)惟一的功能即是文字数据的输入,按Esc键可以回到编辑模式。编辑模式(commandmode)这是进入vi时的默认模式,主要功能是控制光标的移动、删除字符、

区段复制等。命令模式(lastlinemode)保存文件、退出vi,以及其他的设置,例如查找或替换字符串等。

2.2.2Linux文本编辑器Vi的使用2vi的使用vi3种工作模式之间的相互切换:编辑模式→插入模式:按a键:从当前光标所在位置的下一个字符开始输入

按i键:从光标所在位置插入新输入的字符按o键:新増加一行,并将光标移动到下一行的开头注意:在编辑模式下输入命令时,如a、i、o,字符并不会显示出来2.2.2Linux文本编辑器Vi的使用2Vi的使用插入模式→编辑模式:

只需按下Esc键编辑模式→命令模式:输入“:”键即可命令模式→编辑模式:输入命令后回车即可2.2.2Linux文本编辑器Vi的使用3编辑模式和命令模式下的操作编辑模式中常用命令:

-插入文本命令-移动光标命令-剪贴板相关命令

-替换和删除文字

2.2.2Linux文本编辑器Vi的使用命令说明i在光标前插入文本a在光标后插入文本I在当前行的前端插入文本A在当前行的末端插入文本O在当前行前插入一行o在当前行后插入一行…………3编辑模式和命令模式下的操作要使用命令模式,先按Esc键以确定回到编辑模式,然后再按“:”、“?”或“/”等都可进入命令模式2.2.2Linux文本编辑器Vi的使用命令说明:q不保存退出:w将文件保存:q!强制退出不保存:wq退出并保存:setnu在文件每行增加行号:n光标移至该行行首…………《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit2《大数据基础》.移动商务营销课程群基础Linux应用2.3.1文件操作2.3Linux常用命令2.3.2目录操作2.3.3用户操作2.3.1文件操作1ls命令指令名称:ls指令英文原义:list功能描述:显示目录文件语法:ls选项[-alF][文件或目录]-a显示所有文件,包括隐藏文件

-l使用长格式显示

-F附加文件类别,符号在文件名最后执行权限:AllUser2cp命令指令名称:cp指令英文原义:copy功能描述:复制文件语法:cp选项[-afp][源文件或目录][目的文件或目录]

-a复制所有目录并包含子目录

-f强制复制文件

-p保留原文件的日期执行权限:AllUser2.3.1文件操作3cat命令指令名称:cat功能描述:显示文件内容语法:cat[文件名]执行权限:AllUser

范例:

$cattest.txt

显示出文件test.txt的内容

2.3.1文件操作4more命令指令名称:more功能描述:分页显示文件内容语法:more[文件名]

f或(空格)显示下一页

Enter显示下一行

q或Q退出more执行权限:AllUser范例:$moretest.txt分页显示出文件test.txt的内容

2.3.1文件操作5rm命令指令名称:rm指令英文原义:remove功能描述:删除文件语法:rm选项[-irf][文件或目录]

-i交互方式,询问是否删除

-r递归删除目录 -f强制删除,不需询问执行权限:AllUser2.3.1文件操作范例:

$rmfile

删除文件

$rm-rfdir

强制删除整个目录注意:rm删除文件没有提示且无法恢复,所以线上使用rm命令时特别小心。2.3.1文件操作范例:

$rm-ifile

删除文件前进行确认

6mv命令指令名称:mv指令英文原义:move功能描述:移动文件语法:mv选项[-ifb][源文件或目录][目的文件或目录]

-i交互方式,询问是否覆盖-f强制移动,不询问是否覆盖 -b删除先前的备份执行权限:AllUser2.3.1文件操作《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit2《大数据基础》.移动商务营销课程群基础Linux应用2.3.1文件操作2.3Linux常用命令2.3.2目录操作2.3.3用户操作2.3.2目录操作1cd命令指令名称:cd指令英文原义:changedirectory功能描述:切换目录语法:cd[目录]执行权限:AllUser范例:$cd..回到上一级目录$cd~回到用户的宿主目录$cd/切换到根目录$cd../usr切换到上一层目录的usr目录

2pwd命令指令名称:pwd指令英文原义:printworkdirectory功能描述:显示目前所在的工作目录语法:pwd执行权限:AllUser范例:

在根目录下输入以下命令:$pwd

显示当前工作目录为/

2.3.2目录操作3mkdir命令指令名称:mkdir功能描述:建立目录语法:mkdir选项[-p][目录名]

-p依次创建目录执行权限:AllUser范例:

$mkdirdir1

$mkdir-pdir2/dir3/

2.3.2目录操作4rmdir命令指令名称:rmdir功能描述:删除空目录语法:rmdir选项[目录名]执行权限:AllUser范例:

$rmdirdir1当dir1为空的时候,删除dir1

2.3.2目录操作5tar命令指令名称:tar功能描述:压缩文件目录语法:tar选项[-zcvf][文件或目录]

-z

如果配合选项c使用是压缩,配合x使用是解压缩

-c建立一个压缩文件

-v显示处理的文件信息

-f指定包的文件名

执行权限:AllUser2.3.2目录操作范例:$tar-cfall.tar*.txt将所有txt文件压缩成一个名为all.tar的压缩文件

6tar命令tar的解压缩语法:tar选项[-xtzvf]tarfile.tar.gz(或.tgz)

-x将压缩文件解压

-t

查看压缩包中的内容

-z如果配合选项c使用是压缩,配合x使用是解压缩

-v将解压缩的过程显示在屏幕上

-f指定解压对象,最后一个参数,后面接档案名范例:

$tar-xzvffile.tar.gz

解压

tar.gz

2.3.2目录操作《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群大数据基础Unit2《大数据基础》.移动商务营销课程群2.3.1文件操作2.3Linux常用命令2.3.2目录操作基础Linux应用2.3.3用户操作2.3.3用户操作1useradd命令指令名称:useradd功能描述:新建用户语法:useradd选项[-udcgG]用户名

-u指定用户ID

-d指定用户登入时的起始目录

-c加上备注文字-g指定用户所属的群组执行权限:AllUser范例:

$useradduser1

添加一般用户

$useradd-d/home/mydiruser1

为新添加的用户指定home目录2.3.3用户操作范例:

$useradduser2-u555

建立用户且指定ID

2passwd命令指令名称:passwd指令英文原义:password功能描述:配置密码语法:passwd

选项[-Slud]用户名

-S显示密码信息

-l停止账号使用

-u启动已被停止的账户-d删除密码执行权限:AllUser2.3.3用户操作3su命令指令名称:su功能描述:用户切换命令语法:su选项[-lpc]用户名

-切换用户和工作环境

-l同-类似

但需添加欲切换的用户

-p切换用户,不改变工作环境-c切换用户执行命令后切换回来执行权限:AllUser

2.3.3用户操作《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群训练

2-1单元2Linux常用命令Linux数据文件管理训练同步BigdataHadoop大数据基础pythonUnit2《大数据基础》.移动商务营销课程群训练

2-1:Linux数据文件管理案例目标能熟练使用和掌握Linux操作系统的ls、cp、rm、mv、cat等文件操作命令及pwd、mkdir、rmdir、tar、cd等目录操作命令。案例解释本案例通过在/home目录下进行创建自己的子目录、复制文件等一系列目录操作及文件操作,达到使学生熟练掌握在Linux操作系统中使用各种常用命令管理数据文件的目标。实现思路基本步骤

1.在Linux下完成以下目录操作(1)在/home下建立自己的子目录,子目录名自己取,然后在自已的

子目录下再创建子目录,可以多建几个(2)进入/home查看创建的子目录。(3)删除一部分自己子目录下的子目录(4)再回自己的子目录,显示当前目录清单(5)显示当前目录所处的路径训练2-1:Linux数据文件管理运行效果实现思路基本步骤2.在Linux下完成以下文件操作(1)复制一部分文件到当前目录cp/usr/src/kernel/*.c.注意:命令最后有一个小数点,表示目标地址为当前目录,后面的命令中也要注意(2)将test1.c改名为test3.c(3)査看当前目录中是否有test3.c文件,是否还有test1.c文件。(4)按页显示文件test3.c的内容(5)将当前目录下的所有文件打包,并压缩生成doc.tar文件训练2-1:Linux数据文件管理运行效果《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群训练

2-2单元2Linux常用命令Linux系统日志采集训练同步BigdataHadoop大数据基础pythonUnit2《大数据基础》.移动商务营销课程群训练

2-2:Linux系统日志采集案例目标案例解释通过本案例的学习,能熟练掌握Linux系统日志文件、配置文件的相关知识,并学会查看、采集、配置系统日志信息,学会根据需求查看、配置系统的配置文件。本案例通过编辑修改系统日志的配置文件,达到采集Linux系统日志的目标。运行效果实现思路基本步骤编辑配置文件:

命令:vi/etc/rsyslog.conf2.在配置文件中添加配置:*.*/var/log/test2.log3.重启日志服务,使配置生效:

systemctlrestartrsyslog.service4.做系统操作,使产生日志5.查看日志是否生成:cat/var/log/test2.log训练2-2:Linux系统日志采集运行效果实现思路运行结果训练2-2:Linux系统日志采集《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.1.1分布式存储概述3.1.2HDFS工作原理3.1.3HDFS基础命令3.1分布式存储3.1.1分布式存储概述1集中式存储和分布式存储集中式存储就是指由一台或多台主计算机组成中心节点,数据集中存储于这个中心节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有的功能均由其集中处理。

集中式存储系统最大的特点就是部署结构简单,由于集中式系统往往基于底层性能卓越的大型主机,因此无需考虑如何对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作问题。3.1.1分布式存储概述1集中式存储和分布式存储分布式存储,是相对于集中式存储来说的,是将数据分散存储在多台独立的网络服务器上,这些服务器在空间部署上可以随意分布,可能被放在不同的机柜上,也可能在不同的机房中,甚至分布在不同的城市。分布式存储系统采用可扩展的系统结构,满足了大数据应用存储的需要,能够利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。3.1.1分布式存储概述2分布式存储系统的特性分布式系统可以方便的扩展到几百台到几千台的集群规模,而且,随着集群规模的增长,系统整体性能表现为线性增长。可扩展分布式存储系统的自动容错、自动负载均衡机制使其可以构建在普通PC机之上。另外,线性扩展能力也使得增加、减少机器非常方便,可以使用较低的成本实现自动运维。低成本无论整个集群还是单机服务,都要求分布式系统具备高性能。高性能分布式存储系统需要提供易用的对外接口,另外也要求具备完善的监控、运维工具,并能够方便地与其它系统集成。易用3.1.1分布式存储概述

CAP理论加州大学伯克利分校的计算机教授EricBrewer在2000年提出,其核心思想是任何基于网络的数据共享系统最多只能满足数据一致性(Consistency)、可用性(Availability)和分区容忍性(PartitionTolerance)三个特性中的两个。3分布式存储系统面临的挑战3.1.1分布式存储概述3分布式存储系统面临的挑战是指保证系统中多个副本的数据完全一致的性质。数据一致性(Consistency)是指在系统中的一部分节点出现故障之后,系统的整体不影响客户端的读/写请求。可用性(Availability)是指容忍系统的网络出现分区,分区之间网络不可达。分区容忍性(PartitionTolerance)3.1.1分布式存储概述

分区容忍性一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。

提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里,容忍性就提高了。3分布式存储系统面临的挑战3.1.1分布式存储概述

一致性和可用性的矛盾由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。根据CAP理论,我们只能在一致性和可用性之间进行权衡。总之,数据存在的节点越多,分区容忍性越高,这就要求复制更新的数据就越多,一致性就越难保证。为了保证一致性,每次写操作就都要等待全部节点写成功,更新所有节点数据所需要的时间就越长,可用性就会降低。3分布式存储系统面临的挑战3.1.1分布式存储概述4分布式存储系统的分类

数据分类由于分布式存储系统所面临的数据需求相对复杂,大致可以分为三类:如所有格式的办公文档、文本、图片、图像、音频和视频信息等(1)非结构化数据一般存储在关系型数据库中,可以用二维关系表结构表示(2)结构化数据介于非结构化和结构化数据之间,如HTML,一般是自描述的(3)半结构化数据3.1.1分布式存储概述4分布式存储系统的分类互联网应用中,需要存储大量的图片、照片、视频等非结构化的数据,这类数据以对象的形式组织,对象之间没有关联。如Google的GFS和Hadoop的HDFS(1)分布式文件系统存储简单的半结构化数据,它只提供基于主键的CRUD功能,即根据主键创建、读取、更新或者删除一条键值记录。如Amazon的Dynamo以及Taobao的Tair。(2)分布式键值系统存储关系较为复杂的半结构化数据,与分布式键值系统相关,分布式表格系统不仅仅支持简单的CRUD操作,而且支持扫描某个主键范围.如Google的Bigtable。(3)分布式表格系统用于存储结构化数据。分布式数据库采用二维表格组织数据,并且提供SQL关系查询语言,支持多表关联,嵌套子查询等复杂的操作,并提供数据库事务以及并发控制。如MySQL数据库分片集群。(4)分布式数据库分布式存储按照处理不同类型的数据,大致可分为以下四类:《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.1.1分布式存储概述3.1.2HDFS工作原理3.1.3HDFS基础命令3.1分布式存储3.1.2HDFS工作原理2003年至2006年,Google发布了著名的三大论文,分别是:2003年发布的分布式文件系统GoogleFileSystem,2004年发布的分布式并行计算框架MapReduce,2006年发布的大型的分布式数据库Bigtable。

以三大论文为基础,演化出了开源项目Hadoop,Hadoop的核心是分布式文件存储系统HDFS和分布式并行计算框架MapReduce。3.1.2HDFS工作原理1HDFS概述

HDFS(HadoopDistributedFileSystem)HDFS全称Hadoop分布式文件系统,是由Google在2003年发布的分布式文件系统GoogleFileSystem论文基础上演化而来的开源版本。HDFS是Hadoop生态系统中非常重要的一环,它为管理大数据资源池和支撑相关大数据分析应用提供了一个具有高可靠性的工具。

3.1.2HDFS工作原理1HDFS概述

HDFS的优缺点

HDFS的优点:高容错性,数据自动保存多份;被设计为能够部署在低廉的硬件上;提供高吞吐量来访问应用程序的数据,适合处理大数据;流式文件访问,允许一次写入,多次读取;适合进行批处理。HDFS的缺点:不善于处理低延迟数据访问;不善于处理小文件存取;不支持并发写入,一个文件同时只能被一个写入者修改。3.1.2HDFS工作原理2HDFS中的基础概念HDFS中的存储单元是数据块,它的默认大小是64M,也就是HDFS中的文件是被分成一块块的64M的数据块存储的。数据块(Block)维护着文件系统树及整棵树内所有的文件和目录,并以两个文件形式永久保存在本地磁盘上:命名空间镜像和编辑日志。该节点也记录着每个文件中各个数据块所在的数据节点信息。元数据节点(NameNode)是真正存储数据的地方。客户端(client)和元数据节点可以向数据节点请求写入或者读出数据块。该节点也需要周期性的向元数据节点汇报其存储的数据块信息。数据节点(DataNode)主要功能是周期性的将元数据节点的命名空间镜像和编辑日志合并,以防日志文件过大;合并后的命名空间镜像也会在该节点保存一份。从元数据节点(SecondaryNameNode)3.1.2HDFS工作原理3HDFS中文件写入操作流程客户端(HDFSClient)元数据节点(NameNode)数据节点(DataNode)3.1.2HDFS工作原理4HDFS中文件读取操作流程客户端(HDFSClient)元数据节点(NameNode)数据节点(DataNode)《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.1.1分布式存储概述3.1.2HDFS工作原理3.1.3HDFS基础命令3.1分布式存储3.1.3HDFS基础命令1HDFS命令概述

HDFS提供了相当多的Shell操作命令,大大方便了程序员和系统管理员查看、修改HDFS上的文件。比如文件操作命令hdfsdfs、管理命令hdfsdfsadmin等。进一步,HDFS的操作命令和Unix/Linux的命令名称和格式相当一致,因而学习HDFS命令的成本也大为缩小。3.1.3HDFS基础命令2HDFS文件操作命令HDFS文件操作命令是hdfsdfs起始的高度类似linux文件操作的命令集。可以使用这些命令查看HDFS上的目录结构、上传和下载文件、创建文件夹、复制文件等。

查看目录结构命令lshdfsdfs-ls文件夹路径

功能:列出文件夹内的一层目录hdfsdfs-ls-R文件夹路径

功能:列出文件夹内的多层的所有目录例如:hdfsdfs-ls/home/zjiet例如:hdfsdfs-ls–R/home/zjiet3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–mkdir文件夹路径功能:创建一个文件夹。如果路径中间的文件夹不存在,无法创建。hdfsdfs–mkdir-p文件夹路径功能:创建多层的文件夹。如果路径中间的文件夹不存在,多层的文件夹都会创建。

创建文件夹命令mkdir例如:hdfsdfs-mkdir/home/zjiet例如:hdfsdfs–mkdir-p/home/zjiet3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–touchz文件路径

功能:创建一个文件。如果文件本就存在就失败。hdfsdfs–cat文件路径功能:查看文件内容。

创建文件命令touchz

查看文件内容命令cat例如:hdfsdfs-touchz/home/zjiet/news.txt例如:hdfsdfs-cat/home/zjiet/news.txt3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs-cp文件路径文件夹路径功能:复制一个文件到另一个文件夹内。

复制文件命令cp例如:hdfsdfs-cp/home/zjiet/news.txt

/home/zjiet23.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–rm文件功能:删除文件。

删除文件和目录命令rmhdfsdfs–rm–r文件夹路径功能:删除文件或文件夹内所有内容。例如:hdfsdfs-rm/home/zjiet/news.txt例如:hdfsdfs-rm–r/home/zjiet3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–put本地路径HDFS系统路径功能:本地路径的文件上传到HDFS目录。

上传文件或目录命令put例如:hdfsdfs-put/centos/news.txt

/home/zjiet3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–getHDFS系统路径本地路径功能:HDFS目录下的文件下载到本地路径

下载文件或目录命令get例如:hdfsdfs-get/home/zjiet/news.txt/centos《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.2.1分布式计算概述3.2.2MapReduce计算框架3.2分布式计算3.2.1分布式计算概述1分布式计算的定义分布式计算技术是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。3.2.1分布式计算概述2分布式计算的分类-批处理和流处理批处理流处理12按照对数据的处理时效分类实时产生的新的数据先被存储起来,在未来的某个时间一批批的处理。

它可以基于预定的时间间隔如每五分钟、或每天等处理一次,或在某些触发的条件下如新的数据容量达到预定规模等。实时产生的新的数据会被实时的一条条的处理,而不会等待到未来的某个时刻一批处理。

如今,越来越多的系统设计用于流处理,以支持近乎实时的事件处理。3.2.1分布式计算概述2分布式计算的分类-批处理和流处理

批处理和流处理之间差异的含义尽管流处理和批处理之间的差异似乎只是时间差异的问题。

但它们实际上对数据处理系统的体系结构和使用它们的应用程序都有着根本的影响。

流处理系统的设计是为了在数据到达时对其进行响应。这就要求它们实现一个由事件驱动的体系结构,即系统的内部工作流设计为在接收到数据后立即连续监视新数据和调度处理。

批处理系统中的内部工作流只定期检查新数据,并且只在下一个批处理窗口发生时处理该数据。3.2.1分布式计算概述2分布式计算的分类-批处理和流处理处理场景批处理通常适用于具有最新数据并不重要的用例,以及容忍较慢响应时间的情况。例如,对历史数据进行离线分析以计算结果或识别相关性是一种常见的批处理用例。流处理对于需要实时交互和实时响应的情况是必需的。金融交易处理,实时欺诈检测和实时定价是最适合流处理的示例。分布式计算概述3分布式计算常用框架

MapReduceHadoop的MapReduce是Google在2004年发布的分布式并行计算框架MapReduce论文的开源实现,是适合处理大级别量的离线数据批处理的分布式计算框架。它不适合处理大量的小文件和有实时性要求的任务。

目前市面上有很多大数据框架,有突出代表性的如批处理计算框架MapReduce,流处理计算框架Storm,以及混合处理型计算框架Spark。分布式计算概述3分布式计算常用框架

StormStorm是由类Lisp语言开发的一个用来处理实时的大数据的基于流处理的分布式计算框架。

它的出现在一定程度上结束了Hadoop的MapReduce的延迟比较大,后期程序运维复杂等特点,而且它还有MapReduce所不能支持的实时性、流式计算等特点。对一些实时性的数据分析,Storm具有非常高的效率。分布式计算概述3分布式计算常用框架

SparkSpark是使用Scala编写、基于RDD(ResilientDistributedDatasets)弹性分布式内存数据集的批处理的分布式计算框架。同时,Spark生态系统中还包括很多附加库,其中的SparkStreaming基于微批量方式的计算和处理,可以用于处理实时的流数据。

该框架基于内存计算,解决了在Hadoop的MapReduce计算框架中,执行迭代性质的任务效率比较低的弊端,除此之外该框架还提供了任务执行期间的交互查询,增加了任务的可控性。相比Hadoop,Spark除了提供计算的方法调用之外,还提供了更多的操作。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.2.1分布式计算概述3.2.2MapReduce计算框架3.2分布式计算3.2.2MapReduce计算框架1MapReduce计算框架简介

MapReduce最早是由Google公司研究提出的一种面向大规模数据处理的并行计算模型和方法。设计初衷主要是为了解决其搜索引擎中大规模网页数据的并行化处理。

但由于MapReduce可以普遍应用于很多大规模数据的计算问题,Google公司内部进一步将其广泛应用于很多大规模数据处理问题。

2004年,Google公司在国际会议上发表了MapReduce的论文,公布了基本原理和主要设计思想。3.2.2MapReduce计算框架1MapReduce计算框架简介在Google的MapReduce论文基础上,基于Java设计开发了开源MapReduce并行计算框架,和HDFS构成了Hadoop的核心。MapReduce极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。

Hadoop成为Apache开源组织下最重要的项目,自其推出后很快得到了全球学术界和工业界的普遍关注,并得到推广和普及应用。

3.2.2MapReduce计算框架2HadoopMapReduce的计算原理

MapReduce设计思想

MapReduce源于函数式语言中的内置函数map和reduce,把一个计算分成map与reduce两个计算过程,采用“分而治之”的设计思想。

它把一个大的计算任务划分为多个小的计算任务,然后把每个小的计算任务分配给集群的每个计算节点,并一直跟踪每个计算节点的进度决定是否重新执行该任务,最后收集每个节点上的计算结果并输出。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理

MapReduce计算过程

MapReduce计算过程可以分为Map阶段和Reduce阶段。Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。

更详细的,一个Map/Reduce作业(job)在输入数据、输出结果之间还经历了Split、Map、Shuffle、Reduce等阶段。MapReduce计算过程所处理的数据都是按键值对(<key,value>)存储和使用的。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理MapReduce流程:Input->split->map->shuffle->reduce->resultSplit阶段每个输入文件进行切分,分片输入到map。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理MapReduce流程:Input->split->map->shuffle->reduce->resultMap阶段执行map任务,任务的数量由分片决定。提供Map接口,可以由开发者对输入的数据进行处理,得到计算需要的map阶段的输出数据。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理MapReduce流程:Input->split->map->shuffle->reduce->resultShuffle阶段MapReduce的核心,是奇迹发生的地方。描述着数据从map任务的输出到reduce任务的输入之间这段过程,也称为“混洗”。分为map端操作和reduce端操作。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理一个map的输出先写入缓存,当每次缓存快满时,由缓存溢写至磁盘,每次溢写都先进行分区,并对每个分区的数据进行排序(sort)和合并(combine)。最后,通知reduce任务来领取自己的分区。Shuffle的Map端操作每个reduce任务会从多个map任务领取分区,然后将这些文件进行归并(merge),交给reduce任务。Shuffle的Reduce端操作注意:设两个键值对<“a”,1>和<“a”,1>,如果合并(combine),会得到<“a”,2>,如果归并(merge),会得到<“a”,<1,1>>。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理MapReduce流程:Input->split->map->shuffle->reduce->resultReduce阶段执行reduce任务,reduce数量由分区数决定,结果文件的数量也由此决定。提供Reduce接口,可以由开发者对来自shuffle端的数据进行处理,得到理想的reduce阶段的输出数据。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群Bigdata训练3-1单元3大数据存储与计算新闻词频统计训练同步eclipseeclipse大数据基础pythonUnit3《大数据基础》.移动商务营销课程群训练3-1:新闻词频统计训练目标在Hadoop系统运行MapReduce示例程序wordcount,对英文新闻稿进行词频统计训练解释将英文新闻文件上传到Hadoop系统的某个路径下,作为wordcount程序执行的输入数据,实现词频统计并输出结果案例效果实现思路基本步骤准备一份英文新闻稿文件news.txt存放在CentOS系统的某个目录。打开CentOS的控制台,使用命令行模式进行后续的任务。执行start-dfs.sh,启动Hadoop系统:在Hadoop系统的用户文件夹/zjiet下创建级联目录data/wordcount在Hadoop系统的用户文件夹/zjiet下创建目录output将英文新闻文件news.txt从本地系统CentOS上传到Hadoop系统的wordcount文件夹内通过hadoopjar命令执行wordcount示例程序,以文件夹wordcount内的news.txt文件为输入数据,以文件夹output为输出结果存放路径,实现新闻词频统计新闻词频统计结果存放在output文件夹内的part-r-00000文件内,打开查看详细内容案例3-1:新闻词频统计《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群浙江《大数据基础》.移动商务营销课程群4.1.1Python语言简介4.1Python概述4.1.2Python的安装与使用语言Python大数据基础Unit44.1.1Python语言简介Python的创始人:荷兰的Guido

1989年,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python作为该编程语言的名字,是因为他是一个叫MontyPython的喜剧团体的爱好者。

Python语言概况Python是一种解释型、面向对象的编程语言;是一个开源语言,拥有大量的库,可以高效地开发各种应用程序。Python目前包含两个主要版本:Python2和Python3Python2与Python3并不兼容,本课程的代码基于Python3版本进行编写。4.1.1Python语言简介

Python语言特点4.1.1Python语言简介简单易学开源高级语言可移植性解释性面向对象可扩展丰富的库代码规范

Python应用领域4.1.1Python语言简介Python人工智能自动化运维云计算Web开发大数据

Python的大数据应用数据采集数据清洗数据挖掘数据展现网络数据抓取可以通过requests、BeautifulSoup等很方便地实现Pandas库可以胜任重复值、缺失值、异常值、格式转换、数据分组、数据拆分等处理NumPy、SciPy、Scikit-learn、TensorFlow库等简化了数据挖掘算法的实现Matplotlib等库可以直观地观察或展示数据4.1.1Python语言简介《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群浙江《大数据基础》.移动商务营销课程群4.1.1Python语言简介4.1Python概述4.1.2Python的安装与使用语言Python大数据基础Unit44.1.2Python的安装与使用Python软件安装包选择Anaconda是Python的一个集成管理工具,是数据领域应用首选软件。Anaconda里面包含了诸多数据科学相关的开源包,可以方便应用于大数据。安装Anaconda可以省去大量下载和安装模块包的时间,并且解决了软件包之间的依赖和版本兼容问题。4.1.2Python的安装与使用1)浏览器访问anaconda下载网站,下载匹配的安装包:操作系统:Windows软件版本:Python3.x版本机器型号:64位或32位2)使用默认配置安装Anaconda

Windows上安装Anaconda

编写最简Python程序编写一个最简单的Python程序,Python程序代码保存在后缀为.py的源文件中。以IDLE为例,py文件的创建可以通过File菜单下的NewFile选项进行创建。源文件创建完成后,在源文件中编写代码,往屏幕打印一句话“这是我的第一个Python程序!”。#第一个Python程序first.pyprint('这是我的第一个Python程序!')4.1.2Python的安装与使用

最简Python程序剖析第一行代码是#号开头的,该符号用于注释程序,即#号后面的内容编译器将忽略,对程序的运行不会有影响。使用注释,基本上有以下两个用途:1)解释代码功能,2)调试程序。第二行代码有一个关键词print,中文意思是打印,用于往控制台上打印文本内容。打印内容通过一对引号来包含,单引号和双引号均可。其基本格式为:print(需要打印的内容)#第一个Python程序first.pyprint('这是我的第一个Python程序!')4.1.2Python的安装与使用

运行最简Python程序代码内容键入后,保存源文件。然后通过Run菜单下的RunModule选项或F5快捷键运行第一个程序。当IDLE的Shell窗口成功打印出“这是我的第一个Python程序!”时,说明你的Python程序正确无误。4.1.2Python的安装与使用《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群浙江《大数据基础》.移动商务营销课程群4.2.1数据类型与变量4.2.3分支控制结构4.2.4循环控制结构4.2Python基础4.2.2运算符与表达式语言Python大数据基础Unit44.2.1数据类型与变量

变量数据存放在内存开辟的空间中,通过变量引用之后数据才能够被访问。Python中的变量不需要独立声明,变量的引用操作既是变量声明和定义的过程。>>>student_id=1001#整型变量>>>name="张三"#字符串变量>>>average_score=95.3#浮点型变量>>>print(student_no,name,average_score)1001张三95.3数字数据类型用于存储数值,Python中的数字类型有整型int、浮点型float和复数型complex。情形1数字类型范例>>>num_int=10#定义整型变量>>>num_float=9.5#定义浮点型变量>>>num_complex=3+4j#定义复数型变量>>>print(num_int,num_float,num_complex)109.5(3+4j)4.2.1数据类型与变量字符串是用单/双引号对括起来的若干有效字符构成的字符序列,用于表示文本数据。字符串里的字符可以是英文、中文及其它国家文字字符。情形范例2字符串类型>>>s="Hello中国!">>>print(s)#输出完整字符串Hello中国!>>>print(type(s))#输出变量s的类型名<class'str'>4.2.1数据类型与变量下标101234567891011字符串sHelloworld!下标2-12-11-10-9-8-7-6-5-4-3-2-1

字符串索引Python的字符串列表中的字符索引有2种取值顺序:(1)从左到右索引默认0开始的,最大范围是字符串长度少1。(2)从右到左索引默认-1开始的,最大范围是字符串开头。4.2.1数据类型与变量可以通过字符串的索引获取字符串子串,其中又分为获取单个字符和获取多个字符两种情形。情形格式变量名[下标]#获取字符串的单个字符变量名[头下标:尾下标]#获取字符串的多个连续字符的子串获取子串时,截取的子串为头下标到尾下标之间的字符,不包含尾下标。4.2.1数据类型与变量>>>s='HelloWorld!'>>>print(s[0])H>>>print(s[6:11])World>>>print(s[6:-1])World>>>print(s[6:])World!下标101234567891011字符串sHelloWorld!下标2-12-11-10-9-8-7-6-5-4-3-2-14.2.1数据类型与变量《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群浙江《大数据基础》.移动商务营销课程群4.2.1数据类型与变量4.2.3分支控制结构4.2.4循环控制结构4.2Python基础4.2.2运算符与表达式语言Python大数据基础Unit4列表是指一组存在联系数据的有序集合,可以用一个统一的列表名和下标来唯一地确定列表中的元素,其元素支持字符、数字、字符串、列表等类型。列表用[]将元素有序组织起来,元素之间以逗号分隔。情形列表名=[元素1,元素2,…,元素n]格式3列表类型>>>list1=[1001,'张三',95.3]>>>print(list1)#输出完整列表[1001,'张三',95.3]4.2.1数据类型与变量可以通过列表的索引来访问列表,其中又分为访问单个元素和子列表两种情形。情形格式列表名[下标]#访问列表元素列表名[头下标:尾下标]#访问子列表访问子列表时,截取的子列表为头下标到尾下标之间的元素,不包含尾下标元素。4.2.1数据类型与变量>>>list1=[1001,'张三',95.3]>>>print(list1[0])#输出列表的第一个元素1001>>>print(list1[-1])#输出列表的倒数第一个元素95.3>>>list1=[1001,'张三',95.3]>>>print(list1[1:3])#输出第二个至第三个的元素['张三',95.3]>>>print(list1[2:])#输出从第三个开始至列表末尾的所有元素[95.3]4.2.1数据类型与变量列表是一个动态的有序序列,可以进行元素的添加和删除操作。通过append方法可以在列表尾部添加新元素,pop方法用于从列表删除元素,可以通过元素下标指定弹出的元素,无参数时默认弹出最后一个元素。情形格式列表名.append(新元素)#在列表末尾添加新元素列表名.pop([下标])#弹出列表中指定下标的元素,默认为-14.2.1数据类型与变量>>>list3=['张三','李四']>>>list3.append('王五')>>>print(list3)['张三','李四','王五']>>>list3.pop()'王五'>>>print(list3)['张三','李四']>>>list3.pop(0)'张三'>>>print(list3)['李四']4.2.1数据类型与变量布尔类型包含两个值:True(真)或False(假),当某个表达式判断条件成立时,其布尔值为True,反之为False。以下数值会被认为是False:数值0、空值None、空组合(如""、[])情形范例4布尔类型数据0-1None[]"False"[0]布尔值FalseTrueFalseFalseTrueTrue4.2.1数据类型与变量《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群浙江《大数据基础》.移动商务营销课程群4.2.1数据类型与变量4.2.3分支控制结构4.2.4循环控制结构4.2Python基础4.2.2运算符与表达式语言Python大数据基础Unit4算术运算符通常是为实现数学表达式的四则运算,其用法和功能与数学基本一样,此外还引入了求余运算、幂运算、取整运算等。情形运算对象1基本算术运算符运算对象2格式1算术运算假设变量a为10,变量b为21则a+b的结果为它们的和314.2.2运算符与表达式运算符描述实例(a=10,b=21)+加-两个对象相加a+b输出结果31-减-得到负数或是一个数减去另一个数a-b输出结果-11*乘-两个数相乘a*b输出结果210/除-x除以yb/a输出结果2.1%取模-返回除法的余数b%a输出结果1**幂-返回x的y次幂a**b为10的21次方//取整除-返回商的整数部分b//a输出结果24.2.2运算符与表达式#代码功能:求成绩的总分和平均分score_java=int(input(‘Java成绩:’))#获取键盘输入的分数score_cpp=int(input('C++成绩:'))score_python=int(input('Python成绩:'))total=score_java+score_cpp+score_pythonprint('总成绩为:',total)average1=total/3#算术除法print('算术除法求得平均成绩:{0:.2f}'.format(average1))#保留两位小数average2=total//3#整除print('整除除法求得平均成绩:',average2)4.2.2运算符与表达式关系运算符是对两个运算对象之间进行比较的运算符。由关系运算符和两个运算对象构成的表达式称为是关系表达式。情形运算对象1关系运算符运算对象2格式2关系运算关系表达式的运算结果是bool类型,只有两个结果True或False。4.2.2运算符与表达式运算符描述实例(a=10,b=20)==等于-比较对象是否相等(a==b)返回False。!=不等于-比较两个对象是否不相等(a!=b)返回True.>

大于-返回a是否大于b(a>b)返回False。<

小于-返回a是否小于b。(a<b)返回True。>=大于等于-返回a是否大于等于b。(a>=b)返回False。<=小于等于-返回a是否小于等于b。(a<=b)返回True。4.2.2运算符与表达式>>>student=[215,'张三',18,'男','浙江']>>>student[0]>=201True>>>student[0]<301True>>>student[2]>=18True>>>student[3]=='男'True>>>student[-1]!='浙江'False4.2.2运算符与表达式逻辑运算符是另一种可以产生逻辑值结果的运算符,但参与逻辑运算的运算对象都应该是逻辑值。在Python语言中,逻辑运算符有3个,分别是双目运算符的与运算“and”和或运算“or”,单目运算符的非运算“not”。情形运算对象1and运算对象2运算对象1or运算对象2not运算对象格式3逻辑运算4.2.2运算符与表达式运算符描述实例(a=10,b=20)and与运算

-如果运算对象1和运算对象2都为True,则返回True,否则返回False。(aandb)返回True。or或运算-如果运算对象1和运算对象2都为False,则返回False,否则返回True。(aorb)返回True。not非运算-如果运算对象为True,返回False,反之返回True。nota返回False。4.2.2运算符与表达式>>>student=[20180215,'张三',95,88,91]>>>student[-3]>=90orstudent[-2]>=90orstudent[-1]>=90#是否至少有一个科目高于90分True>>>student[-3]>=60andstudent[-2]>=60andstudent[-1]>=60#是否所有科目都高于60分True>>>not(student[-3]>=45orstudent[-2]>=45orstudent[-1]>=45)#是否所有科目都低于45分False4.2.2运算符与表达式《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群浙江《大数据基础》.移动商务营销课程群4.2.1数据类型与变量4.2.3分支控制结构4.2.4循环控制结构4.2Python基础4.2.2运算符与表达式语言P

温馨提示

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

评论

0/150

提交评论