Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

1 安装JDK

使用Hadoop需要安装Java环境。打开命令行(Ctrl+Alt+T或者在桌面单击右键-打开终端)
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
输入命令:sudo apt-get update 更新软件包信息
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
输入命令:sudo apt-get install default-jdk 安装JDK。 输入Y确认。
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
输入命令:java --version 检查当前的java版本,安装成功
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2 下载安装Hadoop

2.1 下载Hadoop

Hadoop官网的下载页面,选择Hadoop2.7.7的binary,点击
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
点击后进入如下页面,找到给出的镜像下载点,复制链接Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
在虚拟机的终端利用wget命令下载,如下图所示。命令格式:wget [链接]
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
下载结束后,显示界面如下
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
输入ls命令,可以看到,当前目录中已经多了一个hadoop的tar.gz文件,该文件位于系统的主目录下。
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.2 解压

在终端输入如下图所示的命令(注意要在主目录下)(可以简单学习一下Linux的基本操作)
sudo tar -zxvf [文件名] (文件名你下载的Hadoop压缩包的名称)
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
解压后会得到hadoop文件。可以用ls命令查看。
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
接着将解压后的文件移动到/usr/local/hadoop目录下
命令 sudo mv hadoop-2.7.7 /usr/local/hadoop
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
输入命令ll可以查看移动结果
命令 ll /usr/local/hadoop
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.3 配置Hadoop环境变量

运行Hadoop前需要设置环境变量。为了每次进入操作系统后,可以自动配置好环境变量,我们需要修改bashrc文件。输入命令 sudo gedit ~/.bashrc
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
在文件最末添加配置内容。

2.3.1 设置JDK与Hadoop安装路径

首先,确认JDK的安装路径。在终端(可以新开一个终端)中输入update-alternatives --display java 命令,查看
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
其安装路径为上图红框中内容。在bashrc文件中设置JDK的安装路径(注意最后的/bin/java不要),添加
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
再设置Hadoop安装路径
export HADOOP_HOME=/usr/local/hadoop
再设置PATH
export PATH=PATH:PATH:HADOOP_HOME/bin
export PATH=PATH:PATH:HADOOP_HOME/sbin

2.3.2 设置HADOOP其他环境变量、链接库等

export HADOOP_MAPRED_HOME=HADOOPHOMEexportHADOOPCOMMONHOME=HADOOP_HOME export HADOOP_COMMON_HOME=HADOOP_HOME
export HADOOP_HDFS_HOME=HADOOPHOMEexportYARNHOME=HADOOP_HOME export YARN_HOME=HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=HADOOPHOME/lib/nativeexportHADOOPOPTS="DJava.library.path=HADOOP_HOME/lib/native export HADOOP_OPTS="-DJava.library.path=HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=HADOOPHOME/lib/native:HADOOP_HOME/lib/native:JAVA_LIBRARY_PATH

2.3.3 保存设置

编辑完后,如下所示,点击保存然后退出文件。
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
命令行输入 source ~/.bashrc 是的设置生效
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.4 修改Hadoop配置设置文件

2.4.1 配置Hadoop-env.sh

这个是Hadoop的配置文件。
输入命令 sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh 打开文件,找到其JAVA_HOME设置。如下图
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
修改为本地的java安装路径 /usr/lib/jvm/java-11-openjdk-amd64 (和之前一样),保存并退出
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.4.2 配置core-site.xml

设置HDFS的默认名称。
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
在configuration中添加如下内容,保存退出
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.4.3 配置YARN-site.xml

sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
在configuration中添加如下内容:
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.4.4 配置mapred-site.xml

Hadoop提供了mapred-site.xml的模板文件。输入命令进行复制 sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
打开mapred-site.xml文件
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
在configuration中添加如下配置
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.4.5 配置hdfs-site.xml

sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
在configuration中添加如下内容
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.5 创建并格式化HDFS目录

首先,创建namenode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
然后,创建datanode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
将hadoop目录的所有者更改为hduser
sudo chown hduser:hduser -R /usr/local/hadoop
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
最后,将HDFS进行格式化
hadoop namenode -format
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境

2.6 启动Hadoop

Hadoop启动时,NameNode与DataNode连接并管理这些节点。连接时需要使用SSH工具。因此,首先需要下载SSH。输入命令 apt-get install ssh 既可下载
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
下载后尝试启动hadoop
输入命令 start-all.sh 中间会反复要求输入密码,因为单节点状态下,namenode与datanode时同一台机器,我们只需要输入自己机器的密码即可。最后会显示成功启动
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
启动后,我们可以输入命令 ips 查看系统当前启动的进程,可见已经正常启动
Spark+Hadoop集群搭建:(一)单一节点上搭建Hadoop环境
其中ResourceManager NodeManager属于MapReduce功能
NameNode,SecondaryNameNode,DataNode属于HDFS功能
此外,可以单独启动HDFS,命令为 start-dfs.sh
也可以单独启动Yarn,命令为 start-yarn.sh
关闭命令:stop-all.sh