Centos8中Hadoop3.3.1安装详细过程(含图文)

目录 

Hadoop介绍:

一、创建hadoop用户

二、安装SSH、配置SSH无密码登录

三、卸载jdk环境

四、安装新的java版本

五、安装 Hadoop 3

六、配置hadoop环境变量

七、Hadoop伪分布式配置

1、Hadoop 环境变量设置

2、Hadoop 配置文件的修改

(1)修改配置文件 core-site.xml

(2)修改配置文件 hdfs-site.xml:

(3)修改配置文件 hadoop-env.sh

(4)配置 mapred-site.xml

(5)配置yarn-site.xml

(6)进入前面创建的data对hdfs namenode初始化

(7)启动hadoop 使用“ start-dfs.sh ”开启 NaneNode 和 DataNode 守护进程

(8)使用“ start-yarn.sh ”开启 ResourceManager 和 NodeManager 守护进程


Hadoop介绍:

Hadoop的核心由3个部分组成:

HDFS: Hadoop Distributed File System,分布式文件系统,hdfs还可以再细分为NameNode、SecondaryNameNode、DataNode。

YARN: Yet Another Resource Negotiator,资源管理调度系统

Mapreduce:分布式运算框架

下面介绍安装 Hadoop

虚拟机:   VMware
环境:      Linux 系统 centos8
hadoop: hadoop-3.3.1
​​​​​​​

一、创建hadoop用户

VM上安装centos8的主机,设置初始内存为2G,硬盘为50G,安装成功后新建用户hadoop,设置hadoop的密码并授予hadoop用户sudo权限(不过后面主要还是用root操作)

如果你安装 CentOS 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。

首先点击左上角的 “应用程序” -> “系统工具” -> “终端”,首先在终端中输入 su ,按回车,输入 root 密码以 root 用户登录,接着执行命令创建新用户

su              # 上述提到的以 root 用户登录
useradd -m hadoop -s /bin/bash   # 创建新用户hadoop,并使用 /bin/bash 作为shell。
passwd hadoop


可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题,执行:

visudo

如下图,找到 root ALL=(ALL) ALL 这行(应该在第98行,可以先按一下键盘上的 ESC 键,然后输入 :98 (按一下冒号,接着输入98,再按回车键),可以直接跳到第98行 ),然后按i,进入插入模式,在这行下面增加一行内容:

hadoop    ALL=(ALL)    ALL 

如下图所示:
在这里插入图片描述

添加上一行内容后,先按一下键盘上的 ESC 键,然后输入 :wq (输入冒号还有wq,这是vi/vim编辑器的保存方法),再按回车键保存退出就可以了。

最后注销当前用户(点击屏幕右上角的用户名,选择退出->注销),在登陆界面使用刚创建的 hadoop 用户进行登陆。(如果已经是 hadoop 用户,且在终端中使用 su 登录了 root 用户,那么需要执行 exit 退出 root 用户状态)

二、安装SSH、配置SSH无密码登录


集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:

rpm -qa | grep ssh

如果返回的结果如下图所示,包含了 SSH client 跟 SSH server,则不需要再安装。

若需要安装,则可以通过 yum 进行安装(安装过程中会让你输入 [y/N],输入 y 即可):

sudo yum install openssh-clients
sudo yum install openssh-server

接着执行如下命令测试一下 SSH 是否可用:

ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

在这里插入图片描述

 但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

首先输入 exit 退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

    exit                           # 退出刚才的 ssh localhost
    cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
    ssh-keygen -t rsa              # 会有提示,都按回车就可以
    cat id_rsa.pub >> authorized_keys  # 加入授权
    chmod 600 ./authorized_keys    # 修改文件权限
    ssh-copy-id localhost          # 分发秘钥给主机(主机名)
    ssh-copy-id localhost          # 再次分发秘钥给主机(终端中默认的主机民称)

Centos8中Hadoop3.3.1安装详细过程(含图文)_第1张图片测试ssh是否分配给自定义的主机上

ssh localhost 

此时再用 ssh hjk 命令,无需输入密码就可以直接登陆了,如下图所示。

Centos8中Hadoop3.3.1安装详细过程(含图文)_第2张图片

三、卸载jdk环境

因为 Hadoop 是以 java 开发的,所以必须先安装 java 环境

安装之前先卸载centos8自带的OpenJDK

1、建议切换到root 账户

# 切换到root账户
su -

2、查询系统是否以安装jdk

rpm -qa|grep java

Centos8中Hadoop3.3.1安装详细过程(含图文)_第3张图片

3、卸载已安装的jdk

# 温馨提示,文件名仅供参考,具体以自己的为准
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64

4、卸载可能存在的CentOS自带的java环境

pm -qa|grep java

rpm -qa|grep jdk

rpm -qa|grep gcj 

Centos8中Hadoop3.3.1安装详细过程(含图文)_第4张图片

5、验证一下是否还有jdk

java -version    # 查看版本

Centos8中Hadoop3.3.1安装详细过程(含图文)_第5张图片

java -version

四、安装新的java版本


下载JDK环境
首先登陆oracle官网下载java源码包:
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
这里使用下载选择的是以tar.gz结尾的,即下载安装包

Centos8中Hadoop3.3.1安装详细过程(含图文)_第6张图片
目前,官网下载JDK安装包需要注册oracle账号,需要自己注册一个才能使用。
Centos8中Hadoop3.3.1安装详细过程(含图文)_第7张图片

 因为本机是M1的,经过测试需要下载的是第二个为jdk-8u351-linux-aarch64.tar.gz

2.用远程传输文件的FileZilla软件将下载好的jdk-8u351-linux-aarch64.tar.gz上传到centos8下 /opt

3.解压JDK安装包

打开终端,输入如下解压命令

cd /opt     #定位到目标目录

tar xf jdk-8u351-linux-aarch64.tar.gz   #解压文件

ls          # 查看目录下文件

4.在 usr 中创建合适的文件夹存放解压后的文件,注意新建的文件夹需要后期配置环境路径使用。

新建文件夹命令:(mkdir后面一定要加空格)

cd /usr

mkdir /usr/soft

mkdir /usr/soft/java

验证是否创建

cd /usr/soft

ls

5.将解压后的文件移动到相应文件夹

cd /opt

mv jdk1.8.0_351 /usr/soft/java

安装完成之后要进行环境配置,这里需要编辑编辑/etc/profile文件
编辑命令:

vim /etc/profile


在执行完上方命令之后点击i键位让文件可以修改,进行文件编写

Centos8中Hadoop3.3.1安装详细过程(含图文)_第8张图片
在文件末尾添加如下配置:

export JAVA_HOME=/usr/soft/java/jdk1.8.0_351  #指定自己的jdk文件路径
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

Centos8中Hadoop3.3.1安装详细过程(含图文)_第9张图片

编写完成以后,我们要保存退出,那么我们就要使用底部模式,这时候使用ESC键退出插入模式回到命令模式。

(1) 按一下Esc

然后注意窗口的最下方一行(此时还是空白或者有一串默认的字符),


(2)输入一个冒号:
输入冒号: 需要是使用 “shirt” +" : "
这时最下面那行就会显示出一个冒号
(3)输入:wq 就会自动关闭文件并保存文件。

在这里插入图片描述
3. 文件生效
对于/etc/profile编写完成之后是不够的,还需要最后一个步骤,就是让刚刚我们修改的文件变成有效起来,所以我们再输入一个命令,让修改生效。

在这里插入图片描述  

生效命令:

source /etc/profile


最后我们来进行一下测试,验证是否安装成功及环境变量是否配置成功

测试命令:

java -version

在这里插入图片描述

五、安装 Hadoop 3

Hadoop 3 可以通过下面两个链接下载:

https://mirrors.cnnic.cn/apache/hadoop/common/
http://mirror.bit.edu.cn/apache/hadoop/common/

网盘下载:

本教程选择的是 3.3.0 版本,下载时会有多个版本
hadoop-3.x.y.tar.gz 这是编译好的文件
hadoop-3.x.y.src.tar.gz 包含 的是 Hadoop 源代码,需要进行编译才可使用。

Centos8中Hadoop3.3.1安装详细过程(含图文)_第10张图片

Centos8中Hadoop3.3.1安装详细过程(含图文)_第11张图片
这里下载hadoop-3.3.1-aarch64.tar.gz

将下载好的安装包解压:

cd /opt
tar -zxvf hadoop-3.3.1-aarch64.tar.gz

 在 usr 中创建合适的文件夹存放解压后的文件,注意新建的文件夹需要后期配置环境路径使用。(本教程按本人所习惯的存放在 soft 文件夹中)

新建文件夹命令:(mkdir后面一定要加空格)

mkdir /usr/soft/hadoop

将解压后的文件移动到相应文件夹

mv hadoop-3.3.1 /usr/soft/hadoop

 !!!注意:查看下移动过去是否是整个文件夹复制过去的,还是复制文件没有带目录对后面配置环境变量很重要

六、配置hadoop环境变量

  1. 安装完成之后要进行环境配置,这里需要编辑编辑/etc/profile文件

编辑命令:

vim /etc/profile

在执行完上方命令之后点击i键位让文件可以修改,进行文件编写

在这里插入图片描述

2. 在文件末尾添加如下配置:

export HADOOP_HOME=/usr/soft/hadoop     #配置Hadoop的路径
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

如果带目录复制的即为

export HADOOP_HOME=/usr/soft/hadoop/hadoop-3.3.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH


编写完成以后,我们要保存退出,那么我们就要使用底部模式,这时候使用ESC键退出插入模式回到命令模式。
(1)按一下Esc
(2)输入一个冒号: 输入冒号需要是使用 “shirt” +" : "
(3)输入:wq 就会自动关闭文件并保存文件。

!!注意: 这里可能会由于设置全局变量导致 后边运行datanode出错

文件生效
对于/etc/profile编写完成之后是不够的,还需要最后一个步骤,就是让刚刚我们修改的文件变成有效起来,所以我们再输入一个命令,让修改生效。
生效命令:

source /etc/profile       #刷新环境变量配置


验证是否安装成功, 最后我们来进行一下测试,看看我们的环境变量是否配置成功

测试命令:

hadoop version

Centos8中Hadoop3.3.1安装详细过程(含图文)_第12张图片

七、Hadoop伪分布式配置

1、Hadoop 环境变量设置

(1) 为了避免hadoop启动时报错hadoop启动报错:Attempting to operate on hdfs namenode as root

解决方案1:

编辑命令:

vim /etc/profile          #配置环境启动hadoop, 都以root启动
source /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

 解决方案2:

写在最前注意:
1、master(用户),slave(用户)都需要修改start-dfs.sh,stop-dfs.sh,start-yarn.sh,stop-yarn.sh四个文件
2、如果你的Hadoop是另外启用其它用户来启动,记得将root改为对应用户

HDFS格式化后启动dfs出现以下错误:

[root@master sbin]# ./start-dfs.sh
Starting namenodes on [master]
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 [slave1]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

路径为下:

cd /usr/soft/hadoop/sbin/

 vim模式修改配置文件

vi start-dfs.sh
vi stop-dfs.sh

将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:
将 /usr/soft/hadoop/sbin下各进程的启动命令用户设为root 

vim模式修改配置文件

vi start-yarn.sh 
vi stop-yarn.sh 

 在#!/usr/bin/env bash下添加如下内容 

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

2、Hadoop 配置文件的修改


Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

打开hadoop配置文件:

cd /usr/soft/hadoop/sbin/
#或者写成
cd ../   #退回上一个目录文件夹

新建一个文件夹用来存放()文件

# 目录为cd /usr/soft/hadoop  (pwd 为显示路径)
cd ../          #退回到前一个文件夹
mkdir data      # 新建文件夹
ll              # 查看所有目录

Centos8中Hadoop3.3.1安装详细过程(含图文)_第13张图片
其中最好修改其中的五个配置文件

(1)修改配置文件 core-site.xml

如上图查看配置文件可知, core-site.xml 文件读写权限较低,修改配置文件之前需要修改文件权限

为了方便不细分权限,设置为允许所有操作

cd /usr/soft/hadoop/etc/hadoop/
chmod 777 core-site.xml   # 直接用root操作,即不需要

Vim模式修改配置文件

vim core-site.xml   

Centos8中Hadoop3.3.1安装详细过程(含图文)_第14张图片

添加如下配置



       fs.defaultFS
       
       hdfs://hjk:9000


       hadoop.tmp.dir
       /usr/soft/hadoop/data

(2)修改配置文件 hdfs-site.xml:


同样先修改文件权限:

chmod 777  hdfs-site.xml

vim模式修改配置文件

vim hdfs-site.xml

添加如下配置:




       dfs.replication
       1


(3)修改配置文件 hadoop-env.sh

vim hadoop-env.sh      #配置成你自己的jdk安装路径
export JAVA_HOME=/usr/soft/java/jdk1.8.0_351   #配置jdk安装路径 将前面#注释

 Centos8中Hadoop3.3.1安装详细过程(含图文)_第15张图片

(4)配置 mapred-site.xml

mapred-site.xml 指定MapReduce程序应该放在哪个资源调度集群上运行。若不指定为yarn,那么MapReduce程序就只会在本地运行而非在整个集群中运行。

chmod 777 mapred-site.xml  

vim模式修改配置文件

vim mapred-site.xml

Centos8中Hadoop3.3.1安装详细过程(含图文)_第16张图片
添加如下配置:




       mapreduce.framework.name
       yarn

(5)配置yarn-site.xml

chmod 777 yarn-site.xml

vim模式修改配置文件

vim yarn-site.xml

Centos8中Hadoop3.3.1安装详细过程(含图文)_第17张图片添加如下配置:






       yarn.nodemanager.aux-services
       mapreduce_shuffle


        
        yarn.resourcemanager.hostname
        
        hjk

(6)进入前面创建的data对hdfs namenode初始化

cd ../../data/  #基于当前文件夹相回退到data( cd /use/soft/hadoop/data)
ll  #查看data下有没有文件,有得删掉
hdfs namenode -format     #对hdfs namenode初始化

(7)启动hadoop 使用“ start-dfs.sh ”开启 NaneNode 和 DataNode 守护进程

然后输入命令 ’ jps ’ 查看已成功启动的进程。(stop--dfs.sh--停止进程   -- 启动命令需要在hadoop安装路径下执行并且是root用户)此处安装路径为 cd /usr/soft/hadoop

Centos8中Hadoop3.3.1安装详细过程(含图文)_第18张图片

(8)使用“ start-yarn.sh ”开启 ResourceManager 和 NodeManager 守护进程

然后输入命令 ’ jps ’ 查看已成功启动的进程。 (stop--yarn.sh--停止进程​​​​​​​)Centos8中Hadoop3.3.1安装详细过程(含图文)_第19张图片

至此六个进程全部启动 ,成功启动后,可以访问 Web 界面 http:hjk:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

查看hadoop后台界面ip端口,命令如下:

hdfs dfs -ls /                 # 是查看的根目录的文件
cat /etc/hosts                 # 显示hosts文件内容
netstat -nlp |grep 50070       # 查看进程-如果没有说明没有配置web界面的端口
netstat -nlp |grep 9870        # 查看进程-如果有则说明配置率web界面的端口

#最后访问链接为 192.168.121.129:9870

Centos8中Hadoop3.3.1安装详细过程(含图文)_第20张图片

Centos8中Hadoop3.3.1安装详细过程(含图文)_第21张图片

 安装虚拟机+Centos8-4参考链接:https://mp.csdn.net/mp_blog/creation/​​​​​​​

你可能感兴趣的:(开发语言,hadoop,分布式)