Apache Hadoop是一款用于存储、管理和处理各类大数据应用的开源软件框架,通常在集群系统中使用。它基于Java开发,使用HDFS文件系统存储数据,以MapReduce作为数据处理平台。这篇文章介绍在Ubuntu 20.04云服务器上安装和设置Apache Hadoop的步骤。
安装Java
执行以下命令安装最新版本的Java。
$ sudo apt install default-jdk default-jre -y
验证Java安装的版本。
$ java -version
创建Hadoop用户
创建hadoop用户。
$ sudo adduser hadoop
$ sudo usermod -aG sudo hadoop
安装SSH并设置免密码登录。
$ sudo su - hadoop
$ apt install openssh-server openssh-client -y
$ sudo su - hadoop
$ ssh-keygen -t rsa
$ sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ sudo chmod 640 ~/.ssh/authorized_keys
验证免密码登录是否生效。
$ ssh localhost
安装Hadoop
以新建的hadoop用户登录,下载最新版本的Hadoop。具体版本号可以到Apache Hadoop官方网站查询,本文以3.3.1版本为例。
$ sudo su - hadoop
$ wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
$ tar -xvzf hadoop-3.3.1.tar.gz
$ sudo mv hadoop-3.3.1 /usr/local/hadoop
$ sudo mkdir /usr/local/hadoop/logs
$ sudo chown -R hadoop:hadoop /usr/local/hadoop
设置Hadoop需要的环境变量。
$ sudo nano ~/.bashrc
在该文件末尾添加如下代码。
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
激活环境变量。
$ source ~/.bashrc
设置Java环境变量
Hadoop有很多组件用于执行其核心功能。为了配置YARN、HDFS、MapReduce等组件以及Hadoop项目设置,我们需要在hadoop-env.sh设置文件中定义Java环境变量。
查询Java安装路径。
$ which javac
查询OpenJDK目录。
$ readlink -f /usr/bin/javac
编辑hadoop-env.sh文件。
$ sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
在文件末尾添加如下代码。
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_CLASSPATH+=" $HADOOP_HOME/lib/*.jar"
进入hadoop的lib目录,下载Javax激活文件。
$ cd /usr/local/hadoop/lib
$ sudo wget https://jcenter.bintray.com/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar
验证Hadoop版本。
$ hadoop version
编辑core-site.xml配置文件。
$ sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml
添加以下代码,指定命名节点的URL地址。
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://0.0.0.0:9000</value>
<description>The default file system URI</description>
</property>
</configuration>
创建一个存储节点元数据的目录,并且更改所有者为hadoop。
$ sudo mkdir -p /home/hadoop/hdfs/{namenode,datanode}
$ sudo chown -R hadoop:hadoop /home/hadoop/hdfs
编辑hdfs-site.xml配置文件。
$ sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
添加以下代码,定义存储节点元数据的位置。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hdfs/datanode</value>
</property>
</configuration>
编辑mapred-site.xml配置文件。
$ sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
添加以下代码,定义MapReduce值。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
编辑yarn-site.xml配置文件。
$ sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
添加以下代码,定义YARN相关的参数。
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
以hadoop用户登录,验证Hadoop配置和HDFS命名节点的格式。
$ sudo su - hadoop
$ hdfs namenode -format
启动Hadoop集群
启动命名节点和数据节点。
$ start-dfs.sh
$ start-yarn.sh
验证全部运行中的组件。
$ jps
另外,还可以通过浏览器访问 http://IP地址:9870 访问Apache Hadoop的Web管理界面。
至此,我们已成功安装了Apache Hadoop,可以通过管理界面进行更精细的设置。