随笔分类 -  大数据开发-hadoop

摘要:hdfs小文件解决方案总结 小文件的问题弊端 HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空间,另一方面就是索引文件过大使得索引速度变慢。 小文件的解决方案 小文件的 阅读全文
posted @ 2020-08-26 23:34 Whatever_It_Takes 阅读(366) 评论(0) 推荐(0)
摘要:hadoop的企业级调优 HDFS参数调优hdfs-site.xml (1) 设置参数dfs.namenode.handler.count dfs.namenode.handler.count=20 * log2(Cluster Size) //该参数用来调整namenode处理客户端的线程数,根据 阅读全文
posted @ 2020-08-26 23:32 Whatever_It_Takes 阅读(299) 评论(0) 推荐(0)
摘要:yarn的任务调度器 资源调度器是YARN最核心的组件之一,是一个插拔式的服务组件,负责整个集群资源的管理和分配。YARN提供了三种可用的资源调度器:FIFO、Capacity Scheduler、Fair Scheduler。 先进先出调度器(FIFO) FIFO按照先到先得的原则,进行分配资源。 阅读全文
posted @ 2020-08-26 23:30 Whatever_It_Takes 阅读(2040) 评论(0) 推荐(1)
摘要:yarn工作机制 大致过程 MR程序提交到客户端所在的节点。 YarnRunner向ResourceManager申请一个Application。 RM将该应用程序的资源路径返回给YarnRunner。 该程序将运行所需资源提交到HDFS上。 程序资源提交完毕后,申请运行mrAppMaster。 R 阅读全文
posted @ 2020-08-26 23:27 Whatever_It_Takes 阅读(333) 评论(0) 推荐(0)
摘要:yarn介绍 yarn(Yet Another Resource Negotiator)是一个新的资源管理器,hadoop2.0的时候开始引入yarn,引入yarn是为了分离hadoop的资源管理和计算组件。yarn是一个通用的管理框架,在yarn上不仅仅可以运行Mapreduce,还可以支持其它的 阅读全文
posted @ 2020-08-26 23:25 Whatever_It_Takes 阅读(310) 评论(0) 推荐(0)
摘要:Mapreduce当中的join操作 案例需求 订单数据表t_order: id date pid amount 1001 20150710 P0001 2 1002 20150710 P0002 3 1002 20150710 P0003 3 1003 20150812 P0003 1 商品信息表 阅读全文
posted @ 2020-08-26 23:22 Whatever_It_Takes 阅读(352) 评论(0) 推荐(0)
摘要:MapReduce当中的计数器 计数器 计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计。计数器还可辅助诊断系统故障。如果需要将日志信息传输到map 或reduce 任务, 更好的方法通常是看能否用一个计数器值来记录某一特定事件的发生。对于大型分布式作业而言,使用计数器更为方便。除了 阅读全文
posted @ 2020-08-26 23:20 Whatever_It_Takes 阅读(276) 评论(0) 推荐(0)
摘要:shuffle当中的数据压缩 为什么要压缩? 在shuffle阶段,可以看到数据通过大量的拷贝,从map阶段输出的数据,都要通过网络拷贝,发送到reduce阶段,这一过程中,涉及到大量的网络IO,如果数据能够进行压缩,那么数据的发送量就会少得多,而且也不会占用那么多本地磁盘空间。 压缩步骤大致处于m 阅读全文
posted @ 2020-08-26 23:13 Whatever_It_Takes 阅读(289) 评论(0) 推荐(0)
摘要:MapTask工作机制(重点) Read阶段--》Map阶段--》Collect阶段--》spill阶段--》Combine阶段 Read阶段 有个文件hello.txt大小为200M,客户端首先获取待处理文件信息,然后根据参数配置,形成一个任务分配的规划。 再调用submit()方法,把要执行的j 阅读全文
posted @ 2020-08-26 23:10 Whatever_It_Takes 阅读(659) 评论(0) 推荐(0)
摘要:自定义OutputFormat类 思考一个问题:我们前面编程的时候可以发现,一个reducetask默认会把结果输出到一个文件。那如果我们想要让一个reducetask的结果分类输出到不同文件中,要怎么实现,我们可以通过自定义outputformat类来解决。 案例需求 现在有一些订单的评论数据,需 阅读全文
posted @ 2020-08-26 23:06 Whatever_It_Takes 阅读(247) 评论(0) 推荐(0)
摘要:Mapreduce--分区(shuffle) 分区partition 我们来回顾一下mapreduce编程指导思想中的第三个步骤(shuffle阶段的分区): 第三步:对输出的key,value对进行分区:相同key的数据发送到同一个reduce task里面去,相同key合并,value形成一个集 阅读全文
posted @ 2020-08-26 00:00 Whatever_It_Takes 阅读(2733) 评论(0) 推荐(1)
摘要:自定义Inputformat类 mapreduce框架当中已经给我们提供了很多的文件输入类,用于处理文件数据的输入,如果以上提供的文件数据类还不够用的话,我们也可以通过自定义InputFormat来实现文件数据的输入 案例需求 现在有大量的小文件,我们通过自定义InputFormat实现将小文件的内 阅读全文
posted @ 2020-08-25 23:58 Whatever_It_Takes 阅读(321) 评论(0) 推荐(0)
摘要:Inputformat类 InputFormat是mapreduce当中用于处理数据输入的一个组件,是最顶级的一个抽象父类,主要用于解决各个地方的数据源的数据输入问题。其中InputFormat的UML类图可以通过idea进行查看(只有商业版本才有这个功能),如下图。 查看类图的方式:进行要查看的类 阅读全文
posted @ 2020-08-25 23:57 Whatever_It_Takes 阅读(282) 评论(0) 推荐(0)
摘要:Mapreduce编程实现案例2(上下行) Writable是Hadoop的序列化格式,hadoop定义了这样一个Writable接口。 一个类要支持可序列化只需实现这个接口即可。 另外Writable有一个子接口是WritableComparable,writableComparable是既可实现 阅读全文
posted @ 2020-08-25 23:55 Whatever_It_Takes 阅读(415) 评论(0) 推荐(0)
摘要:Mapreduce的运行模式 本地模式 我们的上面的案例1的运行模式就是本地模式,mapreduce程序是被提交给LocalJobRunner在本地以单进程的形式运行,输入和输出路径既可以在本地文件系统,也可以在hdfs上。 本地模式非常便于进行业务逻辑的debug,只要在eclipse或IDEA中 阅读全文
posted @ 2020-08-25 23:53 Whatever_It_Takes 阅读(461) 评论(0) 推荐(0)
摘要:Mapreduce编程实现案例 (wordcount) 案例需求 现有数据格式如下,每一行数据之间都是使用逗号进行分割,求取每个单词出现的次数 hello,hello world,world hadoop,hadoop hello,world hello,flume hadoop,hive hive 阅读全文
posted @ 2020-08-25 23:52 Whatever_It_Takes 阅读(362) 评论(0) 推荐(0)
摘要:mapreduce核心思想 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 MapReduce的核心思想是 阅读全文
posted @ 2020-08-25 23:50 Whatever_It_Takes 阅读(955) 评论(0) 推荐(0)
摘要:Hadoop常用可序列化类型 hadoop没有沿用java当中基本的数据类型,而是自己进行封装了一套数据类型,其自己封装的类型与java的类型对应如下 表4-1 常用的数据类型对应的Hadoop数据序列化类型 Java类型 Hadoop Writable类型 Boolean BooleanWrita 阅读全文
posted @ 2020-08-25 23:49 Whatever_It_Takes 阅读(800) 评论(0) 推荐(0)
摘要:多个集群之间的数据拷贝 在我们实际工作当中,极有可能会遇到将测试集群的数据拷贝到生产环境集群,或者将生产环境集群的数据拷贝到测试集群,那么就需要我们在多个集群之间进行数据的远程拷贝,hadoop自带也有命令可以帮我们实现这个功能 1、本地文件拷贝scp cd /kkb/soft scp -r jdk 阅读全文
posted @ 2020-08-25 23:48 Whatever_It_Takes 阅读(580) 评论(0) 推荐(0)
摘要:小文件治理 思考一个问题:无论存储大文件还是小文件,都会产生元数据,如果有很多小文件,是否划算? 不划算,每个文件、目录、块都大概有150字节的元数据,文件数量的限制也由namenode内存大小决定,如果小文件过多则会造成namenode的压力过大,且HDFS能存储的数据总量也会变小。 小文件治理的 阅读全文
posted @ 2020-08-25 23:47 Whatever_It_Takes 阅读(459) 评论(0) 推荐(0)