09 2020 档案
摘要:一、报表属性设计基础 1、单元格扩展 2、父子格设置 3、层次坐标 a、相对层次坐标 Cellx[Cellx:-1] b、绝对层次坐标 Cellx[Cellx:2] c、常用公式 1)、Cellx[!0] Cellx的所有值 2)、Cellx[!0]{判断条件} Cellx符合判断条件的值 3)、&
阅读全文
摘要:一、概念:子单元格设置父单元格后,子单元跟随父单元格扩展。简单地说,子单元格根据父单元格分组显示。 二、类别 1、左父格 2、上父格
阅读全文
摘要:概念:使用层次坐标进行跨行运算、跨组运算、集合运算等等 一、示例 1、基本概念 比较:单元格扩展出的每个值与第一个值进行比较 占比:单元格中每个值占总量的比例 环比:计算每行数据与上一行数据的比率 2、列表 3、实现 比较:B2-B2[A2:1] 占比:B2/sum(B2[!0]) 环比:IF(&A
阅读全文
摘要:一、相对层次坐标 1、文件->新建普通报表 2、选中A1 -> F(X) range(5) 函数 -> 单元格属性 -> 扩展 -> 扩展方向纵向 3、选中B1 -> F(X) A1[A1:-1] 注意: 相对后移:Cellx[Cellx:-z] 相对前移:Cellx[Cellx:+z] 二、绝对层
阅读全文
摘要:时间参数参考: https://www.cnblogs.com/Rain1203/p/11699420.html 1、程序开启入口 @SpringBootApplication @EnableScheduling public class Application { public static vo
阅读全文
摘要:1、分组表格 默认:左父格、上父格 2、自由表格 自定义左父格,都环绕着 订单编号的数据单元格 做 自定义 左父格
阅读全文
摘要:一、分类 1、行式报表 表格 2、交叉报表 表头
阅读全文
摘要:一、单元格扩展 路径:单元格属性 -> 扩展 分类:不扩展、纵向扩展、横向扩展 二、单元格样式 路径:单元格属性 -> 样式 设置文本格式 日期/数字/货币
阅读全文
摘要:1、连接数据库 服务器 -> 定义数据库连接2、新建报表 文件 -> 新建普通报表3、添加数据集 选择 模板数据集 -> 选择数据库 -> 写sql语句 ->预览 注意:数据集可以添加多个4、设计报表 (交叉式报表) 合并单元格 设置斜线 填写内容 注意单元格属性的扩展方向 设置F(x) 设置两个数
阅读全文
摘要:一、需求 去掉日志,小于11个 二、代码 1、Mapper package com.wt.etl; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.NullWritable; import org.apach
阅读全文
摘要:1、采样枚举的方式统计 enum MyCounter{MALFORORMED, NORMAL} // 对枚举定义的自定义计数器加1 context.getCounter(MyCounter.MALFORORMED).increment(1) 2、采样计数组、计数器名称的方式统计 context.ge
阅读全文
摘要:一、需求分析 1、需求 与Reduce join的需求一致 2、分析 a、在mapper的setup加载缓存,设置 kv 键值对 b、在map()方法中根据pid 获取 panme 根据上面的k v c、写driver,设置reducenum为 0 ,使用缓存文件 二、代码 1、Driver pac
阅读全文
摘要:一、基础 1、Reduce join 会给Reduce带来过多的负载,容易使数据发生倾斜 2、Map join 适用于一张小表和一张大表 二、实现 1、在Mapper的setup阶段,将文件读取到缓存集合中(小文件) 2、在驱动函数中加载缓存 job.addCacheFile(new URI(路径)
阅读全文
摘要:一、需求分析 1、需求 order.txt id pid amount 1001 01 1 1002 02 2 1003 03 3 1004 01 4 1005 02 5 1006 03 6 pd.txt pid pname 01 小米 02 华为 03 格力 两张表合并成order.txt中的pi
阅读全文
摘要:一、Map端的主要工作 为来自不同表或文件的key/value对,打标签以区别不同来源的记录。 然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。 二、Reduce端的主要工作 在Reduce端以连接字段作为key的分组已经完成, 我们只需要在每一个分组当中将那些来源于不同
阅读全文
摘要:一、需求分析 1、内容 http://www.baidu.com http://www.google.com http://cn.bing.com http://www.atguigu.com http://www.sohu.com http://www.sina.com http://www.si
阅读全文
摘要:一、基础知识 OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口 二、常见的OutputFormat实现类 1、TextOutputFormat 默认的输出格式是TextOutputFormat,它把每条记录写在文本行。 它的键
阅读全文
摘要:一、需求分析 1、需求 a、输入文件 0000001 Pdt_01 222.8 0000002 Pdt_05 722.4 0000001 Pdt_02 33.8 0000003 Pdt_06 232.8 0000003 Pdt_02 33.8 0000002 Pdt_03 522.8 0000002
阅读全文
摘要:一、过程 1、进行排序(自定义Hadoop序列化) 2、进行分组 二、语法 1、自定义分组,继承WritableComparator 2、创建无参构造参数 目的:将比较对象的类传给父类 super(GroupBean.class, true); 注意: a、GroupBean.class是Hadoo
阅读全文
摘要:一、概述 1、Combiner是MR程序中Mapper和Reducer之外的一种组件 2、Combiner继承Reducer 3、Combiner在每个Map Task的节点上运行, Reducer接收全局的Mapper结果 4、Combiner对每个Map Task的输出进行局部汇总,减少网络传输
阅读全文
摘要:一、需求分析 1、需求 手机号136、137、138、139开头都分别放到一个独立的4个文件中,其它开头的放到一个文件中 2、分析 a、分区 继承 Partitioner b、排序 实现 WritableComparable 二、具体代码(结合上篇博客) 1、自定义Haoop序列化类、排序 pack
阅读全文
摘要:一、需求分析 1、需求 按照流量降序排序 2、分析 a、原文件的总流量是value,排序是按照key进行排序的,因此需要把 value -> key b、自定义Hadoop序列化类,(需要有排序功能) 实现 WritableComparable 二、代码 1、自定义Hadoop序列化,实现Writa
阅读全文
摘要:一、概述 1、MapTask和ReduceTask均会对数据按照key进行排序,这是Hadoop的默认行为。任何应用程序中的数据均会被排序,而不管逻辑上是否需要,默认排序是按照字典顺序排序,方法为:快速排序 2、MapTask,在什么时候排序? a、环形内存缓冲区,快速排序,溢出到磁盘 b、所有数据
阅读全文
摘要:默认分区:HashPartition 影响因素:key.hashcode()、NumReducerTask 一、基础 1、目的 Reducer处理的结果按不同的条件,存储在不同的文件中 2、语法 a、自定义分区,继承Partitioner b、分区在mapper后reducer前,因此数据类型和ma
阅读全文
摘要:一、概念 Map方法处理之后,Reduce方法处理之前,数据处理过程过程被称为shuffle,又称洗牌 待续
阅读全文
摘要:无论是HDFS还是MapReduce在处理小文件时,都要消耗大量内存,效率低 一、回顾 1、HDFS har,对外对应一个NameNode,对内对应多个文件 2、MapReduce CombineTextInputFormat,分为虚拟存储过程和切片过程 虚拟存储过程和切片过程都要和最大值做比较 改
阅读全文
摘要:一、需求分析 1、文件 hadoop is ok hadoop not ok java is fun php is ok php is pretty python is all go is new 2、需求 对上述文件中每个单词出现的数量进行统计,2行数据一个切片 3、分析 与传统的WordCoun
阅读全文
摘要:一、需求分析 1、文件 hadoop is ok hadoop not ok java is fun php is ok php is pretty python is all 2、需求 统计输入文件中每一行的第一个单词相同的行数 3、分析 每一行第一个单词的数量,只能用KeyValueTextIn
阅读全文
摘要:一、TextInputFormat 1、TextInputFormat是默认的FileInputFormat的实现类。2、按行读取每条记录。3、键:存储该行在整个文件中起始字节偏移量,LongwWritable类型4、值:这行的内容,不包含任何行终止符(换行符和回车符),Text类型 注意:键的值:
阅读全文
摘要:一、核心代码(依托于自定义的WordCount) 1、位置 在设置输入和输出路径前 2、代码 // 设置 job.setInputFormatClass(CombineTextInputFormat.class); CombineTextInputFormat.setMaxInputSplitSiz
阅读全文
摘要:一、FileInputFormat切片机制 1、简单的按照文件长度进行切片 2、切片大小,默认值为BlockSize 3、切片时不考虑整体数据,而是逐个针对单一文件切片 二、CombineTextInputFormat切片机制 A、产生原因: 处理大量单独的小文件,每个小文件都会产生一个MapTas
阅读全文
摘要:1、区分 数据块: 物理数据切片: 逻辑 2、决定机制 1、一个Job的Map阶段并行度(数量)由客户端提交Job时的切片数量决定2、一个切片对应一个MapTask3、默认情况下,切片大小==BlockSize(128M)4、切片时不考虑数据集整体性,而是针对每个文件单独切片总结:MapTask的数
阅读全文
摘要:因工作需要 由python工程师->java工程师 也算圆了大学时的梦想 一、Bean // 依赖 mybatis mybatis-plus @TableName("tp_abcdr") @Data @NoArgsConstructor @JsonInclude(JsonInclude.Includ
阅读全文
摘要:一、需求 统计每一个手机号耗费的总上行流量、下行流量、总流量 二、分析 1、输入内容 1 13736230513 192.196.100.1 www.atguigu.com 2481 24681 200 2 13846544121 192.196.100.2 264 0 200 3 13956435
阅读全文
摘要:一、优点 1、紧凑:节省内存 2、快速:读取速度快 3、可扩展:随着协议升级 4、互操作:支持多语言交互 二、Bean对象实现序列化 1、步骤 a、必须实现Writable接口 b、必须有空参构造,反序列化时,反射调用 c、重写序列化方法 d、重写反序列化方法 e、序列化方法和反序列化方法参数顺序要
阅读全文
摘要:Java类型 Hadoop Writable类型 boolean BooleanWritable byte ByteWritable int IntWritable float FloatWritable long LongWritable double DoubleWritable String
阅读全文
摘要:一、前提 1、创建Maven项目 2、导入依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> </dependency> <
阅读全文
摘要:1、右击鼠标--选中Edit '类.main()' 2、添加参数--apply--ok
阅读全文
摘要:一、概述 1、概念 是一个分布式运算程序的编程框架 2、核心功能 业务逻辑代码和自带默认组件 二、MapReduce的优缺点 1、优点 易于编程、良好的扩展性、高容错性、适合PB级以上海量数据的离线处理 2、缺点 不擅长实时计算、不擅长流式计算、不擅长依赖关系的计算 三、核心思想 1、MapRedu
阅读全文
摘要:含义:快照不会复制所有文件,而是记录文件变化 # 1.开启指定目录的快照功能 hdfs dfsadmin -allowSnapshot 路径 # 2.对目录创建快照 hdfs dfs -createSnapshot 路径 # 3.指定名称创建快照 hdfs dfs -createSnapshot 路
阅读全文
摘要:注意:HDFS很少删除数据 1、打开文件 vim etc/hadoop/core-site.xml 2、编辑文件 # 1 代表1分钟 <property> <name>fs.trash.interval</name> <value>1</value> </property> # 修改回收站访问用户
阅读全文
摘要:1、scp 一个集群内 传递数据 scp -r a.txt tom@wt3:/ # 推 scp -r tom@wt2:/abc.txt /tmp # 拉 scp -r tom@wt1:/a.txt tom@wt3:/tmp 2、 distcp 两个集群 传递数据 bin/hadoop distcp
阅读全文
摘要:1、原因: 小文件不适合储存在Hadoop中,因为都会占用NameNode内存的元数据(相当于目录), 无论小文件的大小都会占用一个DataNode块(128M) 2、解决方案 HDFS存档文件或HAR文件,对内是一个一个独立的文件,对NameNode是一个整体,减少NameNode的内存 3、实操
阅读全文
摘要:一、过程 1、修改配置文件 vim etc/hadoop/hdfs-site.xml <property> <name>dfs.datanode.data.dir</name> <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.t
阅读全文
摘要:一、白名单 1、在NameNode节点,创建dfs.hosts,并添加白名单主机名 cd /opt/module/hadoop-2.7.7/etc/hadoop/ vim dfs.hosts# 内容wt1wt2wt3 2、在NameNode的hdfs-site.xml配置文件中增加dfs.hosts
阅读全文
摘要:1、克隆机器 克隆 wt3 获取 wt5 2、修改ip和hostname 3、添加hosts 所有节点(可以用scp) 4、删除 data/ 和 logs/ 5、source一下配置文件(简单) source /etc/profile 6、配置ssh 目的:wt3 和 wt5 无密登录a、wt3和w
阅读全文
摘要:1、打开文件(具体路径,懂得都懂,不懂的看前面) vim hdfs-site.xml 2、修改配置文件 <property> <name>dfs.namenode.heartbeat.recheck-interval</name> <value>300000</value> </property>
阅读全文
摘要:一、目的 每个目录下的数据完全相同,增强可靠性 二、配置 1、停止集群 sbin/stop-yarn.sh sbin/stop-dfs.sh 2、删除所有节点的文件 rm -rf data/ logs/ 3、配置hdfs-site.xml文件 <property> <name>dfs.namenod
阅读全文
摘要:一、基础 在安全模式下,不能对节点进行写操作 二、命令 hdfs dfsadmin -safemode get # 查看安全模式的状态 hdfs dfsadmin -safemode enter # 进入安全模式 hdfs dfsadmin -safemode leave # 脱离安全模式 hdfs
阅读全文
摘要:一、将SecondaryNameNode中数据拷贝到NameNode存储数据的目录 1、制造故障 # 1. 杀死进程 kill 9 NameNode进程 # 2. 删除NameNode文件rm -rf /opt/module/hadoop-2.7.7/data/tmp/dfs/name/* 2、拷贝
阅读全文
摘要:一、CheckPoint的触发条件 1、间隔固定时间 2、记录达到一定的次数 二、配置文件 vim hdfs-site.xml <!--checkpoint时间--> <property> <name>dfs.namenode.checkpoint.period</name> <value>3600
阅读全文