- 博客(23)
- 收藏
- 关注
原创 静态方法使用
使用静态方法有一些正当理由: 性能:如果您希望运行某些代码,并且不希望实例化额外的对象,请将其推送到静态方法中。JVM也可以大量优化静态方法(我想我曾经读过James Gosling声明你不需要JVM中的自定义指令,因为静态方法会同样快,但找不到源 - 因此它可能是完全错误的)。是的,它是微优化,可能不需要。而且我们程序员从不做不需要的东西只是因为它们很酷,对吧? 实用性:而不是呼...
2019-09-27 19:05:23 654
转载 String的不可变性及String常量池
When---什么时候需要了解String的intern方法:面试的时候(蜜汁尴尬)!虽然不想承认,不过面试的时候经常碰到这种高逼格的问题来考察我们是否真正理解了String的不可变性、String常量池的设计以及String.intern方法所做的事情。但其实,我们在实际的编程中也可能碰到可以利用String.intern方法来提高程序效率或者减少内存占用的情况,这个我们等下会细说。...
2019-09-26 23:57:03 177
原创 数据倾斜
分组 注:group by 优于distinct group情形:group by 维度过小,某值的数量过多后果:处理某值的reduce非常耗时去重 distinct count(distinct xx)情形:某特殊值过多后果:处理此特殊值的reduce耗时连接 join情形1:其中一个表较小,但是key集中后果1:分发到某一个或几个Reduce上的数据远高于平均值情形2:大表与大表,但是分桶的判...
2018-04-11 22:24:08 257
转载 RDD
RDD 是什么 RDD 是怎么形成的 RDD 的依赖关系RDD 的内部结构 个人感觉 面试 以上四个问题 就基本可以把大部分给涮下去 成火锅RDD 是什么 RDD 是spark 整个 体系中最重要的概念 RDD (Resilient Distributed DataSet) 中文就是 弹性分布式数据集 ,弹性 ----简单解释就是RDD 是可以横向多分区的 ,纵向概念理解起来可能更容易 ,...
2018-03-28 16:17:17 210
原创 关于spark中cache和广播变量的区别
RDD分为多个分区。这些分区本身充当整个RDD的不可变子集。当Spark执行图的每个阶段时,每个分区都会被发送给一个工作在该数据子集上的工作者。反过来,如果RDD需要重新迭代,每个工作人员可以缓存数据。广播变量用于向每个工作人员发送一次不可变状态。当你想要一个变量的本地副本时使用它们。这两个操作彼此完全不同,每个操作代表一个不同问题的解决方案。当持久化 RDD时,每个节点都会存储它在内存中计算的所...
2018-03-28 15:07:14 3225 1
原创 spark中cache和persist的区别
cache和persist的区别基于Spark 1.4.1 的源码,可以看到/** Persist this RDD with the default storage level (`MEMORY_ONLY`). */def cache(): this.type = persist()123说明是cache()调用了persist(), 想要知道二者的不同还需要看一下persist函数:/**...
2018-03-27 17:12:19 380
原创 关于hadoop的基础记录
hdfs1.为什么HDFS系统的分块大小为64,128,256mb效率最高? 1.1 分块过小 1.1.1 导致硬盘寻址时间长 1.1.2 消耗namenode的内存大,namenode的内存资源是宝贵的,减少分块信息内存消耗可以让namenode 去做更多其他的事情。 1.2 分块过大 1.2.1 发生监管时间问题,namenode无法估计datanode是...
2018-03-27 11:51:27 280
原创 scala map源码了解高级函数
def main(args: Array[String]): Unit = { //b是使用的数组 val b = Array(1,2,3,4) //map的形参中输入函数的类型 => 输出的函数类型 a作为函数的形参名称 def map(a:Int=>Int)= { for (i <- 0 to b.length-1) b(...
2018-03-23 11:53:30 696
原创 Could not open client transport with JDBC Uri: jdbc:hive2://slaver2:10000: java.net.ConnectException
这个是因为hive中的hiveServer2没有启动起来,启动的命令是: hive --service hiveserver2
2018-03-12 10:03:36 6742
原创 idea maven开发spark程序的pom文件
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spark.version>2.1.2</spark.version> <scala.version>2.11.8</scala.v...
2018-03-07 15:39:37 1779
原创 关于修改mysql的密码限制
1. 命令 mysql -uroot 登录 MySQL2. 跑这一句后回车,更改强度为 LOW,LOW 代表什么?代表密码任意,但长度在 8 位或以上。 你要问我 MEDIUM 这个强度代表什么……代表密码包括:数字、大写字母、小写字母、特殊符号、长度 8 位以上。 那个 STRONG 我就不解释了。。。[sql] view pl
2018-01-22 16:18:08 1379
原创 关于hadoop2.7.3以上版本无法启动nodeManger的异常的处理
解决方法:更改yarn-site.xml的配置文件(如下) yarn.nodemanager.resource.memory-mb 1536 yarn.nodemanager.resource.cpu-vcores 1 2.7.3以上版本至少需要1536以上的内存。
2018-01-20 13:47:29 635
原创 解决centos7 mysql无法启动的异常
我在启动mysql的时候报了如上图的错误,查看错误日志 vim /var/log/mysqld.log 看下图:查看free swap为空 所以我们需要添加 swap内存1、首先查看swap大小# freetotal used free shared buffers cachedMem:
2018-01-19 17:58:31 11111
原创 handoop安装完hbase无法打开web界面的解决方法
如果你还没有安装hbase:hbase安装:http://blog.csdn.net/pucao_cug/article/details/72229223解决如下:如果此时不能访问那有可能是hadoop没有离开安全模式的原因,此时当在hbase shell下创建表时,出现MasterNotRunningException异常,list、get等不能正常执行,通过Java
2018-01-16 15:54:24 2378
转载 nginx优化
Nginx配置文件性能微调全局的配置user www-data; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofile 100000; worker_process定义了nginx对外提供Web服务时的worker进程数,起始可以设置为CPU的核数,CPU核数是多少就设置为多少(设置
2018-01-12 15:40:59 272
原创 TOMCAT优化,提高并发能力
很多时候,明明自己的服务器配置很高,可是在高并发时的性能并不好,这个时候就要考虑是不是TOMCAT服务器的性能限制了并发,如果你还在烦恼服务器的性能低下,时不时的报连接失败connection refused。那就请往下看,客官您请:1 .tomcat的server.xml的默认最大连接数是200,即maxThreads="200",请求等待连接数为100,即acceptCount="10
2018-01-12 11:22:41 5472
转载 centos7 上的tomcat性能调优
一、jvm内存优化方案。 要优化服务器,首先从jvm入手,分配好jvm内存,配置方案如下: JAVA_OPTS=" -server -Xms2048M -Xmx2048M -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Xmn1000M -Xss1024k -XX:+AggressiveOpts -XX:+
2018-01-11 12:44:35 2563
转载 三台阿里云服务器搭建完全分布式hadoop
1.准备工作:jdk安装(个人选择的1.8版本) 2.ssh免密登陆: 关闭放火墙(可以将要开放的端口加入防火墙的开发端口中,学习用就直接关闭防火墙了): 1)关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
2018-01-04 15:27:29 3369 2
原创 利用匿名内部类调用其他包中的protected的方法
首先我们在一个包中新建一个test类,如图:test类方法中有一个show方法,但是被限制为protected,了解过java基础的童鞋应该都知道protected调用只限于当前包与父子类中可以访问,所以为了能在其他包中可以访问,在这里我用了匿名内部类继承的方式来调用,如图:这样我们就可以愉快的访问啦。
2018-01-04 15:12:39 805
转载 centos7 tomcat启动过慢解决方法
第一次遇到Tomcat在Linux服务器启动卡住的情况,情况很简单,tomcat启动以后卡在INFO: Deploying web application directory ......这句话,具体会卡多久就没测试了。google、baidu都没找到解决方法。幸亏UCloud的技术支持人员给出了解决方案。找到jdk1.x.x_xx/jre/lib/security/java.se
2018-01-04 11:23:38 576
转载 JAVA虚拟机:新生代和老年代GC
Java堆可以分为新生代和老年代两个区,其中新生代又可以分为一个Eden区和两个Survivor区,两个Survivor区分别被命名为From和To以示区分,新生代和老年代的比例为1:2,它们共同组成堆的内存区,所以新生代占堆的1/3,老年代占2/3,但这个比例可以修改,下面分别来介绍一下新生代和老年代。1、【新生代】新生代分为三个区域,一个Eden区和两个Survivor区,它们
2017-10-10 09:15:45 296
原创 java 计算金额需要的面值为100,50,20,10,5,1的张数
//设计一个自动计算需要面值金钱的算法//假设有 100 50 20 10 5 1的面值的钱public class money { long money;public money(long money){this.money=money;}long [] ccc={100,50,20,10,5,1};long [] ddd=new long[6];pub
2017-10-09 12:38:21 3594
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人