xjjdlut
码龄19年
关注
提问 私信
  • 博客:36,650
    36,650
    总访问量
  • 39
    原创
  • 1,187,485
    排名
  • 10
    粉丝
  • 0
    铁粉

个人简介:大数据技术爱好者,分享学习大数据技术过程中的心得和笔记

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:美国
  • 加入CSDN时间: 2006-04-21
博客简介:

xjjdlut的专栏

查看详细资料
个人成就
  • 获得8次点赞
  • 内容获得1次评论
  • 获得40次收藏
  • 代码片获得108次分享
创作历程
  • 11篇
    2020年
  • 25篇
    2019年
  • 1篇
    2011年
  • 2篇
    2008年
成就勋章
TA的专栏
  • java
    11篇
  • 大数据
    22篇
  • Linux
    4篇
  • hive
    17篇
  • hdfs
    1篇
兴趣领域 设置
  • 大数据
    hadoophivestormsparketl
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

深入浅出JVM之字节码执行

1.javap反汇编工具javap是jdk自带的反汇编工具,可以通过该命令查看编译后的class文件的常量池、字段以及方法等信息。对于下面的这个类:public class CalcCirc { public int doCalc() { int a=10; int b=20; int c=2; return (a+b)*c; }}使用javap -v CalcCi...
原创
发布博客 2020.04.13 ·
483 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

深入浅出JVM之Class文件结构

一、语言无关性jvm并不是只支持java语言,其他的语言如groovy,scala,ruby等,只要能够生产class文件,都可以在jvm上运行。最新版本的jvm上甚至还增加了一些新的指令,这些指令在java语言中无法使用,而在动态语言如groovy中才能使用。所以class文件才是jvm运行的基石。二、文件结构用二进制文件打开工具Notepad++或Winhex打开一个class文件,可以...
原创
发布博客 2020.04.09 ·
272 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

深入浅出JVM之锁及优化方法

一、线程安全当多个线程同时修改一个变量时会有线程安全问题,如果要保证这个变量时全局唯一进行修改,就需要给这个变量加锁,加锁后能够保证该变量的修改是串行进行的,因此该变量时线程安全的。但是需要牺牲一定的性能。比如ArrayList,该对象不是线程安全的,当线程A对该对象增加数据的时候,线程B也可以对该对象增加数据,当线程A的数组存储空间不足时会自动申请扩展空间,此时数据是不可用状态,而此时线程B...
原创
发布博客 2020.04.07 ·
222 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深入浅出JVM之Java堆分析

一、内存溢出(OOM)的原因jvm中可能引起内存溢出的内存区域有堆、永久区、线程栈和直接内存。其中堆保存了所有的对象的内容,永久区保存对象的信息。这四个区域的内存空间得不到满足都有可能导致内存溢出。堆溢出由于对象不断的占用分配的空间,而这些对象的引用也没有及时的释放,堆的空间不断被占用,最终导致内存溢出。解决办法是增大堆空间,及时释放内存(减少对象被引用的时间)永久区由于系统中类的数量太...
原创
发布博客 2020.04.02 ·
190 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深入浅出JVM之类装载器

class装载验证流程1.加载:这装载类的第一个阶段,取得类的二进制流,有三种方式,一个是直接从本地class文件获取,一个是从jar包中获取,一个是通过远程调用从网络获取类的二进制流。将类的内容(常量、字段和方法信息)转换为方法区的数据结构,然后在Java堆中生产对应的java.lang.Class对象。2.链接2.1验证:​ 保证Class二进制流的格式是否正确。​...
原创
发布博客 2020.04.01 ·
124 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深入浅出JVM之GC参数

一、堆的结构edens0s1tenured一个对象被创建后一般是会放在eden区的,但也有例外,比如局部变量会在栈上分配,超过一定阈值的大对象会直接放在老年代。s0和s1是幸存代,使用复制算法来复制对象,所以s0和s1的内存大小是一样的。当对象经过多次垃圾回收还存在的话就会被标记为老年对象,会将该对象放入到老年代(tenured)中。二、串行收集器最古老,...
原创
发布博客 2020.04.01 ·
152 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深入浅出JVM之GC算法与种类

1.GC的概念Garbage Collection垃圾收集,在C或C++语言中,内存空间由程序员来释放,但是Java语言中程序员不会单独操作内存空间,所以内存释放需要由JVM来实现。在Java中,GC对象是堆空间和永久区。2.引用计数法老牌垃圾回收算法,通过计算对象的引用计数来标记对象是否是垃圾。该算法会为每个对象记录一下引用的次数,如果有一次引用就记录为1,如果有三次引用就标记为3,如果用...
原创
发布博客 2020.04.01 ·
136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深入浅出JVM之性能监控工具

一、系统性能监控linux操作系统中有很多命令可以查看应用程序的性能情况,下面介绍一下这些常用的命令:uptime:可以查看的信息有系统时间,运行时间,连接数-其中每一个终端算一个连接,1,5,15分钟内的系统平均负载,也就是运行队列中的平均进程数。这是一个操作系统级的命令,可以查看当前操作系统的整体的状况如何。top:常用的系统性能监控命令,可显示当前进程的cpu利用率和内存使用率,找到...
原创
发布博客 2020.04.01 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深入浅出JVM之常用jvm配置参数

1.Trace跟踪参数-verbose:gc 打开GC功能-XX:+printGC 打开GC日志在控制台显示-XX:+PrintGCTimeStamps 打印GC发生的时间戳-XX:+PrintGCDetails 打开GC详细信息,在程序调用结束后会打印出详细的堆内存信息,下面是在64位jdk1.7版本下使用参数:-Xmx10m -Xms10m -XX:+PrintGCDetails -X...
原创
发布博客 2020.03.31 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

深入浅出JVM之JVM运行机制

一、JVM启动流程启动jvm首先在命令窗口输入java命令,该命令会根据当前路径和系统版本寻找jvm.cfg(该配置文件一般在JAVA_HOME/jre/lib/amd64文件夹下),来加载jvm的配置文件,根据这个配置文件寻找jvm.dll(JAVA_HOME\jre\bin\server),jvm.dll是jvm的主要实现。然后初始化JVM获得JNIEnv接口,java中通过findClas...
原创
发布博客 2020.03.31 ·
203 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

深入浅出JVM之JVM入门知识

一、Java语言规范:1.java语法java的语法比较简单,对于分支语句的结构如下:if then Statement:if(Expression) Statement对应的代码如下:if(true){do sth;}ArgumentList:在定义一个方法时可能需要指定方法的参数,这个参数个数可以是固定的,也可以是不固定的。jdk1.7之后支持多个参数2.词法结构:在源代...
原创
发布博客 2020.03.31 ·
198 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HDFS架构

1.来源HDFS来源于Google在2003年10月份发表的FGS论文:《The Google File System》,HDFS是GFS克隆版。HDFS的全称是Hadoop Distributed File System。它是易于扩展的分布式文件,运行在大量的普通廉价机器上,提供了很好的容错机制。能够为大量用户提供新能不错的文件存取服务。2.结构介绍HDFS上的文件是以块来进行存储的...
原创
发布博客 2019.08.15 ·
313 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive高阶之显示数据库名称和字段名

在hive中默认是不显示数据库的名称和数据表的字段名称的,这样我们在hive进行查询的时候就会发现不是很方便。默认hive的客户端执行方式如下:[root@node3 ~]# sudo -u hive hiveLogging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.15.2-1.cdh5.1...
原创
发布博客 2019.03.13 ·
913 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

Hive高阶之数据压缩详解

一般在hadoop集群上运行一个MapReduce会有以下步骤:input-> Map-> shuffle -> reduce -> output如果我们采用了数据压缩,在map阶段产生的数据大小就会减少,会减少磁盘的IO,同时还能够减少网络的IO。Linux操作系统中常见的压缩格式是bzip2、gzip、lzo、snappy这四种,这四种压缩方法的比较如下:压...
原创
发布博客 2019.03.12 ·
225 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Hive高阶之数据压缩

Hive的压缩依赖于MapReduce的支持,也就是安装的hadoop组件,如果不支持的话就需要自行编译。常用的压缩方法是snappy压缩,而这种压缩方法依赖于操作系统的snappy组件,所以hadoop组件一般不默认编译,如果要支持的话就需要重新进行编译。好在CDH版本已经支持压缩方法了,不需要重新进行编译。我们可以通过hadoop命令查看当前的hadoop集群是否支持snappy压缩。[ro...
原创
发布博客 2019.03.08 ·
283 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive高阶之Beeline与JDBC

从这篇笔记开始我们开始进入Hive的高级部分,这其中包括HiveServer2、Hive数据压缩、hive数据存储、hive企业优化等。首先看一下HiveServer2,该工作作为Hive的一个server端进行启动,供其他的工具使用。之前的hive基础知识部分的笔记都是以hive client为基础的,如果想用其他的工具比如jdbc、spark sql来使用hive就需要启动HiveServe...
原创
发布博客 2019.03.04 ·
2198 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

HeadFirst PMP 2nd Edition

发布资源 2019.03.01 ·
pdf

概率论与数理统计

发布资源 2019.03.01 ·
pdf

Hive基础之UDF编程

UDF指用户定义函数,即在hive中进行客户化的函数,hive中自定义了很多function,我们使用show function命令可以很容易查看已有函数的用法:hive (default)> desc function split;OKtab_namesplit(str, regex) - Splits str around occurances that match regex...
原创
发布博客 2019.03.01 ·
475 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive基础之排序查询

hive中排序查询的语法见:LanguageManual SortBy,排序中包括ORDER BY, SORT BY, CLUSTER BY, and DISTRIBUTE BY四种方法。1.order byorder by是与关系型数据库的用法是一样的,还以员工表emp为例,按照员工编号降序进行排列的查询语句如下:select * from emp order by empno desc;...
原创
发布博客 2019.03.01 ·
346 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多