本文主要介绍了如何布置hadoop3.x集群的jdk和hadoop依赖
前言
我在如何部署hadoop集群 (一)中已经布置好了一台虚拟机, 接下来我们需要在这一台虚拟机上安装jdk和hadoop依赖, 以便我们后续的hadoop集群部署。
什么是JDK
JDK
是Java Development Kit
的缩写,是Java开发工具包。它是Java开发人员使用的软件开发工具包,包含了Java运行环境(JRE)、Java编译器(javac)和Java调试器(jdb)等工具。JDK是Java开发的基础,它提供了Java程序开发所需的所有工具和环境。Hadoop3.x是基于Java开发的,因此需要安装JDK才能部署Hadoop3.x集群。
Hadoop3.x的JDK依赖版本
我建议部署Hadoop3.x中, 部署JDK1.8(Java 8)作为其依赖版本, 许多Hadoop相关的工具和库都已经为JDK1.8优化,因此Java 8提供了最好的兼容性和性能。而Java 9+可能会导致一些问题, 因为Java 9+引入了模块化系统(Jigsaw),这会导致一些与Hadoop3.x相关的依赖或库出现兼容性问题。如果你已经部署Java 9+版本, 我将在FAQ中给出解决方案。
如何部署Hadoop与JDK依赖
1. 下载JDK1.8
点开官网, 选择Linux x64
的tar.gz文件, 然后点击下载, 下载完成后, 将文件从windows上传到虚拟机(FAQ提供上传方案), 使用以下命令解压文件:
1
tar -zxvf jdk-8u301-linux-x64.tar.gz -C /dest/
注 : /dest/为你想要解压到的目录, 需要替换为你想要解压到的目录, 如/opt/等等
2. 下载hadoop3.x
打开hadoop官网, 选择版本并点击Binary download
下的binary
, 然后点击Http下的下载地址, 即可下载hadoop3.x的tar.gz文件, 下载完成后, 将文件从windows上传到虚拟机(FAQ提供上传方案), 使用以下命令解压文件:
1
tar -zxvf hadoop-3.3.3.tar.gz -C /dest/
注 : /dest/为你想要解压到的目录, 需要替换为你想要解压到的目录, 如/opt/等等
3. 配置启动JDK
为了清晰地组织不同应用的环境变量,避免/etc/profile变得混乱。我们可以创建一个新的文件,例如/etc/profile.d/env.sh
1
vim /etc/profile.d/env.sh
在文件中添加以下内容:
1
2
3
#JAVA_HOME
export JAVA_HOME=/opt/jdkfilename
export PATH=$PATH:$JAVA_HOME/bin
注 : /opt/jdkfilename为你解压JDK的目录, 需要替换为你解压JDK的目录(前面的/dest/), 如/opt/jdk-8u202-linux-x64 启动jdk:
1
source /etc/profile
输如java -version
, 如果返回java版本号, 则说明安装成功
4. 配置启动hadoop
在上面的步骤中, 我们已经解压了hadoop3.x的tar.gz文件, 现在我们需要配置hadoop的环境变量, 打开/etc/profile.d/env.sh
文件, 在文件中添加以下内容:
1
2
3
4
#HADOOP_HOME
export HADOOP_HOME=/opt/hadoopfilename
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
注 : /opt/hadoopfilename为你解压hadoop3.x的目录, 需要替换为你解压hadoop3.x的目录(前面的/dest/), 如/opt/hadoop-3.4.0 启动hadoop:
1
source /etc/profile
输如hadoop version
, 如果返回hadoop版本号, 则说明安装成功
FAQ
打不开官网怎么办
请开启魔法, 并重新打开官网即可
如何将文件上传到虚拟机中
可以将文件从windows中上传到虚拟机中的软件有很多, 如xftp, tabby, winscp等等, 下载配置地址, 用户名, 密码后即可上传文件
如何解决Java 9+版本部署Hadoop3.x的问题
如果你已经部署Java 9+版本, 你可以按照以下步骤解决部署hadoop3.x集群的问题:
先输入以下命令:
1
vim /opt/hadoopfilename/etc/hadoop/hadoop-env.sh
注: /opt/hadoopfilename为你解压hadoop3.x的目录, 需要替换为你解压hadoop3.x的目录(前面的/dest/), 如/opt/hadoop-3.4.0
然后在文件中的:
1
2
3
4
5
# Extra Java runtime options for all Hadoop commands. We don't support
# IPv6 yet/still, so by default the preference is set to IPv4.
# export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true"
# For Kerberos debugging, an extended option set logs more information
# export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true -Dsun.security.krb5.debug=true -Dsun.security.spnego.debug"
下面添加export HADOOP_OPTS="$HADOOP_OPTS --add-opens java.base/java.lang=ALL-UNNAMED"
即可解决问题
总结
本文主要介绍了如何布置hadoop3.x集群的hadoop和jdk依赖, 以便我们后续的hadoop集群部署。