自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mapredcue-Redcuejoin

图片加载不了看这​ Reducejoin与Mapjoin相同,不是一种具体的类接口等需要实现的东西,而是一种思想,根据mapreduce的工作流程与原理,来间接完成自己的工作,看下面的案例实操。join基本思路​ Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。​ Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同

2020-11-12 11:26:42 210

原创 模型表示及代价函数

图片加载不了看这监督式学习的模型表示训练集的描述:如:m 代表训练集中实例的数量x 代表特征/输入变量y 输出变量(x,y) 代表训练集中的实例(xi,yi) 代表第 i 个观察实例h 代表学习算法的解决方案或函数也称为假设(hypothesis)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jm7BIPTq-1605151502349)(https://s1.ax1x.com/2020/11/09/BHuxJJ.png)]​ 上面为一个监督式

2020-11-12 11:25:30 254

原创 mapreduce-自定义outputformat

图片加载不了看这常见的outputformat实现类使用场景:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lPyRQCi4-1605151404282)(https://s1.ax1x.com/2020/11/02/BrGyK1.png)]实例操作:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmT3uXeL-1605151404284)(https://s1.ax1x.com/2020/11/02/BrGqVf.png)]M

2020-11-12 11:23:50 281

原创 mapreducr-分组GroupingComparator

图片加载不了看这分组操作排序又称辅助排序,是在reducer操作之前对mapper传出的kv值进行shuffle操作并归并排序之后,对kv值进行的一系列操作,比如对key中相同的一项或者两项相同的数据归为一组,以分组好的一个key值传入values。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WXkpGQTL-1605151279150)(https://s1.ax1x.com/2020/10/28/B8CrRJ.png)]需求:[外链图片转存失败,源站可能有防盗

2020-11-12 11:21:57 180

原创 maprecude-combiner合并及实例

看这combinner是mapreduce程序中为了减小网络传输量而设置的一个组件,其父类其实就是reducer,combinner在每一个maptask后面进行数据的汇总,从而减少在map之后reduce之前的shuffle机制一系列的数据读写的io操作。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NpXpolg1-1603713044018)(https://s1.ax1x.com/2020/10/26/BuxnI0.png)]注意能够应用的前提不要影响到业务逻辑

2020-10-26 19:51:05 217

原创 mapreduce-排序与分区内排序及实例

在排序的时候,对每一次排序都是默认的按照key进行字典排序的,要实现自定义排序的方式,就是自定对象实现writablecomparable接口实现compareto方法,从而实现自定义排序。如:@Overridepublic int compareTo(FlowBean o) { int result; // 按照总流量大小,倒序排列 if (sumFlow > bean.getSumFlow()) { result = -1; }else if (sumFlow <

2020-10-26 19:50:04 590

原创 mapreduce-排序的介绍

看这排序是mapreudce框架中最为重要的操作之一,排序属于mapreduce的默认操作,在maptask和reducetask中都会对数据按照key进行排序,也就是说任何应用程序中的数据均会被排序,而不管逻辑上是否需要。默认是按照字典顺序排序,实现方法为快排。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sQr4Sb7f-1603712933723)(https://s1.ax1x.com/2020/10/21/BPJ2xP.png)]对于排序亦有四种分类:[

2020-10-26 19:49:29 220

转载 在IDEA中如何使用debug调试

https://www.linuxidc.com/Linux/2017-09/146772.htm

2020-10-26 19:48:34 150

原创 mapreduce-partition分区及实操

了解到,在Mapper之后Reducer之前mapreduce会有一个叫做shuffle机制的流程,这个流程会将Mapper输出的键值对进行分区,每一个分区开启一个reducetask来处理这些数据,而最后输出的文件则为一个reducetask对应输出一个文件。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mQNvk1qA-1603712853630)(https://s1.ax1x.com/2020/10/20/BpIsBD.png)][外链图片转存失败,源站可能有防盗

2020-10-26 19:47:46 318

原创 shuffle机制图解

2020-10-26 19:47:09 245

原创 mapreduce工作流程(详细)

2020-10-26 19:46:37 345

原创 maperduce自定义inputformat

MapReduce提供的inputformat输入类型并不能满足我们的使用需求,因此,mapreduce可以由用户自定义inputformat逻辑来处理各类数据。步骤:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-naJgpogf-1603113808497)(https://s1.ax1x.com/2020/10/19/0xiCKH.png)]自定义InputFormat方案解决处理大量小文件的问题需求:将多个小文件合并成一个SequenceFile文件(Sequ

2020-10-26 19:34:32 84

原创 mapreduce几种常见的inputformat实现类

我们在使用mapreudce来处理数据的时候会遇到许多类型的数据,如文本数据,二进制数据,数据库表等文件,mapreduce中对应其中常用的数据格式有许多输入类来对应实现这些输入格式数据的输入。注意这几种输入格式实现类的切片**TextInputFormat:**按文件切片,一个文件大了切片,但是再小也是一个切片**KeyValue:**同TextInputFormat**NLineInputformat:**按文件行数切片,N行切一片。**CombineTextInputFormat:**设置文

2020-10-19 21:23:18 740 1

原创 Mapreduce-fileinputformat切片流程

fileinputformat切片机制本地运行时为切片32m,Hadoop1.x集群切片为64m,Hadoop2.x集群切片为128m要注意的事情是在计算切片大小的时候我们如果要改动切片的大小blocksize,那么就要在这个公式上面下手:Math.max(minSize,Math.min(maxsize,blocksize)) 一般值为128m,而且maxSize默认为long的最大值,minSize默认为1。如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-

2020-10-19 21:22:38 111

原创 Mapreduce-CombineTextinputformat切片机制

CombineTextInputFormat切片机制框架默认的TextInputFormat切片机制是对任务按文件规划切片,不管文件多小,都会是一个单独的切片,都会交给一个MapTask,这样如果有大量小文件,就会产生大量的MapTask,处理效率极其低下。1、应用场景:CombineTextInputFormat用于小文件过多的场景,它可以将多个小文件从逻辑上规划到一个切片中,这样,多个小文件就可以交给一个MapTask处理。2、虚拟存储切片最大值设置CombineTextInputFormat

2020-10-19 21:22:03 107

原创 mapreduce-job提交源码流程

job提交任务源码流程waitForCompletion()submit();// 1建立连接 connect(); // 1)创建提交Job的代理 new Cluster(getConfiguration()); // (1)判断是本地yarn还是远程 initialize(jobTrackAddr, conf); // 2 提交jobsubmitter.submitJobInternal(Job.this, cluster) // 1)创建给集群提交数据的Sta

2020-10-19 21:21:29 132

原创 切片和maptask并行度决定机制

maptask指的是在mapreduce运行过程中为每一个数据切片分配的数据运算实例任务。maptask的并行度也就指的是运算任务实例的数量,影响整个job的处理速度。切片与maptask并行度的决定机制**数据块:**Block是HDFS物理上把数据分成一块一块。**数据切片:**数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。对于一个要处理的文件数据map框架有默认的切片大小,一般默认为blocksize的大小,在分配maptask运算任务实例的时候对每一个数据切片分配一

2020-10-19 21:20:59 198

原创 Hadoop序列化

当然准确的来说是Hadoop的序列化机制。常用的数据序列化类型Java****类型Hadoop Writable****类型booleanBooleanWritablebyteByteWritableintIntWritablefloatFloatWritablelongLongWritabledoubleDoubleWritableStringTextmapMapWritablearrayArrayWritable

2020-10-19 21:20:15 119

原创 zookeeper-JAVA-API操作基础

借鉴于:https://blog.csdn.net/qq_16146103/article/details/105799545创建maven工程并修改相应的pom.xml文件,添加相应的依赖。<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</

2020-10-19 21:19:08 296

原创 mapreduce编程流程

Mapreduce的编程流程主要分八个阶段:两个MAP阶段,四个shuffle阶段,两个reduce阶段。Map两个阶段:1:设置inputformat类,将数据分为key-value对(k1 v1),并将其输入到第二步。2:自定义Map逻辑将第一步的结果转换为另外的键值对(k2,v2),并输出。shuffle四个阶段:3:对输出的键值对进行分区。4:对不同分区的数据按照相同的key排序。5:(可选),对分组后的数据进行初步规约,降低数据的网络拷贝。6:对数据进行分组,将相同key的valu

2020-10-19 21:17:34 1093

原创 hdfs的高可用机制

在Hadoop集群中,namenode管理整个hdfs系统的元数据信息,直接决定hdfs文件系统的可用性,那么在一个典型的Hadoop集群中,有两台机器被配置为namenode,一台为active,另一台为standy状态。工作中active负责工作,standy保持足够的状态来提供快速故障切换。hdfs和zookeeper实现高可用机制[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W0nV0eA8-1603113366622)(https://s1.ax1x.com/2

2020-10-19 21:16:17 337

原创 hdfs元数据管理

hdfs的元数据辅助管理元数据就是文件的创建时间、大小、权限、块列表等信息。在Hadoop集群中namenode的元数据信息都保存在了Fslmage和Eidts文件中,这两个文件的目录信息就配置在hdfs-site.xml文件中。**fsimage:HDFS文件系统存于硬盘中的元数据检查点,里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息edits:**保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等等。两个文件一旦损坏或丢失

2020-10-19 21:15:45 403

原创 hdfs文件写入与读取过程

文件的写入过程:client向namenode请求上传a.txtnamenode检测client的上传权限namenode回答client是否可以上传client将文件按照block_size大小将文件分为几份,并向namenode请求上传一个blocknamenode根据datanode上的block信息和机架感知选择三个主机放置三个副本(hadoop默认三个),并生成可以上传的datanode的列表。将生成的可以上传的datanode的列表,这时client就可以直接通过pipeline与

2020-09-12 13:02:49 300

原创 zookeeper概述

作用zookeeper是一个开源的分布式协调服务器框架,主要用来解决集群中应用系统的一致性和数据管理问题。比如说在一个主机的上有多个进程同时对一个进程之间共享的资源或者说文件进行操作,那么这时就需要调度分配操作权限,资源或者文件是不能同时被多个进程操作的,当一个资源被使用的时候需要对其上锁以免被其他进程操作(类似多线程中的线程锁),而多个主机中的多个进程同时对共享资源进行操作又涉及到了网络问题,zookeeper就是用来解决这些问题的。一致性问题:比如说两个共享资源是保持同步不的时候的不同进程之间的读

2020-09-12 13:01:26 543

原创 感知机学习规则与感知机训练实例

学习资源:https://www.bilibili.com/video/BV1NJ41177Ec?p=3感知机学习规则:对于感知机的学习规则总的来说可以用下面的这一张图来概括:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o5oODQ2q-1599794323207)(https://s1.ax1x.com/2020/09/11/wtSJCd.png)]先简单的介绍一下感知机的学习规则,这是一个监督式的学习,就是在传入数据中给出答案,感知机自己判断数据,而在判断结果与

2020-09-11 11:19:02 1573

原创 hdfs高级命令

对文件进行限额主要在多人使用hdfs文件系统的时候,为了避免有的用户一个人就要占用整个文件系统所有的存储空间等情况,hdfs 的限额配置允许我们以文件个数或者文件大小进行对某个目录的限制。文件限额配置操作查看某个目录的配置信息:hdfs dfs -count -q -h URLoutput: 2 0 none inf 1 1 1.4

2020-09-11 09:42:10 198

原创 shell脚本基础

shell脚本是一个应用非常广泛的东西。shell脚本文件的后缀通常为.sh,且写入文件内容最上方为**#!/bin/bash**你可以在这个.sh文件中写入你想要执行的命令。使用sh来执行shell脚本文件,如:#你也可以通过文件夹路径直接访问到文件来执行文件sh hello.sh赋予脚本root权限:chmod +x hello.sh变量定义一个局部变量,实例:#!/bin/bashstr="hello world!"echo ${str} !!!!这里面要注意的是为变量赋

2020-09-11 09:41:07 127 2

原创 centos7-Hadoop2-8-5环境搭建-基本命令行操作

进行hadoop集群环境的搭建主要包括下面几步:VMware安装虚拟机为虚拟机配置静态的ip地址(要求虚拟机能够连接外网,且虚拟机可与物理主机互联。)进行主机名字的修改与关闭防火墙为虚拟机配置java环境并安装Hadoop克隆虚拟机并修改子节点虚拟机名字(要求虚拟机之间能够相互通信)实现三个主机之间的ssh免密登录测试运行hellowold!要注意的是我们要先将主节点虚拟机的jdk,Hadoop等与静态IP配置好之后再将虚拟机克隆过去,这时克隆过去的虚拟机只需要修改主机名字与修改静态ip

2020-09-07 20:14:53 275

原创 R 笔记

文章目录数据类型变量运算符决策R包循环数据类型矢量列表矩阵数组因子数据帧向量vectors(即坐标运算)vectors = c(1,5,7,8,9,5)print(vectors)print(class(vectors))#characterlist列表一个r对象,在列表中啥都能放,包括函数,整型,向量等list1 <-list(c(2,5,30),9,5,sin)#向量,整型,函数sinprint(list1)//输出[[1]][1] 2 5 3

2020-09-07 20:07:42 233

原创 vue.js笔记(未完)

学习链接vue响应式系统:Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的 Javascript 对象。而当你修改它们时,视图会进行更新。这使得状态管理非常简单直接,不过理解其工作原理同样非常重要,这样你可以回避一些常见的问题。创建vue实例var app = new Vue({ el:'#app' data: data//数据对象 //选项 })当一个 Vue 实例被创建时,它将 data 对象中的所有的 property 加入到 Vue

2020-08-26 19:36:45 313

转载 dp背包问题总结

转自leetcode题解回答:[Jackie.YL]常见的背包问题分为三种:组合问题:如:给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。377. 组合总和 Ⅳ494. 目标和518. 零钱兑换 IItrue false问题如给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。139. 单词拆分416. 分割等和子集最大最小问题即给定背包容量与价值,怎样才能将装进背包的物品的价

2020-08-26 19:33:44 214

转载 拓扑排序 板子

转自:博客拓扑排序1.什么是拓扑排序对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任 意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。 无向图和有环的有向图没有拓扑排序拓扑排序其实就是离散上的偏序关系的一个应用

2020-08-23 10:31:26 271

转载 MVT MVC模型框架

原链:[https://blog.csdn.net/ljt735029684/article/details/84728867?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159791375919724835843253%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=15979137591972483584325

2020-08-20 17:18:04 470

转载 py线程详解线程锁GIL

http://lzxandcyx.cn/2020/08/03/py%E7%BA%BF%E7%A8%8B%E8%AF%A6%E8%A7%A3%E7%BA%BF%E7%A8%8B%E9%94%81GIL/原文链接:python多线程详解(超详细)​ python多线程详解​ 什么是线程?线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位

2020-08-20 16:43:24 209

转载 线程池原理及py实现

http://lzxandcyx.cn/2020/08/04/%E7%BA%BF%E7%A8%8B%E6%B1%A0%E5%8E%9F%E7%90%86%E5%8F%8Apy/为什么需要线程池目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,这就是是“即时创建, 即时销

2020-08-20 16:41:33 155

原创 js学习笔记(摘抄)

学习资源javascript的使用在HTML文档中,JavaScript代码必须位于 < script > 标签之间。#理解:js的代码其实相当于css的样式表,既可以放在头部也可以放在HTML的body中(只不过都需要放在script标签之中),也可以使用外部js脚本,效用同css一样。(使用外部js脚本的时候要在script标签的src属性中指定好js脚本的具体位置)Js的script标签的效果,script标签其实就相当于python中的shell一样,放在其中的js代码若没有

2020-08-20 16:38:10 220

转载 乘法逆元

原始链接:[https://blog.csdn.net/weixin_43872728/article/details/99687168?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159788598219725211921229%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159788598219725211921229&

2020-08-20 10:07:32 156 1

转载 中国剩余定理

原链:[https://blog.csdn.net/destiny1507/article/details/81751168?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159788511519724839249788%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159788511519724839249788&biz_id

2020-08-20 10:06:36 150 2

原创 使用django-bootstrap开发个人博客

项目运行在centos7首先搭建开发环境创建django项目并使用venv创建虚拟环境并激活django-admin startproject centosdjangocd centosdjangopython3 -m venv venvsource venv/bin/activate同时在虚拟环境中安装一些必要的第三方库文件:pip install django==2.0pip install pillowpip install pymysqlpip install request

2020-08-18 20:17:07 508 1

原创 扩展欧几里得

扩展欧几里得算法的最大用法就是用来计算二元一次方程的整数解。**贝祖定理:**即如果a、b是整数,那么一定存在整数x、y使得ax+by=gcd(a,b)。或者说二元一次方程有解的充要条件就是二元一次方程(ax + by = c)有解的充要条件就是 c 是 gcd(a, b) 的整数倍这时候使用扩展欧几里得就可以求得二元一次方程的一个解。当到达递归边界的时候,b==0,a=gcd(a,b) 这时可以观察出来这个式子的一个解:a1+b0=gcd(a,b),x=1,y=0,注意这时的a和b已经不是最开始的

2020-08-18 09:29:13 245 1

空空如也

空空如也

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

TA关注的人

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