理论上包括macOS在内的非Windows系统也可以参考本教程安装
Windows系统不建议参考本教程
安装前准备
安装前请尽量使用全新的环境进行安装
Hadoop用户配置
新建hadoop用户,并对计算机进行安装前配置,且后续的安装均为使用hadoop用户进行配置。
# 新建hadoop用户,并设置用户目录为/usr/lib/hadoop
sudo useradd -d /usr/lib/hadoop/ hadoop
# 为hadoop用户设置密码
sudo passwd hadoop
SSH免密登录
确保电脑下载ssh并启动sshd服务,一般服务器环境都已经完成安装,如果在自己电脑/虚拟机上安装,请自行安装openssh-server
安装后运行以下命令ssh连接本机
ssh localhost
如果此时无需密码,请忽略以下的免密码配置步骤,配置ssh免密登录必须使用hadoop用户进行配置
cd ~/.ssh
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
此时再次ssh本机,会发现无需密码即可登录,这种情况下可以进行Java安装等操作
Java环境准备
要运行Hadoop,必须先安装Java环境
如果你已安装Java,请忽略Java安装步骤,如果没有,请先安装Java
如果你不告诉Hadoop Java的安装目录,Hadoop可能无法正常运行
安装Java
本次安装的是Adoptium,即OpenJDK,为Java的开源版本,功能和Oracle的Java功能相同,不在Oracle官网下载的原因是Adoptium无需登录Oracle甲骨文账号
下载前请确保你的电脑里没有Java。
即使Java8是旧版本的Java,但是其为LTS长期支持版本,目前仍在进行Bug修复之类的更新,所以本网站不便于提供准确的下载地址,如果想要下载,请点击 此处 前往清华大学开源镜像站下载。
下载完后为OpenJDK8U-*.tar.gz格式的文件,此时需要进行解压操作,解压命令为
tar zxvf OpenJDK8U-*.tar.gz
解压后会得到一个文件夹,假设你的文件夹名为 openjdk-8-jdk,则你需要将其复制在指定的目录下。
sudo mkdir -p /usr/lib/jvm
sudo cp -r openjdk-8-jdk /usr/lib/jvm/openjdk-8-jdk
设置环境变量,编辑/etc/profile文件,然后追加以下内容
export JAVA_HOME=/usr/lib/jvm/openjdk-8-jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
刷新环境变量并进行测试Java环境
# 刷新环境变量
source /etc/profile
# 测试Java环境
java -version
# 如果不提示Command not found或找不到命令,并正确显示Java版本号,则说明Java安装成功。
安装Hadoop
本次Hadoop从清华大学开源镜像站下载,由于Hadoop版本有更新,此处下载的为最新的稳定版本,截止到本文章发布,Hadoop的最新版本为3.3.4版本,如需下载,请点击 此处 ,记得下载二进制包,不要下载源码包。
下载完成后为hadoop-3.3.4.tar.gz格式的 文件,此时需要进行解压
tar zxvf hadoop-3.3.4.tar.gz
复制解压后的目录到hadoop用户目录,并设置文件所有者
sudo cp -r hadoop-3.3.4 /usr/lib/hadoop/hadoop-3.3.4
sudo chown -R hadoop /usr/lib/hadoop/hadoop-3.3.4
再次编辑/etc/profile文件,追加以下内容
export HADOOP_HOME=/usr/lib/hadoop/hadoop-3.3.4
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
刷新环境变量并进行测试Hadoop环境
# 刷新环境变量
source /etc/profile
# 测试hadoop环境
hadoop version
# 如果不提示Command not found或找不到命令,并正确显示Hadoop版本号,则说明Hadoop安装成功
修改Hadoop配置文件
因为Hadoop不知道我们的Java安装目录,我们需要修改指定的配置文件来告诉它。
修改hadoop-env.sh
编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/hadoop-env.sh,追加
export JAVA_HOME=/usr/lib/jvm/openjdk-8-jdk
修改core-site.xml
编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/lib/hadoop/hadoop-3.3.4/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改hdfs-site.xml
编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/lib/hadoop/hadoop-3.3.4/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/lib/hadoop/hadoop-3.3.4/tmp/dfs/data</value>
</property>
</configuration>
修改yarn-site.xml
编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
修改mapred-site.xml
编辑/usr/local/hadoop/hadoop-3.3.4/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
初始化Hadoop
格式化hdfs
格式化整个hdfs
hdfs namenode -format
启动Hadoop
启动hdfs
start-dfs.sh
启动yarn
start-yarn.sh
访问网页端测试
- NameNode网页访问 http://192.168.x.y:9870
- yarn网页访问 http://192.168.x.y:8088
必须使用Java 8,使用Java 11或更新版本可能会导致无法正常访问以上两个网站。
查看jps
输入jps命令,可以看到有以下进程(进程号不同为正常现象)
28883 NodeManager
29043 Jps
2455 SecondaryNameNode
2183 NameNode
2283 DataNode
28779 ResourceManager