Hadoop平台语言模型训练基础.ppt_第1页
Hadoop平台语言模型训练基础.ppt_第2页
Hadoop平台语言模型训练基础.ppt_第3页
Hadoop平台语言模型训练基础.ppt_第4页
Hadoop平台语言模型训练基础.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、Hadoop平台语言模型训练基础,2011-05-06,BA1,BA2,.,BAn,目录,1)云计算平台介绍 2)What Is Hadoop? 3)Hadoop分布式文件系统 4)MapReduce编程模型 5)HBase数据库 6)常用方法 7)关键参数 8)性能调优 9)WordCount| LogAnalysiser| Probalibity,参考定义:云计算(Cloud Computing)是一种商业模型,它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。特点:1)超大规模2)虚拟化3)高可靠性(多副本容错?)4)通用性5)高可扩展性6)按需服

2、务7)廉价按照服务类型分类:SaaS:应用软件封装成服务Salesforce公司的在线客户关系管理CRM(Client Relationship Management)服务PaaS:操作系统Windows Azure、HadoopIaaS:裸机、磁盘亚马逊AWS(Amazon Web Services) 通俗分法:公有云,私有云,混合云。,云计算平台介绍(1),将软件作为服务 SaaS(Software as a Service),将平台作为服务 PaaS(Platform as a Service),将基础设施作为服务 IaaS(Infrastructure as a Service),专用

3、 通用,典型云计算平台的实现机制:用户交互接口向应用提供访问接口,获取用户需求。服务目录是用户可以访问的服务清单。系统管理模块负责管理和分配所有可用的资源,其核心是负载均衡。配置工具负责在分配的节点上准备运行环境。监视统计模块负责监视节点的运行状态,并完成用户使用节点情况的统计。用户通过用户交互接口允许用户从目录中选取并调用一个服务,该请求传递给系统管理模块后,他将为用户分配恰当的资源,然后调用配置工具为用户准备运行环境。,云计算平台介绍(2),The Apache Hadoop project develops open-source software for reliable, scala

4、ble, distributed computing. Hadoop includes these subprojects: Hadoop Common: The common utilities that support the other Hadoop subprojects. HDFS: A distributed file system that provides high throughput access to application data. MapReduce: A software framework for distributed processing of large

5、data sets on compute clusters. HBase: A scalable, distributed database that supports structured data storage for large tables. Hadoop? Highly configurable parallel programming framework User supplies sequential computations on (Key, ) Run-time system handles data partitioning, task scheduling, and S

6、ynchronization Hides messy details of parallelization HDFS是为了达到高数据吞吐量而优化的,这是以延迟为代价的,对于低延迟访问,可以用Hbase。 心跳检测DataNode的健康状况,发现问题就采取数据备份来保证数据的安全性。,What Is Hadoop?,HDFS是一个主从体系。 NameNode:管理系统的元数据;执行文件系统的命名空间操作,比如:打开,关闭,重命名文件或目录,还决定数据到DataNode的映射。 DataNode:存储实际数据;负责处理客户端读写请求,依照NameNode命令,执行数据块的创建、复制、删除等工作。

7、SecondaryNameNode:辅助NameNode处映像文件(FsImage)和事务日志(EditLog),会定期从NameNode上复制映像文件和事务日志到临时目录,合并生成新的映像文件重新上传。,Hadoop分布式文件系统(HDFS),MapReduce 是 Google 公司的核心计算模型,它将复杂的运行于大规模集群上的并行计算过程高度的抽象到了两个函数,Map 和 Reduce。 适合用 MapReduce 来处理的数据集(或任务)有一个基本要求: 待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。 用 MapReduce 来处理大数据集的过程,

8、是将大数据集分解为成百上千的小数据集,每个(some)数据集分别由集群中的一个结点(datanodecore)进行处理并生成中间结果,然后这些中间结果又由大量的结点进行合并, 形成最终结果。,MapReduce编程模型(1),计算模型的核心是 Map 和 Reduce 两个函数,这两个函数由用户负责实现。 功能是按一定的映射规则将输入的 对转换成另一个或一批 对输出。,MapReduce编程模型(2),MapReduce数据处理流程,HDFS、MapReduce、Hbase都是由客户端、从节点和协调主节点组成。 HDFS中的名称节点(NameNode)和数据节点(DataNode);MapRe

9、duce中的jobtracker和tasktracker;Hbase由一个主节点(master)协调一个或多个区域服务器(regionserver)从节点组成。 HBase主节点负责引导初始化安装,分配区域给已注册的区域服务器,恢复区域服务器的故障。 区域服务器负责0到n个区域,响应客户端的读写请求。同时,他们也负责通知HBase主节点,区域要分裂成新的子区域的信息,以便HBase主节点管理父区域的下线及替代子区域的分派。HBase依赖于Zookeeper,且在默认情况下,它使用一个Zookeeper实例为集群状态提供授权。,HBase数据库(1),HBase是一种构建在HDFS之上的分布式、

10、面向列(列族:family)的存储系统。 逻辑模型: Hbase在表格里存储数据,是按照行进行存储的,每一行都有一个可排序的主键 和任意多的列,由于是稀疏存储的,所以同一张表里的每一行数据都可以是截然不同的列。 列的格式是列族:列名(:),每一个列族可以包含许多列。 下表共有一行,行标识是:rk1。每一次逻辑修改都会有一个TimeStamp关联对应,所有数据库的更新都有一个时间戳标记,每个更新都是一个新的版本,Hbase会保留一定数量的版本,我们一般获取距离目前时间最近的版本。,HBase数据库(2),物理模型: Hbase存储是按照列族进行存储的。物理模型的实质是将逻辑模型一个Row分割成为

11、根据Column family存储,Hbase把同一个family里的数据存储在同一个目录底下。 我们保存hbase数据是按照Row进行put的,获取的时候可以通过get获取该row的所有数据,也可以通过scan 列族获取该列族所有的数据。 Hbase获取和保存数据可以嵌套到具体的MapReduce过程当中,整个Hbase配置集成在Hadoop的配置上,通过zookeeper进行集群。,HBase数据库(3),第一,串联;就是把原本独立的MapReduce过程链接在一起执行,把前一个过程的Reduce输出作为后一个过程的map输入。 WordCount.countingJob(conf, in

12、, temp); WordCount.sorttingJob(conf, temp, out); 第二,冗余;冗余就是通过牺牲一定的hdfs的空间,来实现一些比较复杂的计算功能。(语言模型概率计算) 为了实现上面的语言模型概率计算功能,我们就需要对一些word 的counts 进行拆分。 如:我们 都 住 在 合肥 8 - 我们 都 住 在 t 合肥 t 8 我们 都 住 在 20 这样,key= 我们 都 住 在; value值 list 就在同一个reduce的 key 值中出现,我们就可以计算了。 为了实现语言模型重新分块,我们需要保证同一个计算过程的概率P 和 BackOff 值在同一

13、个分块中。 如:P(abcde)= P(bcde)+B(abcd) = P(cde)+B(bcd)+B(abcd); 我们必须保证P(cde)、B(bcd)、B(abcd) 在同一个分块中,才可以进行计算。这就需要我们在实现的过程中进行冗余拆分。,常用方法(1),第三,加载;就是在MapReduce过程中,需要获得额外的数据支持的时候,就需要进行数据加载。比如加载词典文件,或从hbase中读取词典。 加载文件的方式和java里是不一样的,要加载hdfs文件管理系统的中的文件,在map或reduce过程中,可以在setup( )方法 或者 cleanup( ) 方法中进行加载,这和在map或者r

14、educe过程中加载是有区别的。 /* Called once at the beginning of the task.*/ protected void setup(Context context ) throws IOException, InterruptedException / NOTHING /* Called once at the end of the task. */ protected void cleanup(Context context ) throws IOException, InterruptedException / NOTHING ,常用方法(2),第四,

15、分块;主要根据hashcode值进行分块; 也可以根据设定的index值进行分块。(需要把相关值在map过程中传过来,因为在Partitioner过程中,读取相关的index值需要耗费很大资源,一般可以在后面加个特殊的符号加索引,如:word:1804,然后再实现的过程中解析出所需要的index值)。 或者指定分块,满足某种条件可以指定分块。 第五,格式;Hadoop平台只支持UTF-8编码。 如果输入数据非UTF-8格式编码,需要在map输入,处理数据之前,进行转码。 如果输出非UTF-8格式的内容,需要在reduce输出的时候进行转码。 现在主要进行GBK 和 UTF-8格式之间的转码。,

16、常用方法(3),core-site.xml - namenode的配置,机器名加端口 hadoop.tmp.dir - Hadoop的默认临时路径 fs.checkpoint.dir -配置第二名称节点检测点 erval -设置回收站保留时间 hdfs-site.xml .dir - NameNode持久存储名字空间及事务日志的本地文件系统路径 dfs.data.dir - DataNode存放块数据的本地文件系统路径,逗号分割的列表 dfs.replication -表示每个块在HDFS中的副本个数(默认为3个) dfs

17、.http.address - NameNode HTTP状态监视地址 dfs.block.size - Blocksize(64M) mapred-site.xml mapred.local.dir mapred.job.tracker- JobTracker的主机(或者IP)和端口 mapred.tasktracker.map.tasks.maximum mapred.tasktracker.reduce.tasks.maximum mapred.child.java.opts - jvm虚拟机设置,关键参数,Steps: (1)Changing number of Map and Red

18、uce tasks Number of Map Tasks: Determined by Number of “Input Splits” Typically Input Split corresponds to HDFS Block Can be changed with mapred.min.split.size“ Large Number of Maps: More Parallelism; Low task re-execution penalty; computation-communication overlap; More scheduling overhead. Number

19、of Reduce Tasks User-Specfied: mapred.reduce.tasks (Default: 1) 95% of available reduce slots; 1-2 GB per reduce task; Reserve capacity for task re-execution Number of data transfers: (#Maps X #Reduces) -Consider connection overhead #map:#reduce #Time(s) 5900:800 1419 5900:380 1197 5900:200 1255,性能调

20、优,Steps: (2) Decrease Intermediate data size using combiner Map Output (Often the same as Reduce computation) #map:#reduce #Time(s) Without Combiner: 5900:380 1197 With Combiner: 5900:380 934 (3)Increase Slots per node Can be set up at tasktracker startup mapred.tasktracker.map.tasks.maximum mapred.tasktracker.reduce.tasks.maximum Oversubscribe CPUs for I/O bound workloads Caveat: Consider resources consumed by local daemons (tasktracker & datanode),性能调优,Steps: (4)Avoid Disk Spills Map O

温馨提示

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

评论

0/150

提交评论