Hadoop单节点和集群安装课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx
-
资源ID:75816809
资源大小:6.53MB
全文页数:389页
- 资源格式: PPTX
下载积分:19金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Hadoop单节点和集群安装课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx
Hadoop单节点和集群安装01任务Hadoop系统架构02任务Hadoop单节点和集群安装单元1.4Hadoop单节点和集群安装03任务Hadoop简介1Hadoop简介1Hadoop简介Hadoop作为开源的云计算基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储。它实现了一个分布式文件系统(Hadoop Distrubuted File System,HDFS),HDFS具有高容错性的特点,并且设计用来部署在价格低廉的硬件上,为海量的数据提供了存储。它实现了MapReduce计算模式,为海量数据计算提供了支持。其下的HBase是一个基于列存储的NoSQL数据库,适合于非结构化数据的存储。Hive是Hadoop下的一个数据仓库,支持类似于SQL语句,操作起来非常简便。2Hadoop系统架构2Hadoop系统架构Hadoop核心Hadoop的核心是两个主要层次,即处理/计算层(MapReduce)和存储层(Hadoop分布式文件系统)。2Hadoop系统架构MapReduce是一种并行编程模型,用于编写Google设计的分布式应用程序,以便以可靠,容错的方式在大型集群(数千个节点)的商用硬件上高效处理大量数据(多TB数据集)。MapReduce程序在Hadoop上运行,Hadoop是一个Apache开源框架。2Hadoop系统架构Hadoop分布式文件系统(HDFS)基于Google文件系统(GFS),提供分布式文件系统,旨在在商用硬件上运行。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的差异很大。它具有高度容错性,旨在部署在低成本硬件上。它提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。3Hadoop单节点和集群安装3Hadoop单节点和集群安装Hadoop单节点安装(1)下载hadoop压缩文件并上传解压到centos系统中去(这是下载的是hadoop-2.7.5.tar.gz)。#cd/usr -切换到usr目录下#mkdir hadoop -创建hadoop空目录#tar-azxvf/root/hadoop-2.7.5.tar.gz-C/usr/hadoop -解压到刚刚创建hadoop目录中去3Hadoop单节点和集群安装Hadoop单节点安装(2)配置相关信息,修改hadoop-env.sh文件,给其jdk的配置,hadoop依赖jdk。#vim /usr/hadoop/hadoop-2.7.5/etc/hadoop/hadoop-env.sh -编辑该文件#export JAVA_HOME=$JAVA_HOME -加入jdk环境变量 按Esc在按:wq即可修改保存退出3Hadoop单节点和集群安装Hadoop单节点安装(3)修改core-site.xml文件(4)修改hdfs-site.xml文件(5)修改marped-site.xml文件(6)格式化hadoop的HDFS文件系统,在hadoop文件中输入#bin/Hadoop NameNode format(7)如果没有异常显示,及说明格式化成功,就可以启动hadoop了,启动hadoop:#sbin/start-all.sh(8)测试是否安装成功,输入:#jps3Hadoop单节点和集群安装Hadoop集群安装通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves。Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。3Hadoop单节点和集群安装Hadoop集群安装本集群搭建案例,以3节点为例进行搭建,角色分配如下:hdp-node-01 NameNode SecondaryNameNode ResourceManagerhdp-node-02 DataNode NodeManagerhdp-node-03 DataNode NodeManager3Hadoop单节点和集群安装Hadoop集群安装服务器准备本案例使用虚拟机服务器来搭建Hadoop集群,所用软件及版本:(1)Vmware 12.0(2)Centos 6.6 64bit3Hadoop单节点和集群安装Hadoop集群安装网络环境准备(1)采用NAT方式联网;(2)网关地址:192.168.33.1;(3)3个服务器节点IP地址:192.168.33.101、192.168.33.102、192.168.33.103;(4)子网掩码:255.255.255.03Hadoop单节点和集群安装Hadoop集群安装服务器系统设置(1)添加Hadoop用户(2)为Hadoop用户分配sudoer权限(3)同步时间(4)设置主机名:A:hdp-node-01B:hdp-node-02C:hdp-node-033Hadoop单节点和集群安装Hadoop集群安装服务器系统设置(1)添加Hadoop用户(2)为Hadoop用户分配sudoer权限(3)同步时间(4)设置主机名:A:hdp-node-01、B:hdp-node-02、C:hdp-node-03配置内网域名映射:(A)192.168.33.101 hdp-node-01、(B)192.168.33.102 hdp-node-02、(C)192.168.33.103 hdp-node-03(6)配置ssh免密登陆(7)配置防火墙3Hadoop单节点和集群安装Hadoop集群安装JDK环境安装(1)上传jdk安装包(2)规划安装目录 /home/hadoop/apps/jdk_1.8.0(3)解压安装包(4)配置环境变量/etc/profile3Hadoop单节点和集群安装Hadoop集群安装Hadoop安装部署(1)上传HADOOP安装包(2)规划安装目录 /home/hadoop/apps/hadoop-2.6.5(3)解压安装包 tar zxvf hadoop-2.6.5 C apps/(4)修改配置文件$HADOOP_HOME/etc/hadoop/3Hadoop单节点和集群安装Hadoop集群安装集群启动(1)初始化HDFSbin/hadoop namenode -format(2)启动HDFSsbin/start-dfs.sh(3)启动YARNsbin/start-yarn.sh(4)查看集群状态jpsThankYOU!Java安装01任务Java与Hadoop的关系02任务Java安装单元1.3Java安装与环境变量的配置03任务Java简介1Java简介1Java简介Java历史Java的历史要追溯到1991年,当时美国Sun Microsystems公司的Patrick Naughton及其伙伴James Gosling带领的工程师小组想要设计一种小型的计算机语言,主要应用对象是像有线电转换盒这类的消费设备。由于这些消费设备的处理能力和内存都很有限,所以语言必须非常小且能够生成非常紧凑的代码。另外,由于不同的设备生厂商会选择不同的中央处理器(CPU),因此这种语言的关键是不能与任何特定的体系结构捆绑在一起。这个项目被命名为Green。1Java简介Java语言特点1.简单性Java中没有指针、结构和类型定义等概念,没有#include和#define等预处理器,也没有多重继承的机制。2Java简介Java语言特点2.面向对象性Java是一个纯粹的面向对象的语言,强调的是面向对象的特性,能够为软件工程技术提供很强的支持。Java语言的设计集中于对象及其接口,它提供了简单的类机制及动态的接口模型。与其他面向对象的语言一样,Java具备继承、封装及多态性这些通常的特性,更提供了一些类的原型,程序员可以通过继承机制,实现代码的复用。2Java简介Java语言特点3.分布式与安全性Java语言包括一个支持HTTP和FTP等基于TCP/IP协议的子库,它提供一个J包,通过它可以完成各种层次上的网络连接。因此Java语言编写的应用程序可以凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。Java语言的另一个Socket类提供了可靠流式网络的连接,使程序设计者可以非常方便地创建分布式应用程序。Java程序在语言定义阶段、字节码检查阶段及程序执行阶段进行的三级代码安全检查机制,对参数类型匹配、对象访问权限,内存回收、Java小应用程序的正确使用等都进行了严格的检查和控制,可以有效地防止非法代码入侵,阻止对内存的越权访问,能够避免病毒的侵害。2Java简介Java语言特点4.与平台无关性Java程序编译后生成二进制代码,即字节码(bytecode)。字节码就是虚拟机的机器指令,与平台无关。字节码有统一的格式,不依赖于具体的硬件环境。在任何安装Java运行时环境的系统上,都可以执行这些代码。2Java简介Java语言特点5.解释和编译特性Java开发环境在Java源程序编译后生成一种称为字节代码(bytecode)的中间代码,字节代码非常类似于机器指令代码,但并不是二进制的机器指令代码,且字节代码不专对一种特定的机器,所以Java程序不需重新编译便可在众多不同的计算机上执行,只要该机器上预先安装有Java语言运行系统,这是其编译特性。Java程序编译后产生字节代码,其运行要借助于Java解释器,Java解释器直接对Java字节代码进行解释执行。2Java简介Java语言特点6.多线程多线程机制使应用程序能够并行执行,通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现网络上的实时交互行为和实时控制性能。2Java与Hadoop的关系2Java与Hadoop的关系Hadoop使用Java开发的,它运行时需要有一个Java环境,因此在安装运行Hadoop之前需要安装JDK。JDK是Java开发工具箱(Java Development Kit)的缩写。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。JDK是整个Java的核心,包括Java运行环境(Java Runtime Envirnment)一些Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是运行Java应用的基础。最主流的JDK是Sun公司(现在已经被Oracle收购)发布的JDK,除了Sun之外,还有许多公司组织都开发了自己的JDK。3Java安装与环境变量的配置3Java安装与环境变量的配置Java安装与环境变量配置第一步:检查系统是否有已经安装好的jdk。具体操作如下:rpm-qa|grep jdk#查看已安装的jdk如果系统已经安装jdk,则需要先卸载对应的jdk,命令如下:rpm-e nodeps jdk-1.7.0_25-fcs.x86_64#卸载对应的jdk3Java安装与环境变量的配置Java安装与环境变量配置第二步:下载JDK访问官方网站https:/ install jdk-8u211-Linux-x64.rpm按照提示,按回车键,即可完成安装。3Java安装与环境变量的配置Java安装与环境变量配置第四步:配置Java环境vim/etc/profile在文件的最末尾加上如下信息:export JAVA_HOME=/usr/java/jdk1.8.0_40export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOM/lib/dt.jar:$JAVA_HOME/lib/tools.jar3Java安装与环境变量的配置Java安装与环境变量配置第五步:使环境变量生效输入以下命令,使环境变量生效:source/etc/profile第六步:测试Java是否安装成功输入以下命令,测试Java是否安装成功:java-versionThankYOU!Linux基础操作命令01任务Linux用户和用户组管理02任务Linux基础操作命令单元1.2了解Linux Shell03任务Linux文件和目录管理Linux 基本命令练习04任务1Linux文件和目录管理1Linux文件和目录管理Linux文件层次结构Linux文件和目录组织树状图在Linux操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构。1Linux文件和目录管理Linux目录管理在Linux系统中,一切都是文件,既然是文件,就必须要有文件名。同其他系统相比,Linux操作系统对文件或目录命名的要求相对比较轻松。Linux系统中,文件和目录的命名规则如下:1.除了字符“/”之外,所有的字符都可以使用,但是要注意,在目录名或文件名中,使用某些特殊字符并不是明智之举。2.目录名或文件名的长度不能超过 255 个字符。3.目录名或文件名是区分大小写的。如 pig、PIG、Pig和 PIg,是互不相同的目录名或文件名,但使用字符大小写来区分不同的文件或目录,也是不明智的。4.与 Windows 操作系统不同,文件的扩展名对 Linux 操作系统没有特殊的含义,换句话说,Linux 系统并不以文件的扩展名开分区文件类型。1Linux文件和目录管理Linux路径在Linux系统中,文件是存放在目录中的,而目录又可以存放在其他的目录中,因此,用户(或程序)可以借助文件名和目录名,从文件树中的任何地方开始,搜寻并定位所需的目录或文件。说明目录或文件名位置的方法有两种,分别使用绝对路径和相对路径。绝对路径指的是从根目录(/)开始写起的文件或目录名称,而相对路径则指的是相对于当前路径的写法。简而言之,绝对路径必须以一个正斜线(/),也就是根目录开始,到查找对象(目录或文件)所必须经过的每个目录的名字,它是文件位置的完整路标,因此,在任何情况下都可以使用绝对路径找到所需的文件。2Linux用户和用户组管理2Linux用户和用户组管理Linux用户和用户组1.CentOS用户在CentOS中 账户有两种类型分别是:(1)系统账户:用于守护程序或者其他软件。(2)交互式账户:通常分配给用户以访问系统资源。两种用户类型之间的主要区别是:(1)守护进程使用系统账户来访问文件和目录。这些通常不会通过shell或物理控制台登录进行交互式登录。(2)最终用户使用交互式账户从shell或物理控制台登录访问计算资源。2Linux用户和用户组管理Linux用户和用户组2.用户组用户组是具有相同特征用户的逻辑集合。简单的理解,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有 10 个用户的话,就需要授权 10 次,那如果有 100、1000 甚至更多的用户呢?显然,这种方法不太合理。最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。3了解Linux Shell3了解Linux Shell什么是Shell脚本我们平时所说的 Shell 可以理解为 Linux 系统提供给用户的使用界面。Shell 为用户提供了输入命令和参数并可得到命令执行结果的环境。当一个用户登录 Linux 之后,系统初始化程序 init 就根据/etc/passwd 文件中的设定,为每个用户运行一个被称为 Shell(外壳)的程序。确切地说,Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至编写一些程序。3了解Linux Shell什么是Shell脚本第一行:“#!/bin/bash”,这句话的作用是标称我以下写的脚本使用的是 Bash 语法,只要写的是基于 Bash 的 Shell 脚本都应该这样开头。第二行:注释,在Linux中,以“#”开头的一般都是注释,除了“#!/bin/bash”这行外,其他行只要以#开头的都是注释。第三行:程序的主体,既然 echo 命令可以直接打印,那么将这句话放入 Shell 脚本中也是可以正确执行的,因为 Linux 的命令是可以直接在脚本中执行的。4Linux 基本命令练习4Linux 基本命令练习命令的基本格式rootsimple02#命令选项参数命令格式中的 代表可选项,也就是有些命令可以不写选项或参数,也能执行4Linux 基本命令练习Linux基础操作命令(1)cd命令rootsimple02#cd相对路径或绝对路径cd 命令,是 Change Directory 的缩写,用来切换工作目录。4Linux 基本命令练习Linux基础操作命令(2)pwd命令rootsimple02#pwdpwd 命令,是 Print Working Directory(打印工作目录)的缩写,功能是显示用户当前所处的工作目录。4Linux 基本命令练习Linux基础操作命令(3)ls命令rootsimple02#选项目录名称ls 命令,list 的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。4Linux 基本命令练习Linux基础操作命令(4)mkdir命令rootsimple02#mkdir-mp目录名mkdir 命令,是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用。4Linux 基本命令练习Linux基础操作命令(5)rmdir命令rootsimple02#rmdir-p目录名和 mkdir 命令(创建空目录)恰好相反,rmdir(remove empty directories 的缩写)命令用于删除空目录。4Linux 基本命令练习Linux基础操作命令(6)touch命令rootsimple02#选项 文件名既然知道了如何在 Linux 系统中创建目录,接下来你可能会想在这些目录中创建一些文件,可以使用 touch 命令。4Linux 基本命令练习Linux基础操作命令(7)ln命令rootsimple02#ln 选项 源文件 目标文件ln 命令用于给文件创建链接,根据 Linux 系统存储文件的特点,链接的方式分为两种,分别是:软连接和硬连接。4Linux 基本命令练习Linux基础操作命令(8)cp命令rootsimple02#cp 选项 源文件 目标文件cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。4Linux 基本命令练习Linux基础操作命令(9)rm命令rootsimple02#rm选项 文件或目录rm 是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。4Linux 基本命令练习Linux基础操作命令(10)mv命令rootsimple02#mv 选项 源文件 目标文件mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。ThankYOU!安装Linux虚拟环境01任务开源协议介绍02任务安装Linux虚拟环境单元1安装Linux操作系统03任务Linux系统介绍1Linux系统介绍1Linux系统介绍什么是操作系统操作系统(Operating System,Os)是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁(或者说接口、中间人、中介等)。操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序。1Linux系统介绍什么是操作系统计算机组成图1Linux系统介绍Linux和UNIX的关系(1)UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;(2)UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。1Linux系统介绍Linux和UNIX的关系 Linux受广大用户喜爱的主要原因是:(1)它属于开源软件,用户不用支付可费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播;(2)它具有 UNIX 的全部功能,任何使用 UNIX 操作系统或想要学习 UNIX 操作系统的人都可以从 Linux 中获益。1Linux系统介绍Linux介绍Linux特点:(1)兼容大量软件:Linux 系统上有着大量的可用软件,且绝大多数是免费的,比如声名赫赫的 Apache、Samba、PHP、MySQL 等,构建成本低廉,是 Linux 被众多企业青睐的原因之一。当然,这和 Linux 出色的性能是分不开的,否则,节约成本就没有任何意义。(2)良好的可移植性:Linux 系统有良好的可移植性,它几乎支持所有的 CPU 平台,这使得它便于裁剪和定制。我们可以把 Linux 放在 U 盘、光盘等存储介质中,也可以在嵌入式领域广泛应用。1Linux系统介绍Linux介绍(3)优良的安全性和稳定性:Linux 开放源代码,将所有代码放在网上,全世界的程序员都看得到,有什么缺陷和漏洞,很快就会被发现,从而成就了它的安全性和稳定性。(4)支持所有的网络协议:前面在 UNIX 发展史中已经介绍了,UNIX 系统是与 C 语言、TCP/IP 协议一同发展起来的,而 Linux 是 UNIX 的一种,C 语言又衍生出了现今主流的语言 PHP、Java、C+等,而哪一个网络协议与 TCP/IP 无关呢?所以,Linux 对网络协议和开发语言的支持很好。2开源协议介绍2开源协议介绍开源软件Linux是一款开源软件,我们可以随意浏览和修改它的源代码,学习 Linux,不得不谈到开源精神。Linux 本身就是开源精神的受益者,它几乎是全球最大的开源软件。简单来说,开源软件就是把软件程序与源代码文件一起打包提供给用户,用户既可以不受限制地使用该软件的全部功能,也可以根据自己的需求修改源代码,甚至编制成衍生产品再次发布出去。用户具有使用自由、修改自由、重新发布自由和创建衍生品自由,这正好符合了黑客和极客对自由的追求,因此开源软件在国内外都有着很高的人气,大家聚集在开源社区,共同推动开源软件的进步。2开源协议介绍开源协议(1)Apache 许可证版本(Apache License Version)协议。Apache 和 BSD 类似,都适用于商业软件。Apache 协议在为开发人员提供版权及专利许可的同时,允许用户拥有修改代码及再发布的自由。现在热门的 Hadoop、Apache HTTP Server、MongoDB 等项目都是基于该许可协议研发的,程序开发人员在开发遵循该协议的软件时,要严格遵守下面的四个条件:该软件及其衍生品必须继续使用 Apache 许可协议。如果修改了程序源代码,需要在文档中进行声明。若软件是基于他人的源代码编写而成的,则需要保留原始代码的协议、商标、专利声明及其他原作者声明的内容信息。如果再发布的软件中有声明文件,则需在此文件中标注 Apache 许可协议及其他许可协议。2开源协议介绍开源协议(2)GNU GPL(GNU General Public License,GNU通用公共许可证)只要软件中包含了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,因此这个协议并不适合商用软件。遵循 GPL 协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议的。2开源协议介绍开源协议(3)BSD(Berkeley Software Distribution,伯克利软件发布版)协议BSD 协议基本上允许用户“为所欲为”,用户可以使用、修改和重新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售,前提是需要满足下面三个条件:如果再发布的软件中包含源代码,则源代码必须继续遵循 BSD 许可协议。如果再发布的软件中只有二进制程序,则需要在相关文档或版权文件中声明原始代码遵循了 BSD 协议。不允许用原始软件的名字、作者名字或机构名称进行市场推广。3安装Linux操作系统3安装Linux操作系统VMware 安装 Linux 系统步骤:VMware主界面图(1)启动VMware,进入主界面。3安装Linux操作系统VMware 安装 Linux 系统步骤:设置向导界面(2)点击“创建新的虚拟机”,进入虚拟机设置向导界面,这里建议初学者选择“典型(推荐)”。3安装Linux操作系统VMware 安装 Linux 系统步骤:安装操作系统(3)点击“下一步”,进入“安装操作系统”界面,若初学者已提前准备好 Linux 系统的映像文件(.iso 文件),此处可选择“安装程序光盘映像文件”,并通过“浏览”按钮找到要安装 Linux 系统的 iso 文件;否则选择“稍后安装操作系统”。3安装Linux操作系统VMware 安装 Linux 系统步骤:选择操作系统(4)点击“下一步”,进入“选择客户机操作系统”,选择“Linux”,并在“版本”下拉列表框中选择要安装的对应的 Linux 版本,这里选择“CentOS 6”。3安装Linux操作系统VMware 安装 Linux 系统步骤:命名虚拟机(5)继续“下一步”,进入“命名虚拟机”界面,给虚拟机起一个名字(如“CentOS 64位”),然后单击“浏览”按钮,选择虚拟机系统安装文件的保存位置。3安装Linux操作系统VMware 安装 Linux 系统步骤:指定磁盘容量界面(6)单击下一步按钮,进入指定磁盘容量界面。默认虚拟硬盘大小为 20GB(虚拟硬盘会以文件形式存放在虚拟机系统安装目录中)。虚拟硬盘的空间可以根据需要调整大小,但不用担心其占用的空间,因为实际占用的空间还是以安装的系统大小而非此处划分的硬盘大小为依据的。此“指定磁盘容量”界面保持默认设置即可。3安装Linux操作系统VMware 安装 Linux 系统步骤:准备创建虚拟机(7)接下来进入“已准备好创建虚拟机”界面,确认虚拟机设置,不需改动则单击完成按钮,开始创建虚拟机。3安装Linux操作系统VMware 安装 Linux 系统步骤:定制硬件(8)这里,我们可以略做调整,单击自定义硬件按钮进入硬件调整界面。为了让虚拟机中的系统运行速度快一点,我们可以选择内存调整虚拟机内存大小,但是建议虚拟机内存不要超过宿主机内存的一半。CentOS6.x 最少需要 628MB 及以上内存分配,否则会开启简易安装过程。3安装Linux操作系统VMware 安装 Linux 系统步骤:光盘配置(9)选择“新CD/DVD(IDE)”可以选择光驱配置。如果选择“使用物理驱动器”,则虚拟机会使用宿主机的物理光驱;如果选择“使用 ISO 映像文件”,则可以直接加载 ISO 映像文件,单击“浏览”按钮找到 ISO 映像文件位置即可。3安装Linux操作系统VMware 安装 Linux 系统步骤:网络适配器配置(10)选择网络适配器将进入 VMware 新手设置中最难以理解的部分设置网络类型。此设置较复杂,不过网络适配器配置在虚拟机系统安装完成后还可以再行修改。ThankYOU!HDFS读写过程01任务HDFS设计原则02任务HDFS读写过程单元2.1HDFS核心概念03任务HDFS文件系统简介HDFS的HA方案04任务HDFS的命令行接口05任务HDFS常用操作命令06任务1HDFS文件系统简介1HDFS文件系统简介HDFS 总的设计思想是分而治之,即将大文件和大批量文件分布式存放在大量独立的服务器上,以便采取分而治之的方式对海量数据进行运算分析。HDFS 是一个主/从体系结构,从最终用户的角度来看,它就像传统的文件系统一样,可以通过目录路径对文件执行 CRUD(Create、Read、Update 和 Delete)操作。但由于分布式存储的性质,HDFS 集群拥有一个 NameNode 和一些 DataNode。NameNode 管理文件系统的元数据,DataNode 存储实际的数据。HDFS 主要针对“一次写入,多次读取”的应用场景,不适合实时交互性很强的应用场景,也不适合存储大量小文件。1HDFS文件系统简介HDFS的功能:(1)它适用于分布式存储和处理。(2)Hadoop提供了一个与HDFS交互的命令接口。(3)namenode和datanode的内置服务器可以帮助用户轻松检查集群的状态。(4)流式访问文件系统数据。(5)HDFS提供文件权限和身份验证。2HDFS设计原则2HDFS设计原则简单来说,HDFS 的设计原则是,可以运行在普通机器上,以流式数据方式存储文件,一次写入、多次查询,具体有以下几点。(1)可构建在廉价机器上:HDFS 的设计理念之一就是让它能运行在普通的硬件之上,即便硬件出现故障,也可以通过容错策略来保证数据的高可用性。(2)高容错性:由于 HDFS 需要建立在普通计算机上,所以结点故障是正常的事情。HDFS 将数据自动保存多个副本,副本丢失后,自动恢复,从而实现数据的高容错性。2HDFS设计原则(3)适合批处理:HDFS 适合一次写入、多次查询(读取)的情况。在数据集生成后,需要长时间在此数据集上进行各种分析。每次分析都将涉及该数据集的大部分数据甚至全部数据,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要。(4)适合存储大文件:这里说的大文件包含两种意思:一是值文件大小超过 100MB 及达到 GB 甚至 TB、PB 级的文件;二是百万规模以上的文件数量。3HDFS核心概念3HDFS核心概念1.Namenode2.Namenode容错机制3.Datanode介绍4.Secondary NameNode介绍5.JobTracker介绍6.TaskTracker介绍4HDFS的HA方案4HDFS的HA方案主要是从使用者的角度出发,提高元数据的可靠性,减少NameNode服务恢复时间,措施主要是给元数据做备份,另外HDFS自身就有多种机制来确保元数据的可靠性,减少NameNode服务恢复时间的措施有两种思路:(1)基于NameNode重启恢复模式,对NameNode自身启动过程进行分析,优化加载过程,减少启动时间。(2)启动一个NameNode热备节点,当主节点不能正常提供服务,切换为热节点,切换时间成为恢复时间。4HDFS的HA方案(1)Hadoop元数据备份利用Hadoop自身元数据备份机制,NameNode可以将元数据保存到多个目录,一般是一个本地目录,有个远程目录(通过NFS进行共享),当NameNode发生故障,可以启动备用机器NameNode加载远程目录中的元数据信息提供服务。4HDFS的HA方案(2)Hadoop的SecondaryNameNode方案启动一个SecondaryNameNode节点,定期从元数据信息(fsimage)和元数据操作日志(edits)下载,然后两个文件合并生生成新的镜像文件,推送给NameNode并重置edits,NameNode启动时,只需加载新的fsimage。4HDFS的HA方案(3)Hadoop 的 CheckPoint Node 方案CheckPoint(检查点)原理基本与SecondaryNameNode相同,实现方式不同该方案利用Hadoop 的CheckPoint机制进行备份,配置一个CheckPoint Node节点该节点定期区合并元数据镜像文件和用户操作日志edits,在本地形成最新的CheckPoint并上传到Primary NameNode 进行更新,一旦NameNode宕掉,可以启动备份NameNode节点读取CheckPoint信息,并提供服务。5HDFS的命令行接口5HDFS的命令行接口Hadoop作为一个完整的分布式系统,它有一个抽象的文件系统的概念,而我们介绍的HDFS只是其中的一个实现,一个最常用的实现,实际上还有很多其他的分布式文件系统。Hadoop对文件系统提供了很多接口,一般使用URI(统一资源定位符)来表示选取的文件系统具体是哪一个,比如file:/表示本地文件系统,而hdfs:/表示HDFS,还有其他一些具体的实现,但是不常用到。至此,我们对HDFS的理论技术基础已经基本了解,既然它是一个文件系统,类似于我们日常使用的本地文件系统,我们就可以通过命令行的一些命令来与其进行交互,接下来主要介绍其命令行接口。配置完成后,作为一个文件系统,其主要的操作无非就是:读取文件、新建目录、移动文件、删除数据、列出目录等等,可以使用hadoop fs-help来查看命令帮助。6HDFS常用操作命令6HDFS常用操作命令1.cat命令用法:hadoop fs-cat URI URI。2.chgrp命令用法:hadoop fs-chgrp-R GROUP URIURI。6HDFS常用操作命令3.chmod命令用法:hadoop fs-chmod-RURLURI。4.chown命令用法:hadoop fs-chown-R OWNER:GROUP URI URI。6HDFS常用操作命令5.copyFromLocal命令用法:hadoop fs-copyFromLocalURI。6.cp命令用法:hadoop fs-cp URI URI。6HDFS常用操作命令7.du命令用法:hadoop fs-du URI URI。8.dus命令用法:hadoop fs-dus。6HDFS常用操作命令9.get命令用法:hadoop fs-get-ignorecrc-crc。10.expunge命令用法:hadoop fs-expunge6HDFS常用操作命令11.mv命令用法:hadoop fs-mv URIURI。12.put命令用法:hadoop fs-put。6HDFS常用操作命令13.rm命令用法:hadoop fs-rm URI URI。14.setrep命令用法:hadoop fs-setrep-R。ThankYOU!Java操作HDFS01任务搭建JAVA操作HDFS环境02任务Java操作HDFS单元2.2Java操作HDFS的接口03任务HDFS读写数据原理1HDFS读写数据原理1HDFS读写数据原理HDFS读数据流程客户端将要读取的文件路径发送给namenode,namenode获取文件的元信息(主要是block的存放位置信息)返回给客户端,客户端根据返回的信息找到相应datanode逐个获取文件的block并在客户端本地进行数据追加合并从而获得整个文件。1HDFS读写数据原理HDFS读数据流程1HDFS读写数据原理HDFS写数据流程客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其他datanode复制block的副本。1HDFS读写数据原理HDFS写数据流程2搭建JAVA操作HDFS环境2搭建JAVA操作HDFS环境1.首先我们使用编译器IDLE创建一个maven项目2.maven默认是不支持cdh的仓库的,需要在pom.xml中配置cdh的仓库3.然后还需要到settings.xml文件中,在<mirrorOf>标签中的值配置成*,!cloudera,*,!cloudera表示除了aliyun仓库还使用cloudera仓库4.配置依赖的包3Java操作HDFS的接口3Java操作HDFS的接口搭