下载并解压软件包

因为Hadoop的软件版本和jdk版本是绑定的,所以安装Hadoop版本之前先查看对应的jdk版本。

这里我们安装的是hadoop-3.2.2版本对应的jdk是8

Hadoop下载地址:https://www.apache.org/dist/hadoop/common/

jdk下载地址:https://www.oracle.com/java/technologies/javase-downloads.html

下载完成之后,保存到需要安装的服务器,这里我是保存到了/home/tmp目录下,并解压到/usr/local目录下

cd /usr/local
tar xvf /home/tmp/jdk-8u291-linux-x64.tar.gz
tar xvf /home/tmp/hadoop-3.2.2.tar.gz

配置Hadoop

配置jdk

配置jdk的方法有两个,一个是全局配置jdk版本(不推荐),另一个是为Hadoop单独配置jdk路径

全局配置方法:

vi /etc/profile

## 增加下面这行
export JAVA_HOME=/usr/local/jdk1.8.0_291/

## 使配置生效
source /etc/profile

为Hadoop单独配置

cd /usr/local/hadoop-3.2.2

vi etc/hadoop/hadoop-env.sh

## 增加下面这行
export JAVA_HOME=/usr/local/jdk1.8.0_291/
设置为分布模式(Pseudo-Distributed Operation)

/usr/local/hadoop-3.2.2目录下

修改etc/hadoop/core-site.xml配置文件,修改如下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost/</value>
    </property>
</configuration>

修改etc/hadoop/hdfs-site.xml配置文件,修改如下:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.http.address</name>
        <value>0.0.0.0:50070</value>
    </property>
</configuration>

如果这里没有配置dfs.http.address且绑定为0.0.0.0的话是无法通过ip访问到的

修改etc/hadoop/mapred-site.xml配置文件,修改如下:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改etc/hadoop/yarn-site.xml配置文件,修改如下:

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

如果这里配置yarn.resourcemanager.hostname的是localhost的话是无法通过ip访问到的。

设置主机允许无密码SSH连接

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

可以通过ssh localhost来判断,如果不需要输入密码且连接成功则说明配置成功。

格式化文件系统

在首次使用Hadoop之前,必须格式化文件系统,命令如下

cd /usr/local/hadoop-3.2.2
bin/hdfs namenode -format

启动/关闭HDFS

./sbin/start-dfs.sh
./sbin/stop-dfs.sh

可以通过浏览hadoop/logs目录中的日志文件来检查进程是否启动,将会启动三个进程:一个活动namenode、一个辅助namenode,一个datanode。

或者通过查看http://localhost:50070判断是否启动成功。
在这里插入图片描述

如果启动出现以下类似错误的话:

Starting namenodes on [hadoop]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-07-16 05:45:04,628 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.

解决方法两个,一个是全局配置,一个是单独配置。

全局配置:

vi /etc/profile

## 增加以下内容
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

## 使配置生效
source /etc/profile

单独配置:

## 修改./sbin/start-dfs.sh和./sbin/stop-dfs.sh
## 增加以下内容:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root


## 修改./sbin/start-yarn.sh和./sbin/stop-yarn.sh
## 增加以下内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

特别的,如果出现配置正确,但是还是无法启动成功的情况可以执行以下命令:

## 清空Hadoop缓存
rm -rf /tmp/hadoop-root/*

## 重新格式化文件系统
cd /usr/local/hadoop-3.2.2
bin/hdfs namenode -format

启动/关闭YARN

./sbin/start-yarn.sh
./sbin/stop-yarn.sh

可以通过浏览hadoop/logs目录中的日志文件来检查进程是否启动,将会启动两个个进程:一个resourceManage(资源管理器),一个nodeManager(节点管理器)。

或者通过查看http://localhost:8088判断是否启动成功。

在这里插入图片描述

启动/关闭历史服务器(MapReduce)

./sbin/mr-jobhistory-daemon.sh start historyserver
./sbin/mr-jobhistory-daemon.sh stop historyserver
Logo

更多推荐