Hadoop大数据开发基础课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx
《Hadoop大数据开发基础课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx》由会员分享,可在线阅读,更多相关《Hadoop大数据开发基础课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx(393页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Hadoop大数据开发基础初识Hadoop及HDFS分布式系统课程目标Hadoop的宏观介绍了解Hadoop生态系统掌握HDFS分布式文件系统的基本使用搭建Hadoop伪分布式文件系统课程任务完成Hadoop伪分布式文件系统的搭建HDFS Shell命令操作Java API 访问 HDFS目录CONTENTS1初识Hadoop2HDFS分布式文件系统介绍3Hadoop伪分布环境搭建4HDFS常用命令和应用01初识Hadoop1.1 大数据概述定义:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合1.1 大数据概述特征:海量的数据规模快速的数据流转多样的数据
2、类型价值密度低1.1 大数据概述结构:大数据包括以下三种形式的数据:结构化:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。半结构化:非关系模型的、有基本固定结构模式的数据,例如日志文件、XML文档、JSON文档、Email等。非结构化数据:没有固定模式的数据,如WORD、PDF、PPT、EXL,各种格式的图片、视频等。1.2 大数据技术数据采集1.2 大数据技术大数据存储和管理利用分布式文件系统、数据仓库、关系数据库、NoSQL数据库、云数据库等,实现对结构化、半结构化和非结构化海量数据的存储和管理分布式文件系统NoSQL
3、数据库关系数据库数据仓库结构化数据半结构化数据非结构化数据对象存储1.2 大数据技术大数据处理与分析利用分布式并行编程模型和计算框架,结合机器学习和数据挖掘算法,实现对海量数据的处理和分析;对分析结果进行可视化呈现,帮助人们更好地理解数据、分析数据机器学习数据挖掘算法批量计算数据流计算内存计算查询计算海量数据1.3 Hadoop是什么HadoopApache开源软件基金会开发运行在大规模普通服务器上用于大数据存储、计算、分析分布式存储系统和分布式运算框架Hadoop主要有三个核心模块组成 分布式文件系统HDFS分布式运算框架MR资源管理器YARN1.4 Hadoop的起源和发展Hadoop最早
4、起源于NutchNutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题如何解决数十亿网页的存储和索引问题谷歌发表的两篇论文为该问题提供了可行的解决方案分布式文件系统(GFS),可用于处理海量网页的存储分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期1.5 Hadoop的生态系统狭义上来说,Hadoop就是单独指代
5、Hadoop这个软件广义上来说,Hadoop指代大数据的一个生态圈,包括很多其他的软件1.6 Hadoop的意义Hadoop的意义可以利用低成本有效缩短数据的处理时间在大数据中发掘商业价值用Hadoop可以快速搭建自己的分布式存储系统用Hadoop可以快速搭建自己的分布式运算系统具体应用Facebook支付宝历史账单(HBase)Twitter处理tweets,日志等信息(Hadoop)Amazon处理交易记录,推荐系统(Hadoop)Apple siri 处理问答信息(HBase)02HDFS分布式文件系统介绍2.1 分布式文件系统分布式文件系统是基于Master/Slave模式,通常一个分
6、布式文件系统提供多个供用户访问的服务器分布式文件系统一般都会提供备份和容错的功能分布式文件系统一般都会基于操作系统的本地文件系统分布式文件系统管理的物理资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连2.2 分布式文件系统传统文件系统最大的问题是容量和吞吐量的限制多用户多应用的并行读写是分布式文件系统产生的根源扩充存储空间的成本低廉可提供冗余备份可以为分布式计算提供基础2.3 什么是HDFSHDFSHadoop Distributed File SystemHDFS是一个使用Java实现的、分布式的、可横向扩展的文件系统2.4 HDFS设计目标自动快速检测应对硬件错误支持大数据集(
7、大文件)存储移动计算比移动数据本身更划算简单一致性模型2.5 HDFS的架构HDFS的架构2.6 HDFS的核心概念Block(块)NameNodeDataNode元数据SecondaryNameNode2.6.1 Block的概念文件被切分成固定大小的数据块默认数据块大小为128MB(hadoop2.x)若文件大小不到128MB,则单独存成一个block 一个文件存储方式按大小被切分成若干个block,存储到不同节点上 默认情况下每个block都有三个副本(平等)2.6.2 NameNodeNameNode是用来管理文件系统命名空间的组件流式访问数据NameNode上存放了HDFS的元数据元
8、数据保存在NameNode的内存中,以便快速查询2.6.3 NameNode元数据持久化元数据有两个重要文件fsimage:元数据镜像文件(保存文件系统的目录树)edits:元数据操作日志(针对目录树的修改操作)fsimage和edits存储位置 内存中保存一份最新的=fsimage+edits由dfs.namenode.name.dir属性描述,可以是一组目录合并fsimage与editsEdits文件过大将导致NameNode重启速度慢2.6.4 SecondaryNameNode(SNN)SNN的主要工作是帮助NN合并edits,减少NN启动时间SNN执行合并时机根据配置文件设置的时间间
9、隔fs.checkpoint.period 默认3600秒 根据配置文件设置edits log大小 fs.checkpoint.size 规定edits文件的最大值默认是64MB2.6.5 SNN合并流程SNN合并流程2.6.6 DataNode块缓存对于频繁访问的文件,其对应的块可以显示缓存到datanode的内存中 Block大小和副本数通过Client端上传文件时设置2.6.7 Block的副本放置策略第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点第二个副本:放置在于第一个副本不同的 机架的节点上第三个副本:与第二个副本相同机架的节点更多
10、副本:随机节点RackARackB2.7 HDFS写流程HDFS写流程2.8 HDFS读文件HDFS读文件03Hadoop伪分式环境搭建3.1 Hadoop安装的三种模式单机模式:本地文件系统伪分布式模式:用多个线程模拟多台机器,模拟真实的分布式环境完全分布式模式:用多台机器(或启动多个虚拟机)来完成部署集群3.2 搭建准备工作安装JDK修改主机名配置/etc/hosts 文件安装SSH免密通道配置HADOOP_HOME环境变量3.3 Hadoop相关配置配置 etc/hadoop-env.sh配置 etc/hadoop/core-site.xml配置 etc/hadoop/hdfs-site
11、.xml配置 etc/hadoop/slaves3.4 启动Hadoop格式化文件系统 启动NameNode和DataNode后台进程访问NameNode的web管理页面3.5Hadoop伪分布式系统搭建练习操作系统要求使用CentOS7或Ubuntu16.04Hadoop的安装版本为2.x现场练习时间:时间:4545分钟分钟04HDFS常用命令和应用4.1 HDFS命令行基本操作 创建目录查看目录下文件上传文件下载文件删除文件和目录4.2 HDFS Java API的核心类和接口 Configuration类封装了客户端、服务器的配置Path类文件路径的封装FileSystem该类的对象是一
12、个文件系统对象,可用于对文件进行操作FSDataInputStream HDFS中的输入流,通过FileSystem的open方法获得FSDataOutputStreamHDFS中的输出流,通过FileSystem的create方法获得4.3 基于Java API编程实例创建目录递归显示文件文件上传 文件下载4.4 HDFS操作及编程练习在Linux下使用hdfs dfs脚本完成HDFS的基本文件操作H使用IDEA开发工具,调用Hadoop提供的JAVA API完成对HDFS的基本文件操作(创建目录、递归显示文件、上传文件、下载文件)现场练习时间:时间:4545分钟分钟课程总结了解了大数据的概
13、念以及什么是大数据技术;了解了Hadoop技术的起源、发展以及目前的生态;学习了HDFS的核心概念和原理掌握了Hadoop伪分布模式的搭建;能使用Shell和JavaAPI对HDFS文件系统进行基本的操作;课程作业课下作业用Java API编写一个程序,实现在HDFS上创建一个demo.txt,并向文件中写入“Hello Hadoop!“预习作业了解Zookeeper 的使用了解HDFS高可用的机制成 为 一 流 的 双 创 实 践 性 教 学 资 源 服 务 提 供 商!以 双 创 实 践 性 人 才 培 养 为 己 任,助 力 国 家 产 业 转 型 升 级!Hadoop大数据开发基础分布
14、式协调服务ZooKeeper和HDFS高可用性课程回顾及作业点评检查Java API基于HDFS四个案例的完成情况预习检查ZooKeeper是什么?ZooKeeper能解决大数据应用中哪些问题?课程目标掌握ZooKeeper基本概念掌握ZooKeeper安装搭建过程熟练使用ZooKeeper服务端和客户端常用命令熟练使用Java API访问ZooKeeper掌握使用Java API编写基于ZooKeeper的应用程序了解ZooKeeper内部原理了解什么是高可用掌握HDFS缓存技术的使用掌握HDFS完全分布式搭建了解HDFS高可用架构掌握HDFS高可用搭建课程任务完成ZooKeeper集群的搭
15、建完成ZooKeeper服务端和客户端常用命令的练习完成Java API访问 ZooKeeper的练习完成Java API基于ZooKeeper的应用程序的开发完成HDFS缓存应用案例的练习完成HDFS完全分布式的搭建完成HDFS高可用架构的搭建目录CONTENTS1234ZK作用和基本概念ZK集群搭建和使用ZK操作和API编程ZK原理分析5678高可用介绍HDFS缓存HDFS完全分布式搭建HDFS高可用架构搭建01ZK作用和基本概念1.1 分布式应用概述分布式应用:应用程序分布在不同计算机上,通过网络来共同完成一项任务。通常为服务器/客户端模式。1.2 分布式应用的优缺点优点:可靠性可扩展性
16、缺点:竞争条件死锁不一致1.3 ZooKeeper 是什么概念:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop生态的重要组件。它是一个为分布式应用提供一致性服务的软件。特点:简单的分布式协调过程具有高可用性顺序一致性高性能1.4 ZooKeeper 的主要应用ZooKeeper的主要应用分布式锁集群管理配置管理命名服务1.5 ZooKeeper的架构组件件描述描述Client(客户端)客户端,向服务器发送服务请求。Server(服务器)服务器,为客户端提供所有的服务。EnsembleZooKeeper服务器组。形成
17、ensemble所需的最小节点数为3。Leader负责响应所有对ZooKeeper状态变更的请求Follower响应本服务器上的读请求外,follower还要处理leader的提议。ZooKeeper的架构1.6 数据模型和层次命名空间数据模型和层次命名空间1.7 Znode的类型持久节点即使在创建该特定znode的客户端断开连接后,持久节点仍然存在。临时节点客户端活跃时,临时节点就是有效的。当客户端与ZooKeeper集合断开连接时,临时节点会自动删除。临时节点不允许有子节点顺序节点顺序节点可以是持久的或临时的。当一个新的znode被创建为一个顺序节点时,ZooKeeper通过将10位的序列
18、号附加到原始名称来设置znode的路径。02ZK集群搭建2.1 安装步骤安装步骤创建并配置zoo.cfg文件创建并配置my.id文件03ZK操作和API编程3.1 服务端常用命令启动ZooKeeper服务zkServer.sh start查看ZooKeeper 服务状态zkServer.sh status停止ZooKeeper 服务zkServer.sh stop重启ZooKeeper服务zkServer.sh restart3.2 客户端连接Zookeeper的相关操作connect命令与 ls命令create命令创建节点get命令获取数据与信息set命令修改节点内容delete命令删除节点
19、3.3 使用Java API访问ZooKeeperZooKeeper API的核心部分是ZooKeeper类connect-连接到ZooKeeper集合create-创建znodeexists-检查znode是否存在及其信息getData-从特定的znode获取数据setData-在特定的znode中设置数据getChildren-获取特定znode中的所有子节点delete-删除特定的znode及其所有子项close-关闭连接3.6 ZooKeeper集群搭建及命令练习使用三台虚机或者云服务器完成ZooKeeper集群搭建在搭建好的集群上进行服务端和客户端命令的练习现场练习时间:时间:454
20、5分钟分钟3.4 使用Java API编程入门案例项目环境搭建创建ZooKeeper客户端创建子节点获取子节点并监听判断znoe节点是否存在设置和获取数据获得子节点列表删除节点现场编程演示案例:入门案例演示案例:入门案例编程编程3.5 使用Java API编程官方案例解读演示案例:监听器案例演示案例:监听器案例编程编程现场编程使用Java API编程官方案例解读3.6 Java API编程练习使用Java API完成ZK的连接及CRUD操作使用Java API完成官网监听器案例的编写练习现场练习时间:时间:9090分钟分钟04ZK原理分析4.1 一致性协议Zab协议什么是Zab协议?Zab协议
21、的作用Zab协议核心原理4.1.1 什么是ZAB协议Zab 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)定义:Zab 协议是为分布式协调服务 Zookeeper 专门设计的一种支持 崩溃恢复 和 原子广播 协议4.1.2 Zab协议的作用使用一个单一的主进程(Leader)来接收并处理客户端的事务请求(也就是写请求),并采用了Zab的原子广播协议,将服务器数据的状态变更以 事务proposal(事务提议)的形式广播到所有的副本(Follower)进程上去。保证一个全局的变更序列被顺序引用。当主进程出现异常的时候,整个zk集群依旧能正常工作。
22、4.1.3 Zab协议核心原理Zab协议核心原理4.2 leader选举相关概念Zookeeper节点状态事务IDleader选举时机4.2.1 leader选举Zookeeper节点状态LOOKING:寻找Leader状态,处于该状态需要进入选举流程LEADING:领导者状态,处于该状态的节点说明是角色已经是LeaderFOLLOWING:跟随者状态,表示Leader已经选举出来,当前节点角色是followerOBSERVER:观察者状态,表明当前节点角色是observer4.2.2 leader选举事务IDZooKeeper状态的每次变化都接收一个ZXID(ZooKeeper事务id)形式
23、的标记。ZXID是一个64位的数字,由Leader统一分配,全局唯一,不断递增。ZXID展示了所有的ZooKeeper的变更顺序。每次变更会有一个唯一的zxid,如果zxid1小于zxid2说明zxid1在zxid2之前发生。4.2.3 集群初始化启动时Leader选举集群初始化启动时Leader选举4.2.4 集群运行期间Leader重新选举集群运行期间Leader重新选举05高可用介绍5.1 计算机系统的高可用什么是高可用通常是指,通过设计减少系统不能提供服务的时间假设系统一直能够提供服务,我们说系统的可用性是100%如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统
24、的可用性是99%很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时如何保障系统的高可用:通过冗余+自动故障转移来保证系统的高可用特性06HDFS缓存6.1 HDFS缓存应用案例缓存管理命令hdfs cacheadminhdfs cacheadmin-addPool 缓存池名称hdfs cacheadmin-addDirective-path 文件路径-pool 缓存池名称hdfs cacheadmin-listDirectives-pool 缓存池名称-stats 通过执行下载文件程序体验应用缓存前后的性能现场编程演示案例:演示案例:HDFSHDFS
25、缓存应用缓存应用编程编程07HDFS完全分布式搭建7.1 完全分布式搭建步骤修改每台机器主机名(hostname)修改每台机器/etc/hosts文件配置ssh,实现无密码登录修改hadoop-env.sh和yarn-env.sh文件配置core-site.xml配置hdfs-site.xml配置mapred-site.xml配置yarn-site.xml配置slaves文件7.2 HDFS完全分布式搭建练习基于三台虚机或云服务器完成搭建Hadoop的安装版本为2.x现场练习时间:时间:4545分钟分钟08HDFS高可用架构搭建8.1 HDFS的基本架构HDFS的基本架构8.2 HDFS高可用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop 数据 开发 基础 课件 汇总 电子 教案 全套 完整版 ppt 最新 教学 教程
限制150内