自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(240)
  • 收藏
  • 关注

原创 OceanBase产品家族及基础概念

• 支持多种类型数据源:支持包括 Oracle、MySQL、DB2、OceanBase 等数据库到OceanBase 的全量迁移和增量实时数据同步• 兼容性评估和改造:异构数据迁移 OceanBase 的对象兼容性评估和改写建议,极大降低业务迁移的门槛和业务改造的难度• 一站式交互:数据迁移全生命周期管理,数据迁移的创建、配置和监控都在管控界面上连贯操作完成,交互简便• 多重数据校验:提供多种方式校验的保护,更加全面、省时、高效地保证数据质量;同时展示差异数据,提供快速订正途径。

2023-01-10 22:36:40 258

原创 牛客SQL每日一题之SQL136 每类试卷得分前3名

解释:有作答得分记录的试卷tag有SQL和算法,SQL试卷用户1001、1002、1003、1004有作答得分,最高得分分别为81、81、89、85,最低得分分别为78、81、86、40,因此先按最高得分排名再按最低得分排名取前三为1003、1004、1002。找到每类试卷得分的前3名,如果两人最大分数相同,选择最小分数大者,如果还相同,选择uid大者。

2022-12-18 08:00:00 166 2

原创 SQL笔记(二)SQL语法、字符匹配

原因是姓名列的类型是char(20),当姓名少于20个汉字时,系统在存储这些数据时自动在后边补空格,空格作为一个字符,也参加LIKE的比较。例4.查询学生表表中名字的第2个字为“小”或“大”的学生的姓名和学号。例6.从学生表表中查询学号的最后一位不是2、3、5的学生信息。例3.查询学生表中姓‘张’、姓‘李’和姓‘刘’的学生的情况。例1.查询学生表中姓‘张’的学生的详细信息。例2.查询姓“张”且名字是3个字的学生姓名。例5.查询学生表中所有不姓“刘”的学生。列名 [NOT ] LIKE。

2022-12-17 08:00:00 67 1

原创 LeetCode每日一题之删除排序数组中的重复项

元素的 相对顺序 应该保持 一致 ,所以遍历结束后,将new[ ]中的元素,重新赋值给nums[ ], 那么nums[ ]的前k个元素就是原数据的全部非重复项。遍历结束之后,从 nums[0] 到nums[slow−1] 的每个元素都不相同且包含原数组中的每个不同的元素,因此新的长度即为 slow,,返回slow。当数组 nums[ ] 的长度大于 0 时,数组中至少包含一个元素,又因为nums[ ]是有序的,所以新数组new[0]=nums[0]。如果所有断言都通过,那么您的题解将被 通过。

2022-12-15 22:02:36 42 1

原创 分布式数据库与集中式数据库的差异

• 互联网业务增长,带动核心系统升级• 核心系统引入数据库分布式与云化改造,支撑横向平滑扩展• 5G规模推广,带动IT系统升级• 5G具备大带宽和超低延时等能力,需要数据库系统提升响应速度和并发能力• 打造智慧政府• 实现智慧政府为目标的“互联网+”业务构建,对于数据库的性能和扩展提出了更高的要求。

2022-12-13 23:06:04 433 1

原创 DataX使用、同步HDFS数据到MySQL案例、DataX优化

当提升DataX Job内Channel并发数时,内存的占用会显著增加,因为DataX作为数据交换通道,在内存中会缓存较多的数据。例如Channel中会有一个Buffer,作为临时的数据交换的缓冲区,而在部分Reader和Writer的中,也会存在一些Buffer,为了防止OOM等错误,需调大JVM的堆内存。insert into,如果没有主键,插入两条相同的数据则会保存两条,如果没有主键,插入两条相同的数据则会报错。没有万能的,看具体业务场景,mysql数据为主就用第三个,采集数据为主就用第二个。

2022-12-10 08:00:00 96 4

原创 DataX使用、同步MySQL数据到HDFS案例

emps;DataX的使用十分简单,用户只需根据自己同步数据的数据源和目的地选择相应的Reader和Writer,并将Reader和Writer的信息配置在一个json文件中,然后执行如下命令提交数据同步任务即可。

2022-12-02 22:38:42 826 2

原创 大数据项目之电商数仓DataX、DataX简介、DataX支持的数据源、DataX架构原理、DataX部署

DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。DataX设计理念、DataX框架设计、DataX运行流程、DataX调度决策思路、DataX与Sqoop对比、下载DataX安装包并上传到hadoop102的/opt/software、解压datax.tar.gz到/opt/module、自检,执行如下命令

2022-11-26 09:59:16 888 2

原创 大数据项目之电商数仓、实时数仓同步数据、离线数仓同步数据、用户行为数据同步、日志消费Flume配置实操、日志消费Flume测试、日志消费Flume启停脚本

按照规划,该Flume需将Kafka中topic_log的数据发往HDFS。并且对每天产生的用户行为日志进行区分,将不同天的数据发往HDFS不同天的路径。此处选择KafkaSource、FileChannel、HDFSSink。

2022-11-23 15:40:17 1171 4

原创 解决cannot import name ‘soft_unicode‘ from ‘markupsafe‘和‘EntryPoints‘ object has no attriibute ‘get‘

如果将markupsafe改为2.0.1之后还是会报如下错误。将markupsafe依赖的版本回退到 2.0.1。ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/markupsafe/__init__.py)AttributeError: 'EntryPoints' object has no a

2022-11-17 15:11:11 637 6

原创 大数据项目之电商数仓、Maxwell使用、 Maxwell启停脚本、增量数据同步、历史数据全量同步、采集通道Maxwell配置、通道测试

但有时只有增量数据是不够的,我们可能需要使用到MySQL数据库中从历史至今的一个完整的数据集。这就需要我们在进行增量同步之前,先进行一次历史数据的全量同步。这样就能保证得到一个完整的数据集。1)第一条type为bootstrap-start和最后一条type为bootstrap-complete的数据,是bootstrap开始和结束的标志,不包含数据,中间的type为bootstrap-insert的数据才包含数据。2)一次bootstrap输出的所有记录的ts都相同,为bootstrap开始的时间。

2022-11-10 11:18:21 858 21

原创 大数据项目之电商数仓、业务数据通道、Maxwell简介、Maxwell原理、MySQL主从复制读写分离、Maxwell部署

Maxwell 是由美国Zendesk公司开源,用Java编写的MySQL变更数据抓取软件。它会实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变更数据以 JSON 格式发送给 Kafka、Kinesi等流数据处理平台。MySQL二进制日志、MySQL主从复制、读写分离、做数据库的热备:主数据库服务器故障后,可切换到从数据库继续工作。主从复制的工作原理如下、主从复制的应用场景如下

2022-11-05 08:00:00 752 19

原创 大数据项目之电商数仓、业务数据介绍、业务数据模拟、生成业务数据、业务数据建模

注意:完成后,要记得右键,刷新一下对象浏览器,就可以看见数据库中的表了。大数据项目之电商数仓、业务数据介绍、业务数据模拟、生成业务数据、业务数据建模、建表语句、按住shift键,用鼠标点击表,进行多选,可实现批量移动、按住ctrl键,用鼠标圈选表,也可进行多选,实现批量移动、并在该目录下执行,如下命令,生成2020-06-14日期数据、根据需求修改application.properties相关配置、在hadoop102的/opt/module/目录下创建db_log文件夹、建立表关系、 第一步:点击选中主

2022-11-04 08:00:00 505 7

原创 大数据项目之电商数仓、业务数据介绍、MySQL安装、更改MySQL密码策略

注意:如果报如下错误,这是由于yum安装了旧版本的GPG keys所造成,从rpm版本4.1后,在安装或升级软件包时会自动检查软件包的签名。配置只要是root用户 + 密码,在任何主机上都能登录MySQL数据库。设置复杂密码(由于MySQL密码策略,此密码必须足够复杂)、更改MySQL密码策略、设置简单好记的密码、 修改user表,把Host表内容修改为%、安装MySQL依赖、卸载自带的Mysql-libs(如果之前安装过MySQL,要全都卸载掉)、将安装包和JDBC驱动上传到/opt/software,共

2022-11-03 08:00:00 288 12

原创 大数据项目之电商数仓、业务数据介绍、电商系统表结构

以下为本电商数仓系统涉及到的业务数据表结构关系。这34个表以订单表、用户表、SKU商品表、活动表和优惠券表为中心,延伸出了优惠券领用表、支付流水表、活动订单表、订单详情表、订单状态表、商品评论表、编码字典表退单表、SPU商品表等,用户表提供用户的详细信息,支付流水表提供该订单的支付详情,订单详情表提供订单的商品数量等情况,商品表给订单详情表提供商品的详细信息。本次讲解以此34个表为例,实际项目中,业务数据库中表格远远不止这些。

2022-11-02 08:00:00 181 2

原创 大数据项目之电商数仓、电商业务简介、电商业务流程、电商常识、业务数据介绍、电商业务表、后台管理系统

电商的业务流程可以以一个普通用户的浏览足迹为例进行说明,用户点开电商首页开始浏览,可能会通过分类查询也可能通过全文搜索寻找自己中意的商品,这些商品无疑都是存储在后台的管理系统中的。当用户寻找到自己中意的商品,可能会想要购买,将商品添加到购物车后发现需要登录,登录后对商品进行结算,这时候购物车的管理和商品订单信息的生成都会对业务数据库产生影响,会生成相应的订单数据和支付数据。订单正式生成之后,还会对订单进行跟踪处理,直到订单全部完成。

2022-11-01 08:00:00 228 8

原创 大数据项目之电商数仓、日志采集Flume测试、日志采集Flume启停脚本

将进程号为67857的kill了,但是我们还有一个问题,这样写如果有多个Application的进程,多个Flume的job,也都会同时一起杀死,我们不想这样做,因此可以进行改进,可以根据文件名,一台机器上一个Flume的配置只会启动一次,不会启动多次。但是要是往脚本里面写的话得在awk '{print $2}‘里面多加一个反斜杠,因为最外层有$1了,如果在写$2会和外层冲突,所以加一个’'比较好awk ‘{print $2}’这样就可以查出来想要的进程了,然后把进程号给提取出来,这里使用awk,

2022-10-31 08:00:00 163 4

原创 大数据项目之电商数仓、日志采集Flume配置概述、日志采集Flume配置实操

按照规划,需要采集的用户行为日志文件分布在hadoop102,hadoop103两台日志服务器,故需要在hadoop102,hadoop103两台节点配置日志采集Flume。日志采集Flume需要采集日志文件内容,并对日志格式(JSON)进行校验,然后将校验通过的日志发送到Kafka。此处可选择TaildirSource和KafkaChannel,并配置日志校验拦截器。

2022-10-30 08:00:00 601 17

原创 大数据项目之电商数仓、日志采集Flume、source、channel、 sink、Kafka的三个架构

由taildir source读取数据,发送给kafka channel,因为是kafka channel,因此将数据存储到kafka的topic里面,hdfs sink从kafka channel里面读数据,发现是kafka channel,则从kafka当中要读的数据读出来,发送给hdfs sink。hdfs sink从kafka channel里面读数据,发现是kafka channel,则从kafka当中要读的数据读出来,发送给hdfs sink。kafka source :下面有详细的说明。

2022-10-29 08:00:00 1096 21

原创 大数据项目之电商数仓、Flume安装(完整版)

(1)将apache-flume-1.9.0-bin.tar.gz上传到linux的/opt/software目录下。把这行注释的代码取消注释,memory Channel消耗的内存比较大,因此需要调大内存,将-Xmx参数调大。(2)解压apache-flume-1.9.0-bin.tar.gz到/opt/module/目录下。(4)将lib文件夹下的guava-11.0.2.jar删除以兼容Hadoop 3.1.3。(3)修改apache-flume-1.9.0-bin的名称为flume-1.9.0。

2022-10-28 08:00:00 171 3

原创 大数据项目之电商数仓、Kafka安装(完整版)、Kafka命令行操作

注意:停止Kafka集群时,一定要等Kafka所有节点进程全部停止后再停止Zookeeper集群。因为Zookeeper集群当中记录着Kafka集群相关信息,Zookeeper集群一旦先停止,Kafka集群就没有办法再获取停止进程的信息,只能手动杀死Kafka进程了。(1)在/etc/profile.d/my_env.sh文件中增加kafka环境变量配置。(1)先启动Zookeeper集群,然后启动Kafka。(2)把主题中所有的数据都读取出来(包括历史数据)–topic 定义topic名。

2022-10-27 08:00:00 470 11

原创 大数据项目之电商数仓、Zookeeper安装(完整版)

集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。C是这个服务器Follower与集群中的Leader服务器交换信息的端口;A是一个数字,表示这个是第几号服务器;B是这个服务器的地址;

2022-10-26 08:00:00 876 25

原创 大数据项目之电商数仓、用户行为数据采集模块、集群所有进程查看脚本、Hadoop安装、数据通道、环境准备、Web端查看SecondaryNameNode、项目经验之集群数据均衡和Hadoop参数调优

HDFS参数调优hdfs-site.xml、YARN参数调优yarn-site.xml、磁盘间数据均衡其默认值为file://${hadoop.tmp.dir}/dfs/data,若服务器有多个磁盘,必须对该参数进行修改。表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。不要分发,要一个一个的进行配置,因为hadoop102是6G内存,103是4G,104是4G,分发的话会导致利用率不匹配。

2022-10-25 08:00:00 188 39

原创 大数据项目之电商数仓、用户行为日志、服务器和JDK准备、模拟数据

这里滚动的方式是以文件的形式进行滚动的,而这个文件滚动的日期是和服务器的时间是相关的,而模拟的数据是2020年的数据,所以这里的日期会不匹配,在生产情况下是没有问题的,因为当天的数据当天就处理了,所以日期基本上是没有问题的。②/dev/null代表Linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。标准输出1:输出到屏幕(即控制台) /proc/self/fd/1。错误输出2:输出到屏幕(即控制台) /proc/self/fd/2。可以根据需求生成对应日期的用户行为日志。

2022-10-24 08:00:00 671 6

原创 大数据项目之电商数仓、用户行为日志

代码埋点(前端/后端)、可视化埋点、全埋点、页面浏览记录、动作记录、曝光记录、启动记录和错误记录、页面日志,启动日志、曝光记录,记录的是曝光行为,该行为的环境信息主要有用户信息、时间信息、地理位置信息、设备信息、应用信息、渠道信息及曝光对象信息等、动作记录,记录的是用户的业务操作行为,该行为的环境信息主要有用户信息、时间信息、地理位置信息、设备信息、应用信息、渠道信息 及动作目标对象信息等、页面浏览记录,记录的是访客对页面的浏览行为,该行为的环境信息主要有用户信息、时间信息、地理位置信息、设备信息、应用信息

2022-10-23 08:00:00 468 5

原创 大数据项目之电商数仓、数据仓库概念、项目需求及架构设计

比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。数据仓库,并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:备份、清洗、聚合、统计等。(2)CDH:国内使用最多的版本,但CM不开源,今年开始收费,一个节点1万美金/年。2、框架版本如何选型(Apache、CDH、HDP)

2022-10-22 08:00:00 3423 86

原创 Hadoop中的Yarn的Tool接口案例、Yarn 案例实操(四)

注意此时提交的3个参数,第一个用于生成特定的Tool,第二个和第三个为输入输出目录。注:以上操作全部做完过后,快照回去或者手动将配置文件修改成之前的状态,因为本身资源就不够,分成了这么多,不方便以后测试。自己写的程序也可以动态修改参数。编写Yarn的Tool接口。期望可以动态传参,结果报错,误认为是第一个输入参数。改名为YarnDemo,然后进行上传到Linux上。点击reload from Disk进行刷新。将jar包拖拽到XShell里面。添加依赖后记得刷新一下。

2022-10-18 08:00:00 655 27

原创 Hadoop中的公平调度器案例、Yarn 案例实操(三)

创建两个队列,分别是test和summer(以用户所属组命名)。期望实现以下效果:若用户提交任务时指定队列,则任务提交到指定队列运行;若未指定队列,test用户提交的任务到root.group.test队列运行,summer提交的任务到root.group.summer队列运行(注:group为用户所属组)。公平调度器的配置涉及到两个文件,一个是yarn-site.xml,另一个是公平调度器队列分配文件fair-scheduler.xml(文件名可自定义)。

2022-10-17 08:00:00 137 17

原创 Hadoop中的容量调度器多队列提交案例、Yarn 案例实操(二)

容量调度器,支持任务优先级的配置,在资源紧张时,优先级高的任务将优先获取资源。由于我是下载到本地,通过notepad++进行修改的,所以需要上传到linux上,先将linux上的capacity-scheduler.xml删除,然后进行拖拽。需求1:default队列占总内存的40%,最大资源容量占总资源60%,hive队列占总内存的60%,最大资源容量占总资源80%。业务部门1(重要)=》业务部门2(比较重要)=》下单(一般)=》购物车(一般)=》登录注册(次要)11.11 6.18。

2022-10-16 08:00:00 128 13

原创 Hadoop中的Yarn 生产环境核心参数配置案例、Yarn 案例实操(一)

因为在java8只使用java堆里面的内存,而centos7.0以上使用linux系统为java进程预留的5G,实际使用的内存还不超过4g,所以会造成大量的浪费,因此要关闭虚拟内存。然后进行分发一下,如果集群的配置不同,假如hadoop102是i7,hadoop103是i3,则尽量不使用分发,而是一个一个的机器进行配置。服务器3台,每台配置2G内存,2核CPU,4线程。注:调整下列参数之前尽量拍摄Linux快照,否则后续的案例,还需要重写准备集群。这个脚本是之前写的,想看详细的看我之前写的。

2022-10-15 08:00:00 792 24

原创 Vi和Vim编辑器

在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样,此时才可以进行编辑。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、 离开 vi 、显示行号等动作是在此模式中达成的!A:在光标所在你行的行尾开始插入。

2022-10-14 08:00:00 119 14

原创 HadoopYarn常用命令、yarn application查看任务、yarn logs查看日志、yarn applicationattempt查看尝试运行的任务、查看容器、Yarn生产环境核心参数

yarn queue查看队列、yarn rmadmin更新配置、yarn node查看节点状态、yarn container查看容器、列出所有Application、根据Application状态过滤:yarn application -list -appStates (所有状态:ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED)、Kill掉Application、查询Application日志、查询Container日

2022-10-13 08:00:00 1277 27

原创 Hadoop中Yarn资源调度器、Yarn工作机制、作业提交全过程、Yarn调度器和调度算法、先进先出调度器(FIFO)、容量调度器(Capacity Scheduler)、公平调度器(Fair Sc

HDFS、YARN、MapReduce三者关系、作业提交过程值YARN、作业提交过程之HDFS & MapReduce、公平调度器(Fair Scheduler)、容器调度器特点、容量调度器资源分配算法、公平调度器特点、公平调度器----缺额、公平调度器队列资源分配方式、FIFO策略、Fair策略、DRF策略、公平调度器资源分配算法、公平调度器资源分配方法、作业提交全过程详解(1)作业提交第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。第2步:C

2022-10-12 08:00:00 149 11

原创 Hadoop数据压缩、MR支持的压缩编码、压缩方式选择、压缩位置选择、压缩实操案例、Map输出端采用压缩、Reduce输出端采用压缩、Gzip压缩、Bzip2压缩、Lzo压缩、Snappy压缩

压缩的优点:以减少磁盘IO、减少磁盘存储空间。压缩的缺点:增加CPU开销。(1)运算密集型的Job,少用压缩(2)IO密集型的Job,多用压缩、压缩方式选择时重点考虑:压缩/解压缩速度、压缩率(压缩后存储大小)、压缩后是否可以支持切片、压缩可以在MapReduce作用的任意阶段启用、为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器、Snappy是和centos7.5和hadoop3.0结合使用,他是支持压缩的,如果在本地idea里面,他没有这个运行环境,他这个Snappy是不支持的、即使你的Ma

2022-10-11 08:00:00 229 11

原创 Hadoop中的MapReduce框架原理、数据清洗(ETL)、MapReduce开发总结、常见错误及解决方案

输入数据接口:InputFormat、逻辑处理接口:Mapper、Partitioner分区、Comparable排序、Combiner合并、逻辑处理接口:Reducer、输出数据接口:OutputFormat(1)默认使用的实现类是:TextInputFormat(2)TextInputFormat的功能逻辑是:一次读一行文本,然后将该行的起始偏移量作为key,行内容作为value返回。(3)CombineTextInputFormat可以把多个小文件合并成一个切片处理,提高处理效率。用户根据业务需求实现

2022-10-10 08:00:00 360 14

原创 Hadoop中的MapReduce框架原理、Join应用、Reduce Join、案例实操、Map Join、采用DistributedCache、案例实操

Map端的主要工作:为来自不同表或文件的key、value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出、Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并就ok了、Map Join适用于一张表十分小、一张表很大的场景、在Map端缓存多张表,提前处理业务逻辑,这样增加Map端业务,减少Reduce端数据的压力,尽可能的减少数据

2022-10-09 08:00:00 503 17

原创 Hadoop中MapTask&ReduceTask源码解析(非常详细请耐心看完)、MapReduce内核源码解析、MapTask&ReduceTask工作机制、ReduceTask并行度决定机制

Read阶段:MapTask通过InputFormat获得的RecordReader,从输入InputSplit中解析出一个个key/value。Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓冲区中

2022-10-08 08:00:00 262 25

原创 Hadoop中的MapReduce框架原理、OutputFormat数据输出,接口实现类、 自定义OutputFormat案例实操

过滤输入的log日志,包含baidu的网站输出到e:/baidu.log,不包含baidu的网站输出到e:/other.log。创建一个类LogRecordWriter继承RecordWriter(a)创建两个文件的输出流:baiduOut、otherOut(b)如果输入数据包含baidu,输出到baiduOut流如果不包含baidu,输出到otherOut流新建一个java文件,命名为LogOutputFormat,当到这一步的时候会报错,需要创建一个class类,创建就行了创建成功。

2022-10-07 08:00:00 631 6

原创 Hadoop中的MapReduce框架原理、Combiner 合并案例实操

因为自定义的Combiner和Reducer的代码是一样的,所以可以调用Reducer作为Combiner。增加一个 WordCountCombiner 类继承 Reducer、指定需要使用combiner,以及用哪个类作为combiner的逻辑、因为自定义的Combiner和Reducer的代码是一样的,所以可以调用Reducer作为Combiner、将 WordcountReducer 作为 Combiner 在 WordcountDriver 驱动类中指定、统计过程中对每一个 MapTask 的输出进

2022-10-06 09:24:53 662 6

原创 Hadoop中的MapReduce框架原理、WritableComparable排序案例实操(区内排序)、Combiner合并、自定义 Combiner 实现步骤

Combiner是MR程序中Mapper和Reducer之外的一种组件、Combiner组件的父类就是Reducer、Combiner和Reducer的区别在于运行的位置,Combiner是在每一个MapTask所在的节点运行,Reducer是接收全局所有Mapper的输出结果、Combiner的意义就是对每一个MapTask的输出进行局部汇总,以减小网络传输量、Combiner能够应用的前提是不能影响最终的业务逻辑,而且,Combiner的输出kv应该跟Reducer的输入kv类型要对应起来、自定义一个

2022-10-05 08:00:00 143 26

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除