Hadoop2.X/YARN环境搭建--CentOS7.0 JDK配置

时间:2021-10-02 04:18:50

hadoop是java写的,他无法使用linux预安装的openjdk,因此安装hadoop前需要先安装jdk(1.6以上)

原材料:在oracle官网下载的32位jdk:

Hadoop2.X/YARN环境搭建--CentOS7.0 JDK配置

Hadoop2.X/YARN环境搭建--CentOS7.0 JDK配置

Hadoop2.X/YARN环境搭建--CentOS7.0 JDK配置

说明:

1、centos 7.0系统现在只有64位的,但是,hadoop一般支持32位的,在64位环境下有事会有warning出现,避免真的有神马问题,选择i586的jdk(即32位的),当然,64位的centos 7 肯定是兼容32位jdk的,记住:64位系统肯定兼容32位的软件,32位系统不能兼容64位软件。64位只是说明了cpu一次运算的位数为64位,比32位多,64位性能更高。

2、以前的linux版本jdk有”.bin”文件可供下载,但是,现在官网只提供rpm的安装包与tar.gz的压缩包了,rpm安装包是redhat系列系统(redhat/rhel/fedora/centos)特有的安装文件,直接运行即可,但我们不知道其中的配置方法。所以,为接近底层,我选择tar.gz的压缩包予以安装。

安装方式:

自带的openjdk与之后安装的jdk,不可兼得,故而有两种操作:1、卸载删除原有的openjdk,再安装jdk    2、二者依然共存,但是,配置何者为真正有效的jdk

method 1: 卸载删除原有的openjdk,再安装jdk

第一步:卸载删除openjdk

卸载删除openjdk,首先需要知道到底要删除哪些东西:

Hadoop2.X/YARN环境搭建--CentOS7.0 JDK配置

?
1
[randy@localhost ~]$ rpm -qa|grep openjdk -i #查找已经安装的openjdk,-i表示忽略“openjdk”的大小写

 

现在将之全部删除:

?
1
[randy@localhost ~]$ sudo yum remove java-1.6.0-openjdk-devel-1.6.0.0-6.1.13.4.el7_0.x86_64 java-1.7.0-openjdk-devel-1.7.0.65-2.5.1.2.el7_0.x86_64 java-1.7.0-openjdk-headless-1.7.0.65-2.5.1.2.el7_0.x86_64 java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el7_0.x86_64 java-1.6.0-openjdk-1.6.0.0-6.1.13.4.el7_0.x86_64#用redhat系列系统自带的yum进行删除openjdk,yum类似ubuntu中的apt-get,均用于安装、卸载及更新系统自带的软件,注意:以上均以空格间隔

 

第二步:安装jdk

 

1、解压

首先解压下载得来的jdk:(jdk的tar.gz压缩包放在了~/dev目录下)

?
1
[randy@localhost ~]$ sudo mkdir /usr/lib/jdk #如若没有/usr/lib/jdk路径,则执行此句予以创建jdk文件夹<br>[randy@localhost ~]$ sudo tar -zxvf jdk-8u11-linux-i586.tar.gz -c /usr/lib/jdk #注意:-c, --directory=dir        改变至目录 dir<br>[randy@localhost ~]$  ls /usr/lib/jdk<br>jdk1.8.0_11<br>[randy@localhost ~]$ ls /usr/lib/jdk/jdk1.8.0_11/<br>bin        javafx-src.zip  man          thirdpartylicensereadme-javafx.txt<br>copyright  jre             readme.html  thirdpartylicensereadme.txt<br>db         lib             release<br>include    license         src.zip<br>[randy@localhost ~]$

移动jdk1.8.0_11中的文件到/usr/lib/jdk,并删除jdk1.8.0_11文件夹:

?
1
[randy@localhost ~]$ sudo cp -rf /usr/lib/jdk/jdk1.8.0_11/* /usr/lib/jdk/ #移动<br>[randy@localhost ~]$ <br>[randy@localhost ~]$  ls /usr/lib/jdk<br>bin        javafx-src.zip  license      src.zip<br>copyright  jdk1.8.0_11     man          thirdpartylicensereadme-javafx.txt<br>db         jre             readme.html  thirdpartylicensereadme.txt<br>include    lib             release<br>[randy@localhost ~]$ sudo rm -rf /usr/lib/jdk/jdk1.8.0_11/ #删除<br>[randy@localhost ~]$  ls /usr/lib/jdk<br>bin        javafx-src.zip  man          thirdpartylicensereadme-javafx.txt<br>copyright  jre             readme.html  thirdpartylicensereadme.txt<br>db         lib             release<br>include    license         src.zip<br>[randy@localhost ~]$

 

2、配置环境变量

?
1
[randy@localhost ~]$ sudo vim /etc/profile<br>在最后一行插入:
?
1
#java environment<br>export java_home=/usr/lib/jdk<br>export jre_home=/usr/lib/jdk/jre<br>export path=$java_home/bin:$jre_home/bin:$path<br>export classpath=$classpath:.:$java_home/lib:$jre_home/lib

3、修改系统默认的jdk

?
1
[randy@localhost ~]$  sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/bin/java 300  #使系统默认的java命令是/usr/lib/jdk/bin中的java命令<br>[randy@localhost ~]$  sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/bin/javac 300  #使系统默认的javac命令是/usr/lib/jdk/bin中的javac命令<br>  [randy@localhost ~]$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jdk/bin/jar 300 #使系统默认的jar命令是/usr/lib/jdk/bin中的jar命令 <br>[randy@localhost ~]$  sudo update-alternatives --config java   #配置默认java命令<br>共有 1 个提供“java”的程序。<br>  选项    命令<br>-----------------------------------------------<br>*+ 1          /usr/lib/jdk/bin/java<br>按 enter 保留当前选项[+],或者键入选项编号:1<br>[randy@localhost ~]$ sudo update-alternatives --config javac   #配置默认java命令<br>共有 1 个提供“java”的程序。<br>  选项    命令<br>-----------------------------------------------<br>*+ 1          /usr/lib/jdk/bin/javac<br>按 enter 保留当前选项[+],或者键入选项编号:1

第三步:测试jdk

?
1
[randy@localhost ~]$ java -version<br>java version "1.8.0_11"<br>java(tm) se runtime environment (build 1.8.0_11-b12)<br>java hotspot(tm) server vm (build 25.11-b03, mixed mode)<br>[randy@localhost ~]$ javac -version<br>javac 1.8.0_11<br>

测试是遇到了一个问题:

?
1
[randy@localhost ~]$ java<br>-bash: /usr/bin/java: /lib/ld-linux.so.2: bad elf interpreter: 没有那个文件或目录<br>[randy@localhost ~]$ ls /lib/ld-linux<br>ls: 无法访问/lib/ld-linux: 没有那个文件或目录<br>[randy@localhost ~]$ java -version<br>-bash: /usr/bin/java: /lib/ld-linux.so.2: bad elf interpreter: 没有那个文件或目录<br>[randy@localhost ~]$

解决方法是:

?
1
[randy@localhost ~]$ sudo yum install glibc.i686 #在64系统里执行32位程序如果出现/lib/ld-linux.so.2: bad elf interpreter: no such file or directory,安装下glic即可

 

method 2: 二者共存,配置何者为真正有效的jdk

与method1类似,只是不需要卸载删除openjdk

1、解压

首先解压下载得来的jdk:(jdk的tar.gz压缩包放在了~/dev目录下)

?
1
[randy@localhost ~]$ sudo mkdir /usr/lib/jdk #如若没有/usr/lib/jdk路径,则执行此句予以创建jdk文件夹<br>[randy@localhost ~]$ sudo tar -zxvf jdk-8u11-linux-i586.tar.gz -c /usr/lib/jdk #注意:-c, --directory=dir        改变至目录 dir<br>[randy@localhost ~]$  ls /usr/lib/jdk<br>jdk1.8.0_11<br>[randy@localhost ~]$ ls /usr/lib/jdk/jdk1.8.0_11/<br>bin        javafx-src.zip  man          thirdpartylicensereadme-javafx.txt<br>copyright  jre             readme.html  thirdpartylicensereadme.txt<br>db         lib             release<br>include    license         src.zip<br>[randy@localhost ~]$

 

移动jdk1.8.0_11中的文件到/usr/lib/jdk,并删除jdk1.8.0_11文件夹:

?
1
[randy@localhost ~]$ sudo cp -rf /usr/lib/jdk/jdk1.8.0_11/* /usr/lib/jdk/ #移动<br>[randy@localhost ~]$ <br>[randy@localhost ~]$  ls /usr/lib/jdk<br>bin        javafx-src.zip  license      src.zip<br>copyright  jdk1.8.0_11     man          thirdpartylicensereadme-javafx.txt<br>db         jre             readme.html  thirdpartylicensereadme.txt<br>include    lib             release<br>[randy@localhost ~]$ sudo rm -rf /usr/lib/jdk/jdk1.8.0_11/ #删除<br>[randy@localhost ~]$  ls /usr/lib/jdk<br>bin        javafx-src.zip  man          thirdpartylicensereadme-javafx.txt<br>copyright  jre             readme.html  thirdpartylicensereadme.txt<br>db         lib             release<br>include    license         src.zip<br>[randy@localhost ~]$

 

2、配置环境变量

?
1
[randy@localhost ~]$ sudo vim /etc/profile<br>在最后一行插入:
?
1
#java environment<br>export java_home=/usr/lib/jdk<br>export jre_home=/usr/lib/jdk/jre<br>export path=$java_home/bin:$jre_home/bin:$path<br>export classpath=$classpath:.:$java_home/lib:$jre_home/lib

3、修改系统默认的jdk

?
1
[randy@localhost ~]$  sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/bin/java 300  #使系统默认的java命令是/usr/lib/jdk/bin中的java命令<br>[randy@localhost ~]$  sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/bin/javac 300  #使系统默认的javac命令是/usr/lib/jdk/bin中的javac命令<br>  [randy@localhost ~]$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jdk/bin/jar 300 #使系统默认的jar命令是/usr/lib/jdk/bin中的jar命令 <br>[randy@localhost ~]$  sudo update-alternatives --config java   #配置默认java命令<br>  共有 3 个提供“java”的程序。<br>    选项    命令<br>-----------------------------------------------<br>*  1           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el7_0.x86_64/jre/bin/java<br>          /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java<br> + 3           /usr/lib/jdk/bin/java<br>  按 enter 保留当前选项[+],或者键入选项编号:3<br>[randy@localhost ~]$ sudo update-alternatives --config javac   #配置默认java命令<br>  共有 3 个提供“javac”的程序。<br>    选项    命令<br>-----------------------------------------------<br>*  1           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el7_0.x86_64/jre/bin/javac<br>          /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/javac<br> + 3           /usr/lib/jdk/bin/javac<br>  按 enter 保留当前选项[+],或者键入选项编号:3<br>  [randy@localhost ~]$

第三步:测试jdk

?
1
[randy@localhost ~]$ java -version<br>java version "1.8.0_11"<br>java(tm) se runtime environment (build 1.8.0_11-b12)<br>java hotspot(tm) server vm (build 25.11-b03, mixed mode)<br>[randy@localhost ~]$ javac -version<br>javac 1.8.0_11

 

测试是遇到了一个问题:

?
1
[randy@localhost ~]$ java<br>-bash: /usr/bin/java: /lib/ld-linux.so.2: bad elf interpreter: 没有那个文件或目录<br>[randy@localhost ~]$ ls /lib/ld-linux<br>ls: 无法访问/lib/ld-linux: 没有那个文件或目录<br>[randy@localhost ~]$ java -version<br>-bash: /usr/bin/java: /lib/ld-linux.so.2: bad elf interpreter: 没有那个文件或目录<br>[randy@localhost ~]$

解决方法是:

?
1
[randy@localhost ~]$ sudo yum install glibc.i686 #在64系统里执行32位程序如果出现/lib/ld-linux.so.2: bad elf interpreter: no such file or directory,安装下glic即可

附:

说完了jdk的环境配置,顺便聊聊centos 7自带的数据库mariadb的设置。

现在,rhel 7/centos 7自带的数据库都不再是mysql了,主要是因为开源的能力更大,现在google也正将其数据从mysql迁移到mariadb。为体验最先进的思想,以后我的hive数据库平台将是mariadb

 

系统装好后,系统的mariadb服务是出于stop状态的,所以应该先启动服务:

?
1
[randy@localhost ~]$ sudo systemctl start mariadb  #之前centos版本执行sudo service mariadb start,而centos7执行service 命令也可生效,但提示:redirecting to /bin/systemctl start  mariadb.service<br>[randy@localhost ~]$ sudo systemctl stop mariadb  #停止mariadb服务<br>[randy@localhost ~]$ sudo systemctl status mariadb  #查看mariadb状态<br>[randy@localhost ~]$

 

设置mariadb的root密码为“root”:

命令格式:

sudo mysqladmin -u 用户名 password "新密码"

如果root已经设置过密码,采用如下方法:

sudo mysqladmin -u 用户名 password 旧密码 "新密码"

由于安装系统后没有密码,所以设定root用户密码为“root”:

?
1
[randy@localhost ~]$ sudo mysqladmin -u root password "root"

 

测试:

?
1
[randy@localhost ~]$ mysql -u root -proot

显示:

?
1
welcome to the mariadb monitor.  commands end with ; or \g.<br>your mariadb connection id is 3<br>server version: 5.5.37-mariadb-log mariadb server<br>copyright (c) 2000, 2014, oracle, monty program ab and others.<br>type 'help;' or '\h' for help. type '\c' to clear the current input statement.<br>mariadb [(none)]>