ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:90.51KB ,
资源ID:3290105      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3290105.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(小说推荐分布式计算总结史晓慕第一阶段.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

小说推荐分布式计算总结史晓慕第一阶段.docx

1、小说推荐分布式计算总结史晓慕第一阶段小说推荐分布式计算总结目录小说推荐分布式计算总结 1Hadoop 2安装 2下载 2版本(1.0.3) 2简介 2配置文件 2进阶配置 4脚本命令 4进程 5目前系统的配置: 5数据转换 5Hdfs 6Map/Reduce 6Hadoop安装下载http:/hadoop.apache.org/#Download+Hadoop版本(1.0.3) 1.0.X - current stable version, 1.0 release(目前使用) 1.1.X - current beta version, 1.1 release 2.X.X - current a

2、lpha version 0.22.X - does not include security 0.20.203.X - legacy stable version 0.20.X - legacy version简介安装Hadoop集群通常要将安装软件解压到集群内的所有机器上。通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves。我们用HADOOP_HOME指代安装的根路径。通常,集群里的所有机器的HADOOP_HOME路径相同。初始化机器1

3、.所有集群需要建立双向ssh信任连接2.机器名不能包含包含下划线可以用减号配置文件core-site.xmlhdfs-site.xml mapred-site.xml参数 取值 备注fs.default.name NameNode的URI。 hdfs:/主机名/mapred.job.tracker JobTracker的主机(或者IP)和端口。 主机:端口。dfs.name.dir NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。dfs.data.dir DataNode存放块数据的本地

4、文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。mapred.system.dir Map/Reduce框架存储系统文件的HDFS路径。比如/hadoop/mapred/system/。 这个路径是默认文件系统(HDFS)下的路径, 须从服务器和客户端上均可访问。mapred.local.dir 本地文件系统下逗号分割的路径列表,Map/Reduce临时数据存放的地方。 多路径有助于利用磁盘i/o。mapred.tasktracker.map|reduce.tasks.maximum 某一TaskTracker上可运行的最大Map

5、/Reduce任务数,这些任务将同时各自运行。 默认为2(2个map和2个reduce),可依据硬件情况更改。dfs.hosts/dfs.hosts.exclude 许可/拒绝DataNode列表。 如有必要,用这个文件控制许可的datanode列表。mapred.hosts/mapred.hosts.exclude 许可/拒绝TaskTracker列表。 如有必要,用这个文件控制许可的TaskTracker列表。进阶配置dfs.block.size 134217728 针对大文件系统,HDFS的块大小取128MB。dfs.namenode.handler.count 40 启动更多的Name

6、Node服务线程去处理来自大量DataNode的RPC请求。mapred.reduce.parallel.copies 20 reduce启动更多的并行拷贝器以获取大量map的输出。mapred.child.java.opts -Xmx512M 为map/reduce子虚拟机使用更大的堆。fs.inmemory.size.mb 200 为reduce阶段合并map输出所需的内存文件系统分配更多的内存。io.sort.factor 100 文件排序时更多的流将同时被归并。io.sort.mb 200 提高排序时的内存上限。io.file.buffer.size 131072 SequenceFi

7、le中用到的读/写缓存大小。mapred.job.tracker.handler.count 60 启用更多的JobTracker服务线程去处理来自大量TaskTracker的RPC请求。mapred.reduce.parallel.copies 50 tasktracker.http.threads 50 为TaskTracker的Http服务启用更多的工作线程。reduce通过Http服务获取map的中间输出。mapred.child.java.opts -Xmx1024M 使用更大的堆用于maps/reduces的子虚拟机脚本命令/data/hadoop-1.0.3/binhadoop基

8、本命令 hadoop-config.shhadoop-daemon.shhadoop-daemons.shrccslaves.shstart-all.sh开启所有节点start-balancer.shstart-dfs.shstart-jobhistoryserver.shstart-mapred.shstop-all.sh关闭所有节点stop-balancer.shstop-dfs.shstop-jobhistoryserver.shstop-mapred.shtask-controller进程守护进程配置选项NameNodeHADOOP_NAMENODE_OPTSDataNodeHADOO

9、P_DATANODE_OPTSSecondaryNamenode HADOOP_SECONDARYNAMENODE_OPTSJobTrackerHADOOP_JOBTRACKER_OPTSTaskTrackerHADOOP_TASKTRACKER_OPTS目前系统的配置:数据转换1. 拷贝在线集群数据到离线集群.2. 重启离线集群cassandra 加载数据.3. 合并(compact.sh cf_bookcase)4. 转换数据文件为json格式(bin/sstable2json /data/cassandra/cassandra_data/data/keyspace_user_info/c

10、f_bookcase-f-46902-Data.db 212.txt)5. 数据上传hdfs(hadoop fs put 212.txt /user/hadoop/bookmarkAll)HdfsMap/ReduceHadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。一个Map/Reduce 作业(job) 通常会把输入的数据集切分为若干独立的数据块,由 map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序, 然后把结果输入给reduce任务。通常

11、作业的输入和输出都会被存储在文件系统中。 整个框架负责任务的调度和监控,以及重新执行已经失败的任务。通常,Map/Reduce框架和分布式文件系统是运行在一组相同的节点上的,也就是说,计算节点和存储节点通常在一起。这种配置允许框架在那些已经存好数据的节点上高效地调度任务,这可以使整个集群的网络带宽被非常高效地利用。Map/Reduce框架由一个单独的master JobTracker 和每个集群节点一个slave TaskTracker共同组成。master负责调度构成一个作业的所有任务,这些任务分布在不同的slave上,master监控它们的执行,重新执行已经失败的任务。而slave仅负责执

12、行由master指派的任务。应用程序至少应该指明输入/输出的位置(路径),并通过实现合适的接口或抽象类提供map和reduce函数。再加上其他作业的参数,就构成了作业配置(job configuration)。然后,Hadoop的 job client提交作业(jar包/可执行程序等)和配置信息给JobTracker,后者负责分发这些软件和配置信息给slave、调度任务并监控它们的执行,同时提供状态和诊断信息给job-client。JobJobConf代表一个Map/Reduce作业的配置,产出是一个xml.JobConf是用户向Hadoop框架描述一个Map/Reduce作业如何执行的主要接

13、口。框架会按照JobConf描述的信息忠实地去尝试完成这个作业名称类型描述mapred.job.idStringjob idmapred.jarString job目录下job.jar的位置job.local.dirString job指定的共享存储空间mapred.tip.idString task idmapred.task.idString task尝试idmapred.task.is.mapboolean 是否是map taskmapred.task.partitionint task在job中的idmap.input.fileString map读取的文件名map.input.sta

14、rtlong map输入的数据块的起始位置偏移map.input.length long map输入的数据块的字节数mapred.work.output.dirString task临时输出目录MapMapper将输入键值对(key/value pair)映射到一组中间格式的键值对集合。Map是一类将输入记录集转换为中间格式记录集的独立任务。 这种转换的中间格式记录集不需要与输入记录集的类型一致。一个给定的输入键值对可以映射成0个或多个输出键值对。Hadoop Map/Reduce框架为每一个InputSplit产生一个map任务,而每个InputSplit是由该作业的InputFormat产

15、生的。概括地说,对Mapper的实现者需要重写 JobConfigurable.configure(JobConf)方法,这个方法需要传递一个JobConf参数,目的是完成Mapper的初始化工作。然后,框架为这个任务的InputSplit中每个键值对调用一次 map(WritableComparable, Writable, OutputCollector, Reporter)操作。应用程序可以通过重写Closeable.close()方法来执行相应的清理工作。Map的数目通常是由输入数据的大小决定的,一般就是所有输入文件的总块(block)数。ReduceReducer将与一个key关联的

16、一组中间数值集归约(reduce)为一个更小的数值集。Reducer有3个主要阶段:shuffle、sort和reduce。 ShuffleReducer的输入就是Mapper已经排好序的输出。在这个阶段,框架通过HTTP为每个Reducer获得所有Mapper输出中与之相关的分块。Sort这个阶段,框架将按照key的值对Reducer的输入进行分组 (因为不同mapper的输出中可能会有相同的key)。Shuffle和Sort两个阶段是同时进行的;map的输出也是一边被取回一边被合并的。Reduce在这个阶段,框架为已分组的输入数据中的每个 对调用一次 reduce(WritableComp

17、arable, Iterator, OutputCollector, Reporter)方法。Reduce任务的输出通常是通过调用 OutputCollector.collect(WritableComparable, Writable)写入 文件系统的。应用程序可以使用Reporter报告进度,设定应用程序级别的状态消息,更新Counters(计数器),或者仅是表明自己运行正常。Reducer的输出是没有排序的。需要多少个Reduce?Reduce的数目建议是0.95或1.75乘以 ( * mapred.tasktracker.reduce.tasks.maximum)。 用0.95,所有r

18、educe可以在maps一完成时就立刻启动,开始传输map的输出结果。用1.75,速度快的节点可以在完成第一轮reduce任务后,可以开始第二轮,这样可以得到比较好的负载均衡的效果。DistributedCacheDistributedCache 可用于map或reduce task中分发jar包和本地库。子jvm总是把 当前工作目录 加到 java.library.path 和 LD_LIBRARY_PATH。 因此,可以通过 System.loadLibrary或 System.load装载缓存的库。DistributedCache的使用是面向大规模只读数据的。DistributedCac

19、he 可将具体应用相关的、大尺寸的、只读的文件有效地分布放置。 DistributedCache 是Map/Reduce框架提供的功能,能够缓存应用程序所需的文件 (包括文本,档案文件,jar文件等)。 应用程序在JobConf中通过url(hdfs:/)指定需要被缓存的文件。 DistributedCache假定由hdfs:/格式url指定的文件已经在 FileSystem上了。Map-Redcue框架在作业所有任务执行之前会把必要的文件拷贝到slave节点上。 它运行高效是因为每个作业的文件只拷贝一次并且为那些没有文档的slave节点缓存文档。 DistributedCache 根据缓存文

20、档修改的时间戳进行追踪。 在作业执行期间,当前应用程序或者外部程序不能修改缓存文件。 distributedCache可以分发简单的只读数据或文本文件,也可以分发复杂类型的文件例如归档文件和jar文件。归档文件(zip,tar,tgz和tar.gz文件)在slave节点上会被解档(un-archived)。 这些文件可以设置执行权限。书签应用,是把gpv的数据,作为一个基础数据,分发到这个机器,再读出来一个map来实现join案例:小说书签代码权限问题当新建一个文件或目录,它的所有者即客户进程的用户,它的所属组是父目录的组每次用户进程访问一个文件或目录foo,HDFS都要对其进行权限检查, 如

21、果用户即foo的所有者,则检查所有者的访问权限; 如果foo关联的组在组名列表中出现,则检查组用户的访问权限; 否则检查foo其他用户的访问权限。 如果权限检查失败,则客户的操作会失败。 dfs.permissions = false默认目录问题:/user/hadoop(用户名)默认数据路径是相对路径:即在/user/hadoop(用户名) 下输出文件问题输出文件不能过于多,否则会内存溢出.目前输出分自动和手动两个文件.Map无响应检查输入文件的格式,是否毛刺数据过多,过于异常.导致map无响应,内存溢出.Reduce执行过慢加大Reduce的任务个数,这个参数需要灵活调整.Reduce端Join通过DistributedCache加载到本地,形成map 即可,适合只读的小数据集.健壮性: Map/reduce程序要考虑各种异常数据.都要有处理,防止垃圾数据导致程序异常宕机.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2