yanrongren
码龄6年
求更新 关注
提问 私信
  • 博客:7,772
    7,772
    总访问量
  • 23
    原创
  • 1
    粉丝
  • 47
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:南非
加入CSDN时间: 2020-08-12
博客简介:

weixin_50035474的博客

查看详细资料
个人成就
  • 获得3次点赞
  • 内容获得2次评论
  • 获得6次收藏
  • 博客总排名1,788,673名
创作历程
  • 23篇
    2021年
成就勋章
TA的专栏
  • 面试
  • 毕设
  • HBase
    3篇
  • #jvm
    6篇
  • javacore
    6篇
  • YARN
    1篇
  • MapReduce
    2篇
  • HDFS
    2篇
  • sql
    1篇
  • Hive
    7篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

兴趣领域 设置
  • 大数据
    hadoophivestormsparketl
创作活动更多

「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令

谁说嵌入式只会“Ctrl+C 调包”和“拿电烙铁焊板子”?2026嵌入式全栈技术征锋令正式启幕! 本次活动专为硬核硬件/软件开发者打造,无论你是刚玩转裸机外设的萌新,还是精通RTOS调度、死磕底层驱动的行业老手,亦或是执掌系统架构的大神,这里都是你证明实力的舞台! 拒绝表面功夫,每一行代码,都有撬动硬件的力量!晒出你的硬核工程实战,为嵌入式开发者的全栈硬实力正名!

211人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

HBase的数据模型和架构

HBase的功能组件 库函数 链接到每个客户端。 一个Master服务器 a、负责管理和维护HBase表的分区信息,(比如,一个表被分成了哪些Region,每个Region被存储在哪台Regin服务器上) b、同时负责维护Region服务器列表。 c、实时监测集群中的Region服务器,把特定的Region分配到可用的Region服务器上,并确保整个集群内部不同Region服务器之间 的负载均衡,当某个Region服务器因出现故障而失效时,Master会把该故障服务器上存储的Region重新分配
原创
博文更新于 2021.04.12 ·
270 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

HBase在建表时的设计原则

预分区 默认建表 HBase默认建表有一个region,这个region的rowkey是没有边界的,即没有startkey和endkey。 在数据写入时,所有的数据都会写入这个默认的region,随着数据量的不断增加,会进行split,分成两个region。 产生的问题 数据往一个region上写,会有写热点问题。 region split会消耗宝贵的IO资源。 解决问题 在建表时,创建多个空的region,并确定每个regionde startkey和endkey,这样只要rowkey设计能均匀的命中各
原创
博文更新于 2021.04.12 ·
459 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RowKey的设计原则

参考文章 rowkey长度原则 建议越短越好,不要超过16字节,原因如下: 数据的持久化文件HFile中是按照keyvalue存储的,如果rowkey过长,这样会极大影响HFile的存储效率。 MemStore将缓存部分数据到内存,如果rowkey字段过长,内存的有效利用率就会降低,系统不能缓存更多的数据,这样就会降低检索效率。 利用了操作系统的最佳特性。 rowkey散列原则 如果rowkey按照时间戳的方式递增,不要将时间放在二进制码的前面,建议将rowkey的高位作为散列字段,由程序随机生成,地
原创
博文更新于 2021.04.12 ·
359 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

jvm运行时数据区

程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环,跳转、异常处理等功能都需要依赖这个计数器来完成。 为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储,称这类内存区域为线程私有的内存。 程序计数器是唯一一个不会出现OutOfMemoryError的内存区域,它的生命周期随着线程的创建而创建,随着线程的结束而死亡。 ja
原创
博文更新于 2021.04.11 ·
119 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java字符串

String String,StringBuffer与StringBuilder的区别
原创
博文更新于 2021.04.11 ·
111 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

垃圾收集算法与垃圾收集器

垃圾收集算法 标记-清除算法 a、首先标记出所有不需要回收的对象,在标记完成后统一回收掉所有没有被标记的对象。 b、产生的问题,效率问题。空间问题,标记清除后会产生大量不连续的碎片。 标记-复制算法 将内存分为大小相同的两块,每次使用其中的一块。 标记整理算法 根据老年代的特点提出的一种标记算法,标记过程与“标记-清除”一样,但后续步骤不是直接回收垃圾对象,而是将存活对象移动到一端,然后清除存活对象边界外的所有空间。 分代收集算法 a、将堆分为新生代和老年代,根据各个年代的特点选择合适的垃圾收集算法。 b
原创
博文更新于 2021.04.11 ·
112 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

双亲委派机制

类加载器 除了BootstrapClassLoader,其他类加载器均由java实现且全部继承自java.lang.ClassLoader BootstrapClassLoader(启动类加载器):最顶层的加载器类,由c++实现,负责加载%JAVA_HOME%/lib目录下的jar包和类或被-Xbootclasspath参数指定的路径中的所有类。 ExtensionClassLoader(扩展类加载器):主要负责加载目录%JRE_HOME%/lib/ext目录下的类,或被java.ext.dirs系统变量
原创
博文更新于 2021.04.11 ·
142 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HotSpot虚拟机在堆中对象分配,布局和访问的过程

对象的创建 类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过,解析和初始化过,如果没有,执行相应的类加载过程。 分配内存 在堆中为对象分配内存。 初始化零值 将分配到的内存空间都初始化为零值。 设置对象头 对象头的内容,对象是哪个类的实例,如何能找到类的元数据信息、对象的hash码,对象的GC分代年龄等信息。 执行init方法 把对象按照程序员的意愿进行初始化。 对象的内存布局 分为3块区域:对象头,实
原创
博文更新于 2021.04.11 ·
220 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

判断对象死亡

引用计数法 给对象添加一个引用计数器,每当有一个地方引用它,计数器就加1;当引用失效,计数器就减1;任何时候计数器为0的对象就是不可能再被使用的。 目前的主流算法并没有选择这个算法来管理内存,主要的原因是很难解决对象之间相互循环引用的问题。 可达性分析算法 基本思想是通过一系列的GC Roots的对象作为起点,从这些节点开始向下搜索,节点走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连的话,则证明此对象是不可用的。 可作为GC Roots的对象 虚拟机栈中引用的对象 本地方法栈中引
原创
博文更新于 2021.04.11 ·
133 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

yarn的job提交流程

用户编写客户端应用程序,向YARN提交应用程序,提交的内容包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序。 YARN中的ResourceManager负责接收和处理来自客户端的请求。接到客户端的请求后,Resource ...
原创
博文更新于 2021.04.08 ·
273 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

MapReduce二次排序

二次排序的原理 map阶段 调用job.setPartitionerClass()对这个Mapper的输出结果进行分区,每个分区映射到一个Reducer。每个分区又调用job.setSortComparatorClass()设置的key比较函数类排序。这本身就是就是一个二次排序。如果没有通过job.setComparatorClass()设置key比较函数类,则使用key实现的compareTo()方法。我们即可以使用IntPair实现的compareTo()方法,也可以专门定义key比较类函数类。 R
原创
博文更新于 2021.04.08 ·
254 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MapReduce全排序

方法一: 每个map任务对自己的输入数据进行排序,但是无法做到全局排序,需要将数据传递到reduce,然后通过reduce进行一次总的排序,但是这样做的要求是只有一个reduce任务来完成。 并行度不高,无法发挥分布式计算的特点。 方法二: 使用多个partition对map的结果进行分区,且分区后的结果是有区间的,将多个分区结果拼接起来,就是一个连续的全局排序文件。 hadoop自带的Partitioner的实现有两种,一种为HashPartitioner,默认的分区方式,另一种为TotalOrde
原创
博文更新于 2021.04.08 ·
258 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HDFS架构

参考文章
原创
博文更新于 2021.04.08 ·
141 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HDFS的读写过程

HDFS的读写过程 相关的类 FileSystem是一个通用文件系统的抽象类,可以被分布式文件系统继承,所有可能使用Hadoop文件系统的代码都要使用到这个类。 Hadoop为FileSystem这个抽象类提供了多种具体的实现,DistributedFileSystem就是FileSystem在HDFS中的实现。 FileSystem中的open()方法返回的是一个输出流FSDataInputStream对象,在HDFS文件系统中具体输入流就是DFSInputStream;FileSystem中的crea
原创
博文更新于 2021.04.08 ·
1025 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

按某个属性分组,找出每组另一属性topN

sql 参考文章
原创
博文更新于 2021.04.07 ·
114 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

srot by,order by,cluster by,distrbute by

参考文章 order by Hive中的order by 跟传统的sql语言中的order by作用是一样的,会对查询结果做一次全局排序,只有Hive的sql中制定了order by所有的数据都会到同一个reducer进行处理。对于大量数据这将会消耗很长时间执行。 跟传统sql的区别:如果指定了hive.mapred.mode=strict(默认是nonstrict),这时就必须指定limit来限制输出条数,原因是:所有的数据都会都会在同一个reducer端进行,数据量大的请况下可能不能出结果,那么在这.
原创
博文更新于 2021.04.05 ·
195 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive数据类型

Hive简介及核心概念 简介 Hive是一个构建在Hadoop之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类SQL查询功能,用于查询的SQL语句会被转化为MapReduce作业,然后提交到Hadoop上运行。 特点: 简单,容易上手,提供了类似sql的查询语言,使得精通sql但是不了解java编程的人也能很好地进行大数据分析。 灵活性高,可以自定义用户函数和存储格式。 为超大的数据集设计的计算和存储能力,集群扩展容易。 统一的元数据管理,可以与presto/impala/sparksql等共享数
原创
博文更新于 2021.04.05 ·
510 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive有哪些方式保存元数据,各有什么特点。

Hive支持三种不同的元存储服务器,分别是内嵌式元存储服务器,本地元存储服务器,远程元存储服务器,每种存储方式使用不同的配置参数。 内嵌式元存储主要用于单元测试,在该模式下每次只有一个进程可以连接到元存储,Derby是内嵌式元存储的默认数据库。 在本地模式下,每个Hive客户端都会打开到数据存储的连接并在该连接上请求SQL查询。 在远程模式下,所有的Hive客户端都将打开一个到元数据服务器的连接,该服务器依次查询元数据,元数据服务器和客户端之间用Thrift协议通信。 ...
原创
博文更新于 2021.04.05 ·
1535 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Hive的函数:UDF,UDAF,UDTF的区别

参考文章 UDF函数可以直接应用于select语句,对查询结构做格式化处理后,再输出内容。 编写UDF函数 自定义UDF需要继承org.apache.hadoop.hive.ql.UDF。 需要实现evaluate函数。 evaluate函数支持重载。 使用 ...
原创
博文更新于 2021.04.05 ·
739 阅读 ·
1 点赞 ·
1 评论 ·
4 收藏

内部表和外部表

内部表和外部表 内部表和外部表的区别 创建表时,未被external修饰的是内部表,被external修饰的为外部表。 内部表数据存储的位置是hive.metastore,warehouse.dir,外部表数据的存储位置由自己制定。 如果没有Location,Hive将在HDFS上的/user/hive/warehouse文件夹以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里。 删除内部表会直接删除元数据及存储数据,删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除。 ...
原创
博文更新于 2021.04.05 ·
314 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多