自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hadoop 实现二级排序

在 Hadoop 中,默认情况下是按照 key 进行排序,如果要按照 value 进行排序怎么办?有两种方法进行二次排序,分别为:buffer and in memory sort 和 value-to-key conversion。buffer and in memory sort主要思想是:在 reduce()函数中,将某个 key 对应的所有 value 保存下来,然后进行排序。 这种方法最大的缺点是:可能会造成 out of memory。value-to-key conversion主要

2021-12-27 13:13:29 1255

原创 Hadoop 性能调优

调优可以通过系统配置、程序编写和作业调度算法来进行。 hdfs 的 block.size 可以调到128/256(网络很好的情况下,默认为 64)调优的大头:mapred.map.tasks、mapred.reduce.tasks 设置 mr 任务数(默认都是 1)mapred.tasktracker.map.tasks.maximum 每台机器上的最大 map 任务数mapred.tasktracker.reduce.tasks.maximum 每台机器上的最大 reduce 任务数mapred.

2021-12-21 18:49:59 996

原创 hadoop 实现 Join reduce side join + BloomFilter

在某些情况下,SemiJoin 抽取出来的小表的 key 集合在内存中仍然存放不下,这时候可以使用 BloomFiler 以节省空间。BloomFilter 最常见的作用是:判断某个元素是否在一个集合里面。它最重要的两个方法是:add() 和 contains()。最大的特点是不会存在 false negative,即:如果 contains()返回 false,则该元素一定不在集合中,但会存在一定的 true negative,即:如果 contains()返回 true,则该元素可能在集合中。

2021-12-15 15:01:05 1274

原创 hadoop 实现 Join方法3

SemiJoinSemiJoin,也叫半连接,是从分布式数据库中借鉴过来的方法。它的产生动机是:对于 reduceside join,跨机器的数据传输量非常大,这成了 join 操作的一个瓶颈,如果能够在 map 端过滤掉不会参加 join 操作的数据,则可以大大节省网络 IO。实现方法很简单:选取一个小表,假设是 File1,将其参与 join 的 key 抽取出来,保存到文件 File3 中,File3 文件一般很小,可以放到内存中。在 map 阶段,使用 DistributedCache .

2021-12-14 13:35:40 946

原创 hadoop 实现 Join方法2

map side join之所以存在 reduce side join,是因为在 map 阶段不能获取所有需要的 join 字段,即:同一个key 对应的字段可能位于不同 map 中。Reduce side join 是非常低效的,因为 shuffle 阶段要进行大量的数据传输。Map side join 是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中。这样,我们可以将小表复制多份,让每个 maptask 内存中存在一份(比如存放到 .

2021-12-13 14:27:33 351

原创 hadoop 实现 Join方法1

reduce side joinreduce side join 是一种最简单的 join 方式,其主要思想如下:在 map 阶段,map 函数同时读取两个文件 File1 和 File2,为了区分两种来源的 key/value 数据对,对每条数据打一个标签(tag),比如:tag=0 表示来自文件 File1,tag=2 表示来自文件File2。即:map 阶段的主要任务是对不同文件中的数据打标签。在 reduce 阶段,reduce 函数获取 key 相同的来自 File1 和 File2 .

2021-12-12 14:52:49 86

原创 NameNode 在启动的时候会做哪些操作

NameNode 启动的时候,会加载 fsimageFsimage 加载过程完成的操作主要是为了:(1)从 fsimage 中读取该 HDFS 中保存的每一个目录和每一个文件(2)初始化每个目录和文件的元数据信息(3)根据目录和文件的路径,构造出整个 namespace 在内存中的镜像(4)如果是文件,则读取出该文件包含的所有 blockid,并插入到 BlocksMap 中。namenode 在加载 fsimage 过程其实非常简单,就是从 fsimage 中不停的顺序读取文件和目录的元数据

2021-12-09 21:28:13 595

原创 如何实现 hadoop 的安全机制

(1)共享 hadoop 集群:a: 管理人员把开发人员分成了若干个队列,每个队列有一定的资源,每个用户及用户组只能使用某个队列中指定资源。b: HDFS 上有各种数据,公用的,私有的,加密的。不用的用户可以访问不同的数据。(2) HDFS 安全机制client 获取 namenode 的初始访问认证( 使用 kerberos )后,会获取一个 delegation token,这个 token 可以作为接下来访问 HDFS 或提交作业的认证。同样,读取 block 也是一样的。(3) map

2021-12-08 16:08:12 3387

原创 数据清洗--用spark做

数据清洗的目的是为了保证数据质量,包括数据的完整性、唯一性、一致性、合法性和权威性。数据清洗的结果是对各种脏数据进行对应的处理方式,从而得到标准的、干净的、连续的数据,提供给数据统计和数据挖掘使用。解决数据的完整性问题:(1) 通过其他信息不全;(2) 通过前后数据不全;(3) 如果实在无法不全,虽然可惜,但是还是要剔除掉进行统计。但是没必要删除,后续其他分析可能还需要。解决数据的唯一性问题:(1) 根据主键进行去除,去除重复数据;(2) 制定一系列规则,保证根据某种规则下只保存一条数据

2021-12-07 12:56:29 2392

原创 Hive优化

(1) 数据存储及压缩。针对hive中表的存储格式通常有orc和parquet,压缩格式一般使用snappy。相比与textfile格式表,orc 占有更少的存储。因为 hive 底层使用 MR 计算架构,数据流是 hdfs 到磁盘再到hdfs,而且会有很多次,所以使用 orc 数据格式和 snappy 压缩策略可以降低 IO 读写,还能降低网络传输量,这样在一定程度上可以节省存储,还能提升 hql 任务执行效率;(2) 通过调参优化。并行执行,调节 parallel 参数;调节 jvm 参数

2021-12-06 18:45:48 104

原创 Hadoop

1.讲述 HDFS 上传文件和读文件的流程HDFS 上传流程,举例说明一个 256M 的文件上传过程(1)由客户端 Client 向 NameNode 节点发出请求;(2)NameNode 向 Client 返回可以存数据的 DataNode 列表,这里遵循机架感应原则(把副本分别放在不同的机架,甚至不同的数据中心);(3)客户端首先根据返回的信息先将文件分块(Hadoop2.X 版本每一个 block 为128M,而之前的版本为 64M);(4)通过 NameNode 返回的 DataNod

2021-12-06 15:29:19 534

原创 大数据面试

最近有很多朋友问我大数据面试的一些问题,今天我先简单罗列一下,之后会持续更新细节1)技术框架部分:(1)会根据面试者简历上的技能点进行考察。注意技能点描述用词,不要随便用熟悉,觉得特别熟的可以说熟练使用(2)常用的大数据框架是肯定会问的,比如 Hive、Spark、Kafka 等。常见的如 Kafka精准消费问题的多种解决办法对比,Spark 的 Task 调度规则(3)有些面试官会直接让讲了解的框架最底层实现(4)Java,MySQL,Redis 必问,JVM,Hashmap,JUC 相关,

2021-12-06 15:18:09 1046

原创 FairyGUI中常用的方法,对比UGUI

这里写自定义目录标题素材管理可以直接将图片(Gif)、声音(mp3)、动画、文字等素材从资源浏览器拖动到库中。资源UrlUIPackage.getItemURL(“包名“,“资源名”)AudioClip clip = (AudioClip)UIPackage.GetItemAsset(“包名称”,”声音名称”);菜单”编辑”->“创建位图字体”,(输入字符,显示对应图片)多信息文...

2020-04-16 19:14:19 2377

原创 Unity特殊文件夹详解

#这里列举出手游开发中用到的缩影特殊文件夹。##1.EditorEditor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以。比如目录:/xxx/xxx/Editor 和 /Editor 是一样的,无论多少个叫Editor的文件夹都可以。Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。一般呢会把一些工具类的脚本放在这里,或者...

2019-01-24 19:32:40 305

原创 Unity中如何查找脚本挂载在哪个物体上(以2017.2版本为例)

1:首先2:弹出一个下面这个窗口3:在Project面板下自动创建一个Editor文件夹 还有一个脚本4:在Editor文件夹里要写两个脚本一个是用来***盛放要被找的那些物体***另个是***盛放你要来查找被物体挂载的脚本:***5:盛放物体代码`using UnityEngine;using UnityEditor;using UnityEngine.TestTools;...

2019-01-24 14:28:18 9939 1

转载 c#基础 ref和out的使用及区别

ref的使用:使用ref进行参数的传递时,该参数在创建时,必须设置其初始值,且ref侧重于修改;out的使用: 采用out参数传递时,该参数在创建时,可以不设置初始值,但是在方法中必须初始化,out侧重于输出;注释:当希望方法返回多个值时,可以用out,并且一个方法中的参数可以有一个或多个out参数;使用 out 参数,必须将参数作为 out 参数显式传递到方法中,但是out 参数...

2019-01-24 09:30:14 142

原创 如何实现Unity和Android手机同步(不发布也能测试)

1:在unityg工具栏下选择Edit——Preferences2:环境配置3:Edit–Project Settings–Edito4:调出Inspector面板 Device选项下选择 Any Android Device5:在手机上下载添加链接描述然后安装6:在手机设置里 找到开发者选项,点上USB调试以魅族手机为例 手机设置里<关于手机> 连点&lt...

2019-01-23 19:50:28 3522 1

原创 C#对象池

@C#对象池对资源的重复利用,减少实例化,#需要一个接口可以命名为 IReusablepublic interface IReusable {//取出时候调用void OnSpawn();//回收调用void OnUnSpawn();}#需要一个抽象类,继承接口,把方法也进行抽象,以供其他类调用的时候重写public abstract class ReusableOb...

2019-01-17 20:22:58 1824

空空如也

空空如也

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

TA关注的人

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