logo资料库

hadoop讲义.docx

第1页 / 共184页
第2页 / 共184页
第3页 / 共184页
第4页 / 共184页
第5页 / 共184页
第6页 / 共184页
第7页 / 共184页
第8页 / 共184页
资料共184页,剩余部分请下载后查看
1Zebra项目存在的问题
1.1文件存储方式的缺点
1.2计算的缺点
2Hadoop介绍
2.1Hadoop创始人
2.2Hadoop起源
2.3大数据的特点
2.4大数据带来的变化
3Hadoop版本介绍和安装
3.1下载
3.2Apache Hadoop版本
3.3安装
3.3.1安装方式介绍
3.3.2伪分布式安装
3.3.3通过浏览器查看管理hadoop
4HDFS的特点
4.1HDFS概述(HDFS架构图):
4.2HDFS优点
4.3HDFS缺点
5HDFS细节说明
5.1Block块概念
5.2NameNode!!!
5.3SecondaryNameNode
5.4DataNode
5.5Block副本放置策略:
6HDFS指令
7HDFS执行流程-day02
7.1HDFS写流程
7.2HDFS读流程图
7.3HDFS的删除流程
7.4安全模式
8HDFS FileSystem JavaAPI
8.1FileSystem流程分析
8.1.1FileSystem读流程分析
8.1.2FileSystem写流程分析
8.2代码实现
8.2.1导入jar包
8.2.2代码开发
8.3Eclipse中Hadoop插件的使用
8.4 插件使用常见问题解决办法
9MapReduce
9.1概述
9.2MapReduce框架的节点组成结构
9.3Map、Reduce的执行步骤
10MapReduce实现单单词统计(WordCount)
10.1案例分析
10.2案例编码实现
10.3通过插件实现WordCount
11常见问题
11.1NullPointerException
11.2控制台无日志输出
11.3Map/Reducelocation status updater".java.lang.NullP
12MR内部执行流程day03
12.1Hadoop1.x的MR执行流程(课后阅读)
12.2Hadoop2.x的MR执行流程
13MR的序列化机制
13.1序列化机制
13.2案例: 统计流量
13.2.1版本一:不使用自定义对象
13.2.2版本二:使用自定义类的对象
14Partitioner -- 分区
14.1分区原理
14.2案例:改造如上统计流量案例,根据不同地区分区存放数据
15sort 排序
15.1原理分析
15.2案例:计算每个人总收益(收入-成本),并按照收益进行排序(文件:profit.txt)
16Combiner -- 合并
16.1合并原理
16.2案例:改造WordCount增加Combiner提高效率
17Shuffle!!!
18Mapper数量
19案例:求最大/小值day04
19.1求文件中数据的最大值/最小值
19.2课后练习:求温度最大值和最小值
20案例:统计考试成绩-按月份产生文件,统计每个人的语数外及总分
20.1案列说明:
20.2代码实现
21案例:zebra实现
22利用sqoop工具导出处理结果到关系型数据库中
23课堂练习day05
23.1课后练习:求平均值
23.1.1案例分析
23.1.2代码实现
23.2案例数据去重
23.2.1数据文件
23.2.2代码实现
24InputFormat
24.1InputFormat概述
24.2常见的InputFormat:
24.3自定义InputFormat
24.4案例1:读取score1.txt文件,从中每4行读取成绩,其中第一行为姓名,后3行为单科成绩,计算总
24.5MultipleInputs
24.6案例2:改造案例1,同时从另一个文件score2.txt中读取数据统计成绩。score2.txt中的
25OutputFormat
25.1常见的OutputFormat:
25.2自定义OutputFormat
25.3案例3:升级wordcount案例,并将输出按照key~value#key1~value1…进行分割
25.3.1原始默认输出版
25.3.2按照指定格式输出版
25.4MultipleOutputs
25.4.1API介绍
25.4.2案例4:改造案例3,将首字母为a-j的输出到"small"中。其他输出到"big"中
25.4.3案例5:升级案例4
26分组GroupingComparator
26.1概述
26.2案例6:改造WordCount案例,实现统计a-n 和 o-z开头的单词数量统计
27Reduce端排序SortComparator
28综合案例7:二次排序
28.1需求描述
28.2方案一
28.3方案二
28.4方案三
29小文件处理
29.1小文件的定义
29.2大量小文件在HDFS中的问题
29.3大量小文件在mapreduce中的问题
29.3.1方法一HadoopJVM重用(课后阅读)
29.3.1.1 Hadoop1.0JVM重用及调优
29.3.1.2Hadoop2.0JVM重用及调优
29.3.2方法二将多个小文件合成一个spilt,即用一个map任务来处理(课后阅读)
30Hadoop常见参数控制+调优策略
31Hadoop2.0 HDFS高可用架构
31.1集群实现思路
31.2集群环境准备
31.3Hadoop集群环境预搭建步骤
31.4具体安装配置步骤:
31.4.1集群节点分配
31.4.2具体安装步骤
31.4.2.1克隆六台虚拟机(jdk,lrzsz),配置固定ip,xshell配置对应的连接
31.4.2.2永久关闭每台机器的防火墙
31.4.2.3为每台机器配置主机名以及hosts文件
31.4.2.4为每天机器配置ssh免秘钥登录
31.4.2.5前三台机器安装和配置zookeeper
31.4.2.6安装和配置01节点的hadoop
31.4.3 测试
31.4.4插件:
1 Zebra 项目存在的问题 1.1 文件存储方式的缺点 1、一个文件如果特别大,这样会造成存储的问题。一台机器的磁盘 也不可能存储特别大的文件 2、该文件在查询、删除、修改的时候都会存在问题 3、如果文件太多,管理起来特别不方便 4、如果一个文件破坏了,那么将会造成文件的丢失,因为没有重用 的文件 1.2 计算的缺点 1 / 184
1、一级引擎在每台机器上都有计算程序,如果一个特别大的文件 被 3M 的标准划分,这样可以分出很多个块。块越多,计算起 来时间越多 2、一级引擎的作用是把磁盘中的很多文件变成一个一个对象,然 后二级引擎通过 RPC 的方式从一级引擎中传输数据。这样会 造成大量的数据在网络上传输。因为一级引擎并没有把数据变 小 3、把所有的数据从一级引擎传递到了二级引擎,把对象存储到了 Map 中,Map>。二级引擎中合并 的操作 4、如果一级引擎的数据很多,那么一台机器中的内存中是放不下 的。内存占据越大,越容易特别慢。 2 Hadoop 介绍 2.1 Hadoop 创始人 Doug Cutting,斯坦福大学毕业的。 Cutting 是 Lucence,nutch,hadoop 的创始人。 2 / 184
2.2 Hadoop 起源 2004 年,开发一款搜索引擎,nutch。nutch 基于 Lucence 实现的搜索 引擎,能够从互联网上抓取网页数据。抓取来的海量数据的存储问题。但是, 这些海量数据都是非结构化数据,不能存在关系型数据库里。如果连数据的 存储和管理都解决不了的话,就谈不上后续为用户提供搜索服务,包括通过 算法去优化检索速度。 正好那时候,Google 发表了两篇论文《Google File System》《Google MapReduce》 《Google File System》简称 GFS,是 Google 公司用于解决海量数据 存储的文件系统。 《Google MapReduce》简称 MapReduce,是 Google 的计算框架,基于 GFS。 Google BigTable HBase 2006 年 cutting 根 据 《Google File System 》 设 计 了 Nutch 的 HDFS,hadoop distributed file system。 Hadoop 最开始是 nutch 的子项目,目的是解决 nutch 的海量数据存储问 题。在 nutch 0.8 版本之后,Hadoop 独立出来,成为一个独立的项目。 后来,又根据《Google MapReduce》设计了基于 HDFS 的 MapRedce 计 算框架。 2006 年之后,cutting 带着 Hadoop 去了雅虎,当时有 100 多人的团队 共同帮 cutting 完善 hadoop。后来 yahoo 把 Hadoop 贡献了 Apache。 所以,现在 Hadoop 是 Apache 的顶级项目。 3 / 184
2.3 大数据的特点 1.TB,PB 级别的数据 2.非结构化数据 3.快速增长,每天都会有大量数据产生。 2.4 大数据带来的变化 1.大数据没有产生之前,数据分析,主要要依靠比较精良的算法。算法越 严密,结果越精确。但是有了大数据之后,当数据量达到一定规模的时候, 数据本身就可以说话了。所以就不需要太依靠算法去分析结果。 2.当数据量达到一定程度后,不需要考虑因果关系,就能得到结果。 所以,大数据是一种新的生产力。 4 / 184
3 Hadoop 版本介绍和安装 3.1 下载 下载地址:http://hadoop.apache.org/releases.html 3.2 Apache Hadoop 版本 版本 发布日期 压缩包 签名 验证 SHA Apache Hadoop 版本分为三代, Hadoop 1.0,Hadoop 2.0。第三代 (alpha 测试版) 第一代 Hadoop 包含三个大版本,分别是 0.20.x,0.21.x 和 0.22.x, 其中,0.20.x 最后演化成 1.0.x,变成了稳定版,而 0.21.x 和 0.22.x 则 NameNode HA 等新的重大特性。第二代 Hadoop 包含两个版本,分别 是 0.23.x 和 2.x,它们完全不同于 Hadoop 1.0,是一套全新的架构, 均包含 HDFS Federation 和 YARN 两个系统,NameNode HA 和 Wire-vi 两个重大特性 5 / 184
Hadoop1.0 版本两个核心:HDFS+MapReduce Hadoop2.0 版本,引入了 Yarn(Yet Another Resource Negotiator)。核心: HDFS+Yarn+Mapreduce Yarn 是资源调度框架。能够细粒度的管理和调度任务。此外,还能够支 持其他的计算框架,比如 spark 等。 3.3 安装 3.3.1安装方式介绍 Hadoop 的安装分为单机方式、伪分布式方式 和 完全分布式方式。 单机模式是 Hadoop 的默认模式。当首次解压 Hadoop 的源码包时, Hadoop 无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模 式下所有 3 个 XML 文件均为空。当配置文件为空时,Hadoop 会完全运行 在本地。因为不需要与其他节点交互,单机模式就不使用 HDFS,也不加载 任何 Hadoop 的守护进程。该模式主要用于开发调试 MapReduce 程序的应 用逻辑。 伪分布模式 Hadoop 守护进程运行在本地机器上,模拟一个小规模的 的集群。可以使用 HDFS 和 MapReduce 全分布模式 Hadoop 守护进程运行在一个集群上 6 / 184
3.3.2伪分布式安装 单机的伪分布式模式 搭建步骤: 1.准备虚拟机,最低的工作内存 1G,通过 xshell 来管理 2.关闭防火墙 3.配置主机名 4.配置 hosts 文件 5.配置免密码登录 6.安装和配置 jdk 7.上传和安装 hadoop 8.配置 hadoop 配置文件 具体搭建步骤: 0.关闭防火墙 执行:service iptables stop 这个指令关闭完防火墙后,如果重启, 防火墙会重新建立,所以,如果想重启后防火墙还关闭, 需额外执行:chkconfig iptables off 1.配置主机名 执行:vim /etc/sysconfig/network 7 / 184
编辑主机名 注意:主机名里不能有下划线,或者特殊字符 #$,不然会找不到主机导致 无法启动 这种方式更改主机名需要重启才能永久生效,因为主机名属于内核参数。 如果不想重启,可以执行:hostname hadoop01。但是这种更改是临时 的,重启后会恢复原主机名。 所以可以结合使用。先修改配置文件,然后执行:hostname hadoop01 。 可以达到不重启或重启都是主机名都是同一个的目的 2.配置 hosts 文件 执行:vim /etc/hosts 3.配置免密码登录 在 hadoop01 节点执行: 8 / 184
分享到:
收藏