《hadoop培训》PPT课件
合集下载
Hadoop技术介绍ppt课件
课件部分内容来源于网络,如有异 议侵权的话可以联系删除,可编辑 版!
18
课件部分内容来源于网络,如有异 议侵权的话可以联系删除,可编辑 版!
19
课件部分内容来源于网络,如有异 议侵权的话可以联系删除,可编辑 版!
12
目录
Hadoop是什么 Hadoop是如何运作的
Hadoop能做什么
大数据时代三架马车
课件部分内容来源于网络,如有异 议侵权的话可以联系删除,可编辑 版!
13
Hive/Pig 数据仓库工具 HBase 列式数据库 Hadoop 数据底层 ETL Pig BI Report RDBMS Hive
集群拓扑结构 8
数据存取策略
HDFS上的最小数据单元为Block。原始文件被分成1个或者多个Block,默认 Block大小为64M,默认存储3份Block。 由NameNode决定三份Block分别存放在哪些DataNode上。根据散列算法出第一份 数据的存放节点,在同一机架(Rack)中的另一个DataNode保存第二份数据,在不同 机架的另一个DataNode保存第三份数据。NameNode记录了数据的所有位置信息。 客户端对数据的存取都是直接与DataNode之间进行数据传输,NameNode向客户端 反馈数据的位置信息和数据节点的信息。
大数据时代三架马车
课件部分内容来源于网络,如有异 议侵权的话可以联系删除,可编辑 版!
5
MapReduce
化大为小
化繁为简
开发方式 实现map函数 实现reduce函数
课件部分内容来源于网络,如有异 议侵权的话可以联系删除,可编辑 版!
6
统计词频
方法一 写一个小程序遍历整个文件,统计每一个遇到的词的出现次数。 方法二 写一个多线程并发遍历整个文件。
Hadoop基础知识培训课件
12
1 HDFS简
介
HDFS(HADOOP DISTRIBUTED FILE SYSTEM),是一个分布式文件系统。它 是谷歌的GFS提出之后出现的一种用户级文件系统。有一定的容错性, 能提供高吞吐量的数据访问,适合大规模数据集上的应用。
HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案
把信息化打造成为中国电信企业核心竞争力之一
PPT学习交流
企业信息化部
16
3 HDFS 之漫画读写
把信息化打造成为中国电信企业核心竞争力之一
PPT学习交流
企业信息化部
17
3 HDFS 之漫画读写
把信息化打造成为中国电信企业核心竞争力之一
PPT学习交流
企业信息化部
18
4 HDFS 之漫画容错
PPT学习交流
企业信息化部
5
HADOOP生态系统
y经过几年的快速发展,Hadoop现在已经发展成为包含多个相关项目的软件生 态系统,成为大数据处理技术的事实标准,目前典型的Hadoop生态系统如下所 示:
把信息化打造成为中国电信企业核心竞争力之一
PPT学习交流
企业信息化部
6
HADOOP生态系统
·发展目标
(1)实时应用场景(0~5s):Storm、S4等;
(2)交互式场景(5s~1m):这种场景通常能要求必须支持SQL,则可行系统有: Cloudera Impala、Apache Drill、Shark等;
(3)非交互式场景(1m~1h):通常运行时间较长,处理数据量较大,对容错性和扩 展 性要求较高,可行系统有:MapReduce、Hive、Pig、Stinger等;
简介: 江西电信Hadoop批 处理平 台共由62台PC服务器 构成, 形成物理上独立的3个 RACK ,按照功能角色分组,主控 节点、数据节点、Hive接入 节点、元数据节点、监控告 警节点和ETL节点。 主控节点 6台 (2台Namenode、1台 Jobtracker、3台 Zookeeper)
1 HDFS简
介
HDFS(HADOOP DISTRIBUTED FILE SYSTEM),是一个分布式文件系统。它 是谷歌的GFS提出之后出现的一种用户级文件系统。有一定的容错性, 能提供高吞吐量的数据访问,适合大规模数据集上的应用。
HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案
把信息化打造成为中国电信企业核心竞争力之一
PPT学习交流
企业信息化部
16
3 HDFS 之漫画读写
把信息化打造成为中国电信企业核心竞争力之一
PPT学习交流
企业信息化部
17
3 HDFS 之漫画读写
把信息化打造成为中国电信企业核心竞争力之一
PPT学习交流
企业信息化部
18
4 HDFS 之漫画容错
PPT学习交流
企业信息化部
5
HADOOP生态系统
y经过几年的快速发展,Hadoop现在已经发展成为包含多个相关项目的软件生 态系统,成为大数据处理技术的事实标准,目前典型的Hadoop生态系统如下所 示:
把信息化打造成为中国电信企业核心竞争力之一
PPT学习交流
企业信息化部
6
HADOOP生态系统
·发展目标
(1)实时应用场景(0~5s):Storm、S4等;
(2)交互式场景(5s~1m):这种场景通常能要求必须支持SQL,则可行系统有: Cloudera Impala、Apache Drill、Shark等;
(3)非交互式场景(1m~1h):通常运行时间较长,处理数据量较大,对容错性和扩 展 性要求较高,可行系统有:MapReduce、Hive、Pig、Stinger等;
简介: 江西电信Hadoop批 处理平 台共由62台PC服务器 构成, 形成物理上独立的3个 RACK ,按照功能角色分组,主控 节点、数据节点、Hive接入 节点、元数据节点、监控告 警节点和ETL节点。 主控节点 6台 (2台Namenode、1台 Jobtracker、3台 Zookeeper)
【PPT培训课件】hadoop生态圈
zookeeper
概 念
iSend
iReceive iSend iReceive
Zookeeper典型应用-工作过程
Zookeeper
架构
工作原理:Paxos算法
z3 z1
架 构
z2
iSend
iReceive
Zookeeper
实例
cSlave0 cSlave1 cSlave2
部 署
yum install zookeeper-server
cMaster
cSlave0
现 实 需 求 2006年谷歌发表论文BigTable, 年末、微软旗下自然语言搜索 公司Powerset出于处理大数据 的需求,按论文思想,开启了 HBase项目 在 线 访 问 在线 实时 服务
例 题
cMaster
cSlave0
cSlave2
iClient
cProxy
cSlave1
Zookeeper
为什么
部 分 失 败 现 实 需 求
zookeeper
当一条消息在网络中的两个节点之间传送时,由于可能会出现各 种问题,发送者无法知道接收者是否已经接收到这条消息,比如 在接收者还未接收到消息前,发生网络中断,再比如接收者接收 到消息后发生网络中断,甚至是接收进程死掉。发送者能够获取 真实情况的唯一途径是重新连接接收者,并向它发出询问。
例 题
①分别使用命令行接口和API接口向zookeeper存储树中新建一 节点并存入信息 ②假设机器cSlave0上有进程Pa,机器cSlave2上有进程Pb,使 用zookeeper实现进程Pa与Pb相互协作
HBase
为什么
cSlave2
客户欲实 时读HDFS 里数据
hadoop入门介绍PPT学习课件
8
Hadoop如何满足新需求
满足高可扩展性 -Hadoop把一个大作业分解为多个相对小的任务, 分配给 多个节点处理,通过增加节点来线性的提高系统的负载容量 ; -MapReduce的各个任务之间不需要通信(Shared nothing 架构 ),对于大作业增加处理任务的节点可以线性 的提高作业的作业处理速度。
30
Thank You
31
17
分布式存储系统HDFS
18
分布式存储系统HDFS
Hdfs文件写入
19
分布式存储系统HDFS
Hdfs文件读取
HDFS客户端
1 打开 3 读取
客户端JVM
6 关闭
分布式计算
FSData InputStream
4 读取
2 获取数据块的位置
名称节点 NameNode
5 读取
数据节点 DataNode
9
Hadoop如何满足新需求
满足数据一致性、组件可恢复性等容错需求 -如果一个节点出现了故障,master会检测到故障并把 工作重新分配到系统中别的节点上,重启任务不需要与 负责处理其他部分数据的节点进行交互; -如果故障的节点重启并修复了故障,它会自动加回系 统中并被分配给新任务; -如果一个节点出现了对任务处理慢的状况,master 会 在另一个节点上为同一个任务启动另一个执行实例,先 完成的哪个实例的结果被使用。
负责集群资源的统一管理和调度
分布式计算框架MapReduce
具有易于编程、高容错性和高扩展性等优点
13
分布式存储系统HDFS
HDFS特点 :
良好的扩展性 高容错性 适合PB级以上海量数据的存储
基本原理:
将文件切分成等大的数据块,存储到多台机器上 将数据切分、容错、负载均衡等功能透明化 可将HDFS看成一个容量巨大、具有高容错性的磁盘
Hadoop如何满足新需求
满足高可扩展性 -Hadoop把一个大作业分解为多个相对小的任务, 分配给 多个节点处理,通过增加节点来线性的提高系统的负载容量 ; -MapReduce的各个任务之间不需要通信(Shared nothing 架构 ),对于大作业增加处理任务的节点可以线性 的提高作业的作业处理速度。
30
Thank You
31
17
分布式存储系统HDFS
18
分布式存储系统HDFS
Hdfs文件写入
19
分布式存储系统HDFS
Hdfs文件读取
HDFS客户端
1 打开 3 读取
客户端JVM
6 关闭
分布式计算
FSData InputStream
4 读取
2 获取数据块的位置
名称节点 NameNode
5 读取
数据节点 DataNode
9
Hadoop如何满足新需求
满足数据一致性、组件可恢复性等容错需求 -如果一个节点出现了故障,master会检测到故障并把 工作重新分配到系统中别的节点上,重启任务不需要与 负责处理其他部分数据的节点进行交互; -如果故障的节点重启并修复了故障,它会自动加回系 统中并被分配给新任务; -如果一个节点出现了对任务处理慢的状况,master 会 在另一个节点上为同一个任务启动另一个执行实例,先 完成的哪个实例的结果被使用。
负责集群资源的统一管理和调度
分布式计算框架MapReduce
具有易于编程、高容错性和高扩展性等优点
13
分布式存储系统HDFS
HDFS特点 :
良好的扩展性 高容错性 适合PB级以上海量数据的存储
基本原理:
将文件切分成等大的数据块,存储到多台机器上 将数据切分、容错、负载均衡等功能透明化 可将HDFS看成一个容量巨大、具有高容错性的磁盘
《hadoop基础》课件——第三章 Hadoop集群的搭建及配置
19
Hadoop集群—文件监控
http://master:50070
20
Hadoop集群—文件监控
http://master:50070
21
Hadoop集群—文件监控
http://master:50070
22
Hadoop集群—任务监控
http://master:8088
23
Hadoop集群—日志监控
http://master:19888
24
Hadoop集群—问题 1.集群节点相关服务没有启动?
1. 检查对应机器防火墙状态; 2. 检查对应机器的时间是否与主节点同步;
25
Hadoop集群—问题
2.集群状态不一致,clusterID不一致? 1. 删除/data.dir配置的目录; 2. 重新执行hadoop格式化;
准备工作:
1.Linux操作系统搭建完好。 2.PC机、服务器、环境正常。 3.搭建Hadoop需要的软件包(hadoop-2.7.6、jdk1.8.0_171)。 4.搭建三台虚拟机。(master、node1、node2)
存储采用分布式文件系统 HDFS,而且,HDFS的名称 节点和数据节点位于不同机 器上。
2、vim编辑core-site.xml,修改以下配置: <property>
<name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/soft/hadoop-2.7.6/tmp</value> </property> <property> <name>fs.trash.interval</name> <value>1440</value> </property>
Hadoop及Mapreduce入门 PPT课件
• Yahoo!: 4000 nodes (2*4cpu boxes w 4*1TB disk & 16GB RAM)
• More on /hadoop/PoweredBy
Goals of HDFS
• 大数据集存储 – 10K nodes, 100 million files, 10 PB
}
/** * Called once at the end of the task. */
protected void cleanup(Context context) throws IOException, InterruptedException {}
}
Job Setup
public static void main(String[] args) throws Exception { String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); if (otherArgs.length != 2) { System.err.println("Usage: wordcount <in> <out>"); System.exit(2); } Job job = new Job(new Configuration(), "word count"); job.setJarByClass(WordCount.class);
• Meta-data记录了 – 文件列表信息 – 每个文件的块列表 – 每个块对应的DataNode – 文件属性,如创建时间、创建者、几份副本等
• Transaction Log (EditLog ) –记录了文件系统的每个变化,如创建文件、删除文件、修改文 件的副本数等 – EditLog会被合并为FsImage并存入磁盘
Hadoop基础知识培训 ppt课件
适合海量的,但是同时也是简单的操作,具备低延时的数 据返回,比如说key-value的操作,是生产环境对外访问可 行的方式
海量数据存储的驱使,具备动态扩展系统容量的需求
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 35
Hadoop常用组件——Hive简介
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一 张数据库表,并提供完整的类sql查询功能,可以将类sql语句转换为 MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速 实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数 据仓库的统计分析。
ppt课件
企业信息化部 31
HBase 简介(续)
• 大:一个表可以有上亿行,上百万列
• 面向列:面向列(族)的存储和权限控制, 列(族)独立检索
• 稀疏:对于为空的列,并不占用存储空 间,因此,表可以设计的非常稀疏
• 多版本:每条记录中的数据可以有多个 版本
• 无类型:存在HBase中的数据都是字符 串,无其他类型
ppt课件
企业信息化部 16
3 HDFS 之漫画读写
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 17
3 HDFS 之漫画读写
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 18
4 HDFS 之漫画容错
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 19
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 33
2 HBase 体系结构
海量数据存储的驱使,具备动态扩展系统容量的需求
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 35
Hadoop常用组件——Hive简介
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一 张数据库表,并提供完整的类sql查询功能,可以将类sql语句转换为 MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速 实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数 据仓库的统计分析。
ppt课件
企业信息化部 31
HBase 简介(续)
• 大:一个表可以有上亿行,上百万列
• 面向列:面向列(族)的存储和权限控制, 列(族)独立检索
• 稀疏:对于为空的列,并不占用存储空 间,因此,表可以设计的非常稀疏
• 多版本:每条记录中的数据可以有多个 版本
• 无类型:存在HBase中的数据都是字符 串,无其他类型
ppt课件
企业信息化部 16
3 HDFS 之漫画读写
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 17
3 HDFS 之漫画读写
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 18
4 HDFS 之漫画容错
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 19
把信息化打造成为中国电信企业核心竞争力之一
ppt课件
企业信息化部 33
2 HBase 体系结构
《hadoop培训》课件
Hadoop的数据类型和处理模型
总结词
介绍Hadoop支持的数据类型和处理模型,如 MapReduce、Hive、Pig等。
详细描述
Hadoop支持多种数据类型和处理模型,其中最核心的 是MapReduce。MapReduce是一种编程模型,用于处 理大规模数据集。它可以将数据集拆分成多个小数据集 ,并在多个节点上并行处理,最后将结果汇总得到最终 结果。除了MapReduce外,Hadoop还支持其他数据处 理工具,如Hive、Pig等。这些工具提供了更高级别的抽 象,使得用户可以更加方便地进行数据分析和处理。
案例三:推荐系统实现
数据来源
用户行为数据、物品属性数据等 。
数据处理
使用Hadoop的MapReduce框架 对数据进行处理,提取用户和物 品的特征,生成分析所需的数据 集。
分析方法
利用机器学习、深度学习等技术 ,构建推荐算法模型,如协同过 滤、基于内容的推荐等。
总结词
通过Hadoop处理大规模用户数 据和物品数据,构建推荐算法模 型,实现个性化推荐。
应用场景
根据分析结果,优化系统性能、加强安全 防护、提高系统的可用性和安全性。
数据来源
各类服务器、网络设备、应用系统的日志 数据。
分析方法
利用日志分析技术,监控系统的性能指标 、安全事件等,及时发现和解决潜在的问 题。
数据处理
使用Hadoop的MapReduce框架对日志 数据进行处理,提取关键信息,生成分析 所需的数据集。
置等。
Hadoop文件系统(HDFS)
要分布式文件系统(HDFS)的特点、架构 和操作方式。
Hadoop分布式文件系统(HDFS)是Hadoop的核心组件 之一,它为Hadoop提供了大容量数据的存储和处理能力 。HDFS采用主从架构,由一个NameNode和多个 DataNode组成。NameNode负责管理文件系统的元数据 ,而DataNode负责存储实际的数据。在操作方式上, HDFS提供了基于命令行的接口和编程接口(如Java API) ,方便用户进行数据存储、访问和管理。
hadoop入门基础PPT课件
Pig
Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布 式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。
7
Zookeeper
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系 统的可靠协调系统,提供的功能包括:配置维护、名字服务、分 布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的 关键服务,将简单易用的接口和性能高效、功能稳定的系统提供 给用户。 Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的 协同工作系统,Zookeeper能够用来leader选举,配置信息维护等, 在一个分布式的环境中,需要一个Master实例或存储一些配置信息, 确保文件写入的一致性等. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务, 包含一个简单的原语集,是Hadoop和Hbase的重要组件。
8
HBase
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储 系统”。就像Bigtable利用了Google文件系统(File System)所提供的 分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能 力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系 数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的 是HBase基于列的而不是基于行的模式。
大数据之Hadoop入门基础
1
大数据 Hadoop Hadoop生态圈 Hadoop版本 HBase Hadoop商业应用案例(淘宝技术架构)
Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布 式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。
7
Zookeeper
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系 统的可靠协调系统,提供的功能包括:配置维护、名字服务、分 布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的 关键服务,将简单易用的接口和性能高效、功能稳定的系统提供 给用户。 Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的 协同工作系统,Zookeeper能够用来leader选举,配置信息维护等, 在一个分布式的环境中,需要一个Master实例或存储一些配置信息, 确保文件写入的一致性等. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务, 包含一个简单的原语集,是Hadoop和Hbase的重要组件。
8
HBase
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储 系统”。就像Bigtable利用了Google文件系统(File System)所提供的 分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能 力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系 数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的 是HBase基于列的而不是基于行的模式。
大数据之Hadoop入门基础
1
大数据 Hadoop Hadoop生态圈 Hadoop版本 HBase Hadoop商业应用案例(淘宝技术架构)
hadoop入门基础PPT课件
MapReduce
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行 运算。概念“Map(映射)”和“Reduce(归约)”,和它们的主要思想, 都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。 它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的 程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射) 函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce (归约)函数,用来保证所有映射的键值对中的每一个共享相同的键 组。
8
HBase
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储 系统”。就像Bigtable利用了Google文件系统(File System)所提供的 分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能 力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系 数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的 是HBase基于列的而不是基于行的模式。
5
MapReduce
<k1,value1> <k1,value1> <k1,value1> <k1,value1>
Mapper Mapper Mapper Mapper
<k2,value2> <k2,value2> <k2,value2> <k2,value2>
Reducer Reducer
Result
9
Hadoop 1.0
Zooke Hbase eper
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行 运算。概念“Map(映射)”和“Reduce(归约)”,和它们的主要思想, 都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。 它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的 程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射) 函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce (归约)函数,用来保证所有映射的键值对中的每一个共享相同的键 组。
8
HBase
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储 系统”。就像Bigtable利用了Google文件系统(File System)所提供的 分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能 力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系 数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的 是HBase基于列的而不是基于行的模式。
5
MapReduce
<k1,value1> <k1,value1> <k1,value1> <k1,value1>
Mapper Mapper Mapper Mapper
<k2,value2> <k2,value2> <k2,value2> <k2,value2>
Reducer Reducer
Result
9
Hadoop 1.0
Zooke Hbase eper
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Blocksize指数据尾 加上数据尾部之后 补齐的长度,多用 于64M边界处的数据 段,大于或等于 Datasize
Data/Tails
Garbage data
垃圾数据,用于补齐 数据到64M边界用。 以保证每一个分块被 map读取时都能读到 完整的data。在非 64M边界处,该段长 度为0,否则为恰好 补齐64M的长度
Page 13
Streaming编程框架
自定义Streaming支持的文件内数据结构
Datasize 指 本数据的数 据尾总长 度,(不包括 头部)
One data One data One data One … data … … … … … … … … … … … … One data
16bit uuid/date Key/Head 4bit Datasize Sdata 4bit Blocksize Sblock 231bit the rest of head data
Page 16
Байду номын сангаас
Streaming编程框架
子程序的调试方法
数据的准备,可使用fetchdata_hdp.jar工具从hdfs上下载到文件中 的一块作为调试程序的输入文件分块 调试环境的准备,将提交任务时的命令行作为调试命令行,提交 任务时上传的文件作为资源文件放在执行目录下 IDE的选择: linux下使用gdb或者codelite windows下使用visual studio,调试过程和普通的C++/C程序一致
提交任务过程:用户与JobTracker交互,提交任务资源和配置 运行任务过程:JobTracker将队列中的tasks按调度算法分配给各 tasktracker的空闲槽,tasktracker随后就运行之并监视汇报tasks 的运行情况。
Page 8
hadoop任务运行原理--通过hadoop编程接口提交任务
这个程序其实和普通的java程序没有区别,其实现了 mapper,reducer接口,并通过main函数加载配置和参数, 上传jar,提交任务并监控运行情况
Page 9
hadoop编程接口,hadoop任务运行原理
以一个任务的提交为例:WordCount.jar 其main函数如下,其中就包含了提交任务的流程:
Streaming工具的调试方法
在本地使用eclipse即可像调试java程序一样调试Streaming工具
除非要改写得到自己的partitioner,否则不要修改Streaming工具
Page 17
编写Streaming框架下程序时的常见问题
1.为什么包含了相应的库,但是编译的时候显示undefined function xxxxxxx? 答:有可能是因为你呃库为C语言,这时候cpp程序包含的C头文件需要加上extern “C” 比如 exter “C”{ #include “MapInput.h” } 2.在一个库A依赖另一个库B的函数c时,我先后链接了两个库A,B,为什么仍然有库A中引用的函数显示undefined function c? 答:在可执行程序中没有直接引用c时,链接程序先引用A时不会提取出c备用,所以在链接到B库时,其中引用的c符号就找不到了。 这个时候需要先链接B库再链接A库。 3.为什么Streaming启动后无缘无故报错,提示IOException … Array Out of Bound等错误? 答:这时很可能是由于输入的打包文件的64M边界处没有处理好,需要检查打包程序。 在linux下可以通过如下步骤检查: split –b64m file.pak #这时文件夹中会有xaa xab等一大堆文件,每个文件都是从file.pak中解散出来的64M分块 #这时只需要检查xab、xac、xad等的开头是否完整的数据条目即可。 4.如何使用带动态链接库的程序? 答:我们的修改版Streaming程序中默认将当前执行目录下的bin文件夹加入了LD_LIBRARY_PATH环境变量中了。这样在执行这样的Streaming任务时就可以通过 – cacheArchive参数将所有动态链接库打包成的tar包下载到每台机器上并解压到当前目录的bin目录下即可。但是由于-cacheArchive使用的是软链接方式创建的bin目录,所以 不能将动态链接库文件分散放在多个tar下,这样会引起冲突。 5.为什么程序持续出现timeout 600现象导致task被kill? 答:导致这个问题的有两种原因: 1.tasktracker所在机器繁忙,这个的解决需要酌情减少tasktracker上的map和reduce槽数。 2.子程序有bug,刘丹目前碰到了这个问题,他的程序中有部分析构代码进入了死循环,所以其程序无法自行了结导致了tasktracker一直在忙等。 6.关于strtok的常见错误? 答:strtok不能嵌套使用,比如line=strtok(B,”xx”) 然后word = strtok(line,”a”)后又想通过line=strtok(NULL,”xx”)得到B之后的line是行不通的。 strtok中的参数不能使用静态字符串。比如不能用line=strtok(“abcd abdc”,” “) 7.关于RecordReader256报错,wrong data,什么原因? 答:原因可能是由于打包数据的程序处理不当导致打包成的文件的块交接处出错。或者由于上传的数据不完整导致最后数据没有完全读入。
Streaming编程框架 任务的调试和查错
Page 2
hadoop的软件结构和安装方法
软件结构(我们目前主要使用的)
DFS模块,包含了 Namenode, Secondary Namenode, Datanode等模 块,这些模块分别会运行在 主节点和从节点上,通过 http协议进行交互
Blocksize指数据尾 加上数据尾部之后 补齐的长度,多用 于64M边界处的数据 段,大于或等于 Datasize size :S Tail 1 第一个尾 数据
Data/Tails
Tail 2 ... Garbage data
垃圾数据,用于补齐 数据到64M边界用。 以保证每一个分块被 map读取时都能读到 完整的data。在非 64M边界处,该段长 度为0,否则为恰好 补齐64M的长度
jar : 读取配置运行java程序
Streaming.jar myjob.jar wordcount.jar ...
???admin:管理和查看hadoop上的详细状态
...
...
Page 7
hadoop任务运行原理
hadoop任务(Job)由多个子任务(Task)组成,tasks 由以下两部分
Page 4
hadoop的接口
通过接口了解hadoop内部的情况
web接口 部分命令行接口
通过接口控制hadoop的运行和态
web接口(需开启配置中web控制选项) 命令行接口
通过接口提交任务
命令行接口结合编程接口
Page 5
hadoop的web接口
hdfs,默认用浏览器访问namenode节点的50070端口即 可
Page 11
Streaming编程框架
Streaming? Streaming也就是一个java编写的任务提交工具
Streaming自己实现的mapper
Streaming自己的reducer 输入输出接口
额外的针对子进程的输入输出接口 针对输入输出文件的输入输出接口
public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); //读取默认的配置文件 String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); // 通用参数解析 if (otherArgs.length != 2) { System.err.println("Usage: wordcount <in> <out>"); System.exit(2); } Job job = new Job(conf, "word count"); //新建任务对象 job.setJarByClass(WordCount.class);//主类 job.setMapperClass(TokenizerMapper.class);//mapper job.setCombinerClass(IntSumReducer.class);//作业合成类 job.setReducerClass(IntSumReducer.class);//reducer job.setOutputKeyClass(Text.class);//设置作业输出数据的关键类 job.setOutputValueClass(IntWritable.class);//设置作业输出值类 FileInputFormat.addInputPath(job, new Path(otherArgs[0]));//文件输入 FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));//文件输出 System.exit(job.waitForCompletion(true) ? 0 : 1);//提交任务,等待完成退出. }
以一个任务的提交为例:WordCount.jar 其代码结构如下:
public class WordCount{ public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{} public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> {} public static void main(String[] args){} }