sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer
sudo apt install oracle-java8-set-default
[......]
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer
sudo apt install oracle-java8-set-default
[......]
在昨天的文章 TimSort in Java 7 中,我们讨论了升级到JDK 7后,Collection的sort方法,出现兼容性问题的原因。
究其根本,还是我们写的compare函数不够严谨。
本文主要针对Hadoop、Hive,从系统的部署、配置层面提出一些解法。
1、Hive
在执行前,指定JVM选项。
set mapreduce.map.java.opts=-Xmx2000m -Djava.util.Arrays.useLegacyMergeSort=true[......]
1. 为什么写这篇文章
这篇文章的根源是在产品中发现了一个诡异的bug:只能在产品环境下重现,在我的本地开发环境无法重现,而双方的代码没有任何区别。最后用remote debug的方法找到异常所在:
Exception in thread "main" java.lang.IllegalArgumentException: Comparison
method violates its general contrac[......]
由于服务器是共用的,不给root权限,所以只能用解压缩,安装到自己home的方式来安装jdk。
1、下载最新JDK
#下载
wget http://cds-esd.sun.com/ESD6/JSCDL/jdk/6u24-b07/jdk-6u24-linux-x64.bin?AuthParam=1303266937_f832ac172b27d2af47ebec23c9a3fae1&TicketId=nod2BlEYQ3d%2BnusqlEOZWZiZcg%3D%3D&Gr[......]
在10.04之后,貌似sun-java-jdk就不是默认的源中的了,被作为第三方的了。
[shell]
add-apt-repository "deb http://archive.canonical.com/ lucid partner"
apt-get update
apt-get install sun-java6-jdk sun-java6-plugin
[/shell][......]