02 2020 档案
摘要:1.reduce连接实现目标 气象站数据集,气象站id和名称数据表 StationId StationName 1~hangzhou 2~shanghai 3~beijing 温度记录数据集 StationId TimeStamp Temperature 3~20200216~6 3~2020021
阅读全文
摘要:1.hadoop TextPair组合键定义 package Temperature; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.WritableComparable; import java.io.DataInput
阅读全文
摘要:1.问题描述 使用hadoop 的reduce端排序,用MultipleInputs 输入两个文件夹下不同格式的文件,使用两个mapper解析,hadoop版本2.8.3. 3 hadoop 3.2.1也报同样的错误。 java.lang.Exception: java.lang.ClassCast
阅读全文
摘要:1.1.1 map端连接-CompositeInputFormat连接类 (1)使用CompositeInputFormat连接类需要满足三个条件: 1)两个数据集都是大的数据集,不能用缓存文件的方式。 2)数据集都是按照相同的键进行排序; 3)数据集有相同的分区数,同一个键的所有记录在同一个分区中
阅读全文
摘要:1.问题描述:在调试mapreduce辅助排序(二次排序)的过程中,运行程序总是报错 Ignoring exception during close for org.apache.hadoop.mapred.MapTask$NewOutputCollector@1398c56java.lang.Nu
阅读全文
摘要:1.1.1 reduce端连接-分区分组聚合 reduce端连接则是利用了reduce的分区功能将stationid相同的分到同一个分区,在利用reduce的分组聚合功能,将同一个stationid的气象站数据和温度记录数据分为一组,reduce函数读取分组后的第一个记录(就是气象站的名称)与其他记
阅读全文
摘要:1.1.1 map端连接- DistributedCache分布式缓存小数据集 当一个数据集非常小时,可以将小数据集发送到每个节点,节点缓存到内存中,这个数据集称为边数据。用map函数将小数据集中的数据按键聚合到大的数据集中,输出连接数据集,进行连接操作。 (1) 分布式缓存指定缓存文件 执行命令行
阅读全文
摘要:采样分组 为了实现输出的全局排序,可以对温度数据进行分组处理,实现多个reduce处理,组间有序,组内有序,从而实现全局有序。而如何分组才能保证每个reduce分到的数据差不多,这样作业中的任务执行时间也差不多。例如将处理温度数据,要求温度按顺序输出。分成4组个分组,<-10℃,-10℃~0℃, 0
阅读全文
摘要:任务的默认排序 MapTask和ReduceTask都会默认对数据按照key进行排序,不管逻辑上是否需要。默认是按照字典顺序排序,且实现该排序的方法是快速排序。但是map和reduce任务只能保证单个任务内部输出有序,不能保证所有输出全局有序。 MapTask,当环形缓冲区使用率到达一定阈值后进行一
阅读全文
摘要:1.1.1 全排序 (1)全排序概述 指的是让所有的输出结果都是有序的,最简单的方法就是用一个reduce任务,但是这样处理大型文件时效率极低,失去的并行架构的意义。所以可以采用分组排序的方法来实现全局排序,例如现在要实现按键的全局的排序,可以将键值按照取值范围分为n个分组,<-10℃,-10℃~0
阅读全文
摘要:1.1.1 辅助排序(二次排序) (1)二次排序定义 通常情况下我们只对键进行排序,例如(年份,温度)组成的键值对,我们通常只对key年份进行排序,如果先按照年份排好序,还要求年份相同的再按照温度进行进行逆序排列,像这样先按照第一字段进行排序,然后再对第一字段相同的行按照第二字段排序,我们称为二次排
阅读全文
摘要:1.1 计数器 计数器的作用是用来统计数量的,用于记录特定事件的次数,分为内置计数器、自定义java枚举计数器、自定义Stream计数器三大类。用于质量分析,或应用级统计。分析计数器的值比分析一堆日志更高效。 计数器名称 计数器介绍 内置计数器 Hadoop自带的计数器,有特定的计数器名称。例如统计
阅读全文
摘要:1.1 输出格式 1.1.1 TextOutputFormat文本输出 默认输出格式,键值通toString()转为文本,Tab键分隔,属性mapreduce.putput. textoutputformat.separator属性设置分隔符。 1.1.2 二进制输出 (1) SequenceFil
阅读全文
摘要:top 显示CPU占用情况,查找进程PID号 top -H -p 进程号PID 查看异常线程lwd strace 线程id 显示线程的信息 gdb attach 1162 自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bcls
阅读全文
摘要:如果不希望文件被切分,例如判断文件中记录是否有序,可以让minimumSize值大于最大文件的大小,但是文件的大小不能超过blockSize,或者重写FileInputFormat方法isSplitable()返回为false。下面介绍将多个小文件合成一个大的序列文件的例子: 1)自定义完整文件输入
阅读全文
摘要:1.1.1 输入分片和记录 (1)输入分片InputSplit接口 输入分片一般是文件,也可以数据库中的若干行。记录对应一行数据。输入分片在java表示为InputSplit接口,getlength函数返回大小,用于分片排序,大的先处理。Getlocation函数返回分片位置,让map任务尽量本地化
阅读全文
摘要:第一章 Java语言概述与开发环境 一、java程序的运行机制 1.语言的分类 编译型语言:如C++等,在特定的操作系统上编译为机器语言,执行效率高,但是通常无法在系统间移植,需要重新修改并编译。 解释型语言:如ruby、Python,用专用的解释器对源程序逐行解释成特定平台的机器码并立即执行,不是
阅读全文