珠海网站建设报价,哪些企业需要网站建设,青岛市最大的网络公司是哪里,网站建设制作定制大数据-学习实践-5企业级解决方案
(大数据系列) 文章目录大数据-学习实践-5企业级解决方案1知识点2具体内容2.1小文件问题2.1.1 SequenceFile2.1.2 MapFile2.1.3 小文件存储计算2.2数据倾斜2.3 YARN2.3.1 YARN架构2.3.2 YARN调度器2.3.2 YARN多资源队列配置和使用2.4Hadoop官方…大数据-学习实践-5企业级解决方案
(大数据系列)
文章目录大数据-学习实践-5企业级解决方案1知识点2具体内容2.1小文件问题2.1.1 SequenceFile2.1.2 MapFile2.1.3 小文件存储计算2.2数据倾斜2.3 YARN2.3.1 YARN架构2.3.2 YARN调度器2.3.2 YARN多资源队列配置和使用2.4Hadoop官方文档2.5总结3待补充4QA5code6参考1知识点
小文件问题小文件存储计算数据倾斜YARNHadoop官方
2具体内容
2.1小文件问题
MapReduce框架针对大数据文件设计小文件处理效率低下消耗内存资源
每个小文件在NameNode都会占用150字节的内存每个小文件都是一个block一个block产生一个inputsplit产生一个Map任务同时启动多个map任务消耗性能影响MapReduce执行效率
2.1.1 SequenceFile
SequenceFile是二进制文件直接将k,v对序列化到文件对小文件进行文件合并文件名为k文件内容为v序列化到大文件但需要合并文件的过程文件大且合并后的文件不便查看需要遍历查看每个小文件读、写试验SequenceFile在hdfs上合并为一个文件
2.1.2 MapFile
排序后的MapFile包括index和dataindex为文件的数据索引记录每个record的key值并保存该record在文件中的偏移位访问MapFile时索引文件被加载到内存通过索引映射关系快速定位到指定Record所在文件位置相对SequenceFile而言MapFile的检索效率是高效的缺点是会消耗一部分内存来存储index数据MapFile在hdfs上包括2个文件index和data
2.1.3 小文件存储计算
使用SequenceFile实现小文件存储计算
java开发生成SequenceFile人工将一堆小文件处理成一个较大文件进行MapReduce计算开发MapReduce借助底层读取Sequencefile进行分布式计算
2.2数据倾斜
一般不对Map任务进行改动但为了提高效率可增加Reduce任务需要对数据分区job.getPartitionerClass()实现分区当MapReduce程序执行时大部分Reduce节点执行完毕但有一个或几个Reduce节点运行很慢导致整个程序处理时间变长表现为Reduce节点卡着不动 倾斜不严重可增加Reduce任务个数
job.setNumReduceTasks(Integer.parseInt(args[2]));倾斜严重要把倾斜数据打散抽样确定哪一类打散
String key words[0];
if (5.equals(key)) {//把倾斜的key打散分成10份key 5 _ random.nextInt(10);
}2.3 YARN
2.3.1 YARN架构
集群资源的管理和调度支持主从架构主节点最多2个从节点可多个ResourceManager主节点负责集群资源分配和管理NodeManager从节点负责当前机器资源管理YARN主要管理内存和CPU两种资源NodeManager启动向ResourceManager注册注册信息包含该节点可分配的CPU和内存总量默认单节点yarn-site.xml文件中设置 yarn.nodemanager.resourece.memory-mb单节点可分配物理内存总量默认8Mb*1024,8Gyarn.nodemanager.resource.cpu-vcores单节点可分配的虚拟CPU个数默认是8
2.3.2 YARN调度器
FIFO Scheduler 先进先出Capacity Scheduler FIFO Scheduler 多队列版本常用Fair Scheduler 多队列多用户共享资源
2.3.2 YARN多资源队列配置和使用
增加online队列和offline队列 修改 capacity-scheduler.xml 文件并同步其他节点
propertynameyarn.scheduler.capacity.root.queues/namevaluedefault,online,offline/valuedescriptionThe queues at the this level (root is the root queue)./description
/property
propertynameyarn.scheduler.capacity.root.default.capacity/namevalue70/valuedescriptionDefault queue target capacity./description
/property
propertynameyarn.scheduler.capacity.root.online.capacity/namevalue10/valuedescriptionOnline queue target capacity./description
/property
propertynameyarn.scheduler.capacity.root.offline.capacity/namevalue20/valuedescriptionOffline queue target capacity./description
/property
propertynameyarn.scheduler.capacity.root.default.maximum-capacity/namevalue70/valuedescriptionThe maximum capacity of the default queue./description
/property
propertynameyarn.scheduler.capacity.root.online.maximum-capacity/namevalue10/valuedescriptionThe maximum capacity of the online queue./description
/property
propertynameyarn.scheduler.capacity.root.offline.maximum-capacity/namevalue20/valuedescriptionThe maximum capacity of the offline queue./description
/property- 重新启动stop-all.sh
start-all.sh向offline队列提交MR任务 online队列里面运行实时任务offline队列里面运行离线任务
#解析命令行通过-D传递参数添加至conf也可修改java程序解析各参数
String[] remainingArgs new GenericOptionsParser(conf,args).getRemainingArgs();
Job job Job.getInstance(conf);
job.setJarByClass(WordCountJobQueue.class);#必须有否则集群执行时找不到wordCountJob这个类#重新编译上传执行
hadoop jar db_hadoop-1.0-SNAPSHOT-jar-with-dependencies.jar com.imooc.mr.WordCountJobQueue -Dmapreduce.job.queueoffline /test/hello.txt /outqueue2.4Hadoop官方文档
官方文档在CDH中的使用在HDP中的使用 -1080端口 Ambari组件提供web界面
2.5总结
MapReduce 原理计算过程执行步骤wordcount案例日志查看开启YARN日志聚合启动historyServer进程程序扩展去掉ReduceShuffle过程 序列化 Writable实现类特点 源码分析 InputFormatOutputFormat 性能优化 小文件数据倾斜 YARN 资源管理内存CPU调度器常用CapacityScheduler
3待补充
无
4QA
无
5code
无
6参考
大数据课程资料