一、Linux 操作系统的安装
- 2021年 全网最细 Windows 系统安装虚拟机Vmware15 及 CentOS7系统和远程登录
- 2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置
二、在 Ubuntu 20.04.2.0 中 进行 Hadoop 伪分布式安装
在安装 Hadoop 之前,需要先安装两个程序,分别为:
(1) JDK。Hadoop 使用的是 Java 写的程序,Hadoop 的编译及 MapReduce 的运行都需要使用 JDK。因此在安装 Hadoop 之前,必须先安装 JDK。
(2) SSH(安全外壳协议),推荐安装 OpenSSH。Hadoop 需要通过 SSH 无密码连接 Slave 列表中各台主机的守护进程,因此 SSH 也是必须安装的。
本节介绍 JDK 的检查与安装。
1、Ubuntu 20.04.2.0 安装 jdk
在安装 JDK 之前,可以首先检查一下系统是否安装了 JDK,检查方法如下。打开终端,输入以下内容,来检查 JDK 是否可用:
javac
如果没有安装 JDK 的话,执行结果如下图所示:
如果上述命令返回 Command 'java' not found
或者类似的错误,这时需要下载并安装 JDK。本篇博文用的 jdk 版本为:jdk-8u202-linux-x64.tar.gz。如果读者要安装其他版本的 jdk,可以自行到官网进行下载,jdk 下载比较简单,这里博主就不再赘述,不想下载也可以直接从下面的网盘中进行获取,链接如下:
链接:https://pan.baidu.com/s/1M_uFasC58iLB5HtzmnZWdQ
提取码:i8yt
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V6的分享
(1) 将下载好的 JDK 安装包放到共享文件夹中 (在 2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置 一文中详细介绍了如何设置了共享文件夹,博主 Windows 10 系统的共享文件夹路径为 D:\VirtualBox-Share,Ubuntu 系统中的共享文件夹名为 sf_VirtualBox-Share)
然后在 Ubuntu 系统的 home 目录(也称为主目录)下,新建文件夹名为 JDK,将 JDK 安装包复制此 JDK 文件夹中。复制好之后,在此文件夹空白处单击鼠标右键,选择 在终端打开
,打开终端,如下图所示:
(2) 解压 JDK 安装包。将安装包 jdk-8u202-linux-x64.tar.gz
解压到当前文件夹,命令如下:
tar -zxvf jdk-8u202-linux-x64.tar.gz
命令及执行结果如下图所示:
解压完成后,在当前文件夹中,得到名为 jdk1.8.0_191
的文件夹,为了后期设置环境变量更加方便,将名字重命名为 jdk1.8
,如下图所示:
说明:解压即安装。
(3) 设置环境变量。编辑配置文件,首先需要打开配置文件,然后将环境变量添加到文件末尾。
在终端输入如下命令,打开配置文件。
sudo gedit /etc/profile
然后按照提示,输入 root 用户的密码,输入密码后,敲击回车进入文档编辑界面,如下图所示:
将下面的命令输入到配置文件中:
export JAVA_HOME=/home/bigdata01/JDK/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
注意,JAVA_HOME 后面的为解压后的 JDK 文件夹,读者需要根据实际情况进行修改。配置文件修改完成后,Ctrl + s
即可保存然后退出。重新加载配置文件,命令如下:
source /etc/profile
验证是否安装 JDK 成功,输入如下命令查询 JDK 版本:
java -version
执行结果如下图所示:
如上图所示的执行结果中,显示了 JDK 的版本信息,则说明 JDK 安装成功。
说明:也可以使用 sudo vi /etc/profile 命令打开配置文件,然后按照提示,输入 root 用户的密码,输入密码后,敲击回车进入文档编辑界面。使用快捷键 <Shift+g> 将光标移到文件末尾,按 i 键进入编辑状态,将上面的命令输入到配置文件中,配置文件修改完成后,按 Esc 退出编辑状态,输入 :wq 命令,敲击回车之后即可保存并退出。最后重新加载配置文件即可。
2、配置 SSH 无密码登录
SSH 为 Secure Shell 的缩写,即安全外壳协议,为建立在应用层基础上的安全协议。Hadoop 使用 SSH 连接,这是目前较为可靠,专为远程登录其他服务器提供的安全性协议。通过 SSH 会对所有传输的数据进行加密,利用 SSH 协议可以防止远程管理系统时信息外泄的问题。
Hadoop 是由很多台服务器组成的,当启动 Hadoop 时,NameNode 必须与 DataNode 连接并管理这些节点(DataNode),此时系统会要求用户输入密码。为了让系统顺利运行而不用手动输入密码,可以将 SSH 设置为无密码登录。
注意:无密码登录不是不需要密码,而是使用 SSH Key 来进行身份验证。
1、安装SSH
打开终端,输入命令:sudo apt-get install ssh
在输入 Y
或 y
后,系统会自动安装 SSH,安装完成如下图所示:
2、SSH 无密码登录的原理
在配置 SSH 之前,首先介绍一下 SSH 免密登录的原理,以 Server A 要免密登录 Server B 为例,如下图所示:
3、配置 SSH 无密码登录
-
产生 SSH Key。接着在终端输入命令:ssh-keygen -t rsa。注意:注意ssh-keygen后参数的大小写,比如“-t”与“-T”表示不同意思。其中,ssh-keygen代表生成密钥;-t表示生成指定类型的密钥类型;rsa是rsa密钥认证。
此条命令运行后出现暂停时,按回车键即可。并且会产生两个密钥文件,即在 .ssh 文件夹(此文件夹在用户的根目录下,即 /home/bigdata01) 下创建 id_rsa 和 id_rsa.pub 两个文件,这是 SSH 的一对私钥和公钥,类似于钥匙和锁,下面要做的就是把 id_rsa.pub(公钥)放到许可证文件中去。
使用ll ~/.ssh
查看产生的 SSH Key(密钥):
-
将 id_rsa.pub(公钥) 放到许可证文件(authorized_keys)中,命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
-
更改权限,命令如下:
chmod 755 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
-
验证 SSH 是否安装成功,以及是否可以免密码登录本机。首先,验证SSH是否安装成功,输入命令:ssh -Version。执行结果如图所示:
出现上图所示的执行结果,则表示 SSH 安装成功。注意:命令“ssh -Version”中的V是大写的 -
接下来,验证是否可以免密码登录本机,命令:ssh bigdata01-VirtualBox。执行结果如下图所示:
说明:bigdata01-VirtualBox 为笔者的主机名,读者可以使用 hostname 命令查看自己的主机名。如上图所示,没有要求输入登录密码,则表示 SSH 已经成功实现无密码登录了。 -
退出 SSH 连接,代码如下:exit。执行结果如下图所示:
说明:在 Hadoop 的安装过程中,是否无密码登录不是特别重要的,但是如果不配置无密码登录,每次启动 Hadoop 都需要输入密码来登录到每台机器的 DataNode 上,但是 Hadoop 集群动辄拥有数百或上千台机器,因此一般来说都会配置 SSH 的无密码登录。
3、Hadoop 的下载与安装
在介绍 Hadoop 的安装之前,先介绍一下 Hadoop 对各个节点的角色定义。
Hadoop 可以分别从三个角度将主机划分为两种角色。第一,最基本的划分为 Master 和 Slave,即主人与奴隶;第二,从 HDFS 的角度,将主机划分为 NameNode 和 DataNode(在分布式文件系统中,目录的管理很重要,管理目录相当于主人,而 NameNode 就是目录管理者);第三,从 MapReduce 的角度,将主机划分为 JobTracker 和 TaskTracker(一个 Job 可以划分为多个Task)。
1、Hadoop的安装模式
Hadoop 有三种安装模式,分别为:单机模式、伪分布式和完全分布式(集群)。
其中,安装单机模式的 Hadoop 无须配置,在这种方式下,Hadoop 被认为是一个单独的 Java 进程,这种方式经常用来测试。
本篇博文主要介绍伪分布式的 Hadoop 安装,可以把伪分布式的 Hadoop 看作是只有一个节点的集群,在这个集群中,这个节点既是 Master,也是 Slave;既是 NameNode,也是 DataNode;既是 JobTracker,也是 TaskTracker。关于完全分布式的 Hadoop 下篇博文再进行介绍。
2、Hadoop 的下载
本篇博文中使用的 Hadoop 的安装版本为 Hadoop 3.2.0,下载 Hadoop 的网址为:https://hadoop.apache.org/releases.html,如下图所示:
单击后,进入一个新的页面,向下拉动浏览器的滚动条,找到我们需要的 hadoop 版本,如下图所示:
找到我们需要的 hadoop 版本之后,鼠标左键点击,进入到新的界面,然后选择 hadoop-3.2.0.tar.gz 进行下载,如下图所示:
注意:如果发现这个国外的地址下载比较慢,可以使用国内的镜像地址下载,但是这些国内的镜像地址中提供的安装包版本可能不全,如果没有找到我们需要的版本,那还是要老老实实到官网下载。
这些国内的镜像地址里面不仅仅有 Hadoop 的安装包,里面包含了大部分 Apache 组织中的软件安装包:
地址1:https://mirrors.tuna.tsinghua.edu.cn/apache/
将下载好的安装包 hadoop-3.2.0.tar.gz
复制到共享文件夹中,以便 Ubuntu 系统可以对此安装包进行下一步的操作。
3、Hadoop 的安装
Hadoop 的安装步骤如下:
解压缩 Hadoop 安装包。将安装包从共享文件夹复制到主目录下,打开终端,输入如下命令,将 Hadoop 安装包解压缩到当前目录下。命令:tar -zxvf hadoop-3.2.0.tar.gz
命令执行后,系统开始解压缩 hadoop-3.2.0.tar.gz 文件,屏幕上不断显示解压过程信息,如上图所示(由于篇幅问题,只显示部分解压信息),当解压完成后,系统将在主目录下创建 hadoop-3.2.0 子目录,此为 Hadoop 的安装目录。
查看一下 Hadoop 安装目录中的安装文件,输入命令:
安装文件的目录及目录下常用文件说明如下表所示:
至此,Hadoop 安装完毕,但是要使用 Hadoop,还需要进行一系列的配置。
4、Hadoop 环境配置
1、配置 IP 和主机名
下面分别通过命令查看本机的 IP 地址和主机名,并将 IP 地址和主机名写进 /etc/hosts
配置文件中,步骤如下:
(1) 查看本机的 IP 地址,命令如下:
sudo apt install net-tools
ifconfig
或者直接使用
ip addr
执行结果如下图所示:
从上图中可知本机的 IP 地址为 10.0.2.15。说明:此 IP 地址为虚拟机自动分配的地址,可以自己另行设置。
(2) 查看本机的主机名,命令如下:
hostname
执行结果如下图所示:
从上图中可知本机的主机名为 bigdata01-VirtualBox。
(3) 将 IP 地址和主机名写进 /etc/hosts
配置文件中,打开 /etc/hosts
命令如下:
sudo gedit /etc/hosts
修改完成后,单击保存按钮,关闭文件。
2、设置 Hadoop 环境变量
运行 Hadoop 必须设置很多环境变量,可是如果每次登录时都必须重新设置就会很烦琐,因此,可以在 ~/.bashre
文件中设置每次登录时都会自动运行一次环境变量设置,设置步骤如下:
(1) 在终端输入如下命令:
sudo gedit ~/.bashrc
执行命令之后,就会打开 ~/.bashrc
文件,在原有代码的最下方的位置添加如下代码:
# 设置JDK安装路径。
export JAVA_HOME=/home/bigdata01/JDK/jdk1.8
# 设置Hadoop的安装目录。
export HADOOP_HOME=/home/bigdata01/hadoop-3.2.0
# 设置PATH
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# 设置Hadoop其他环境变量 将这些环境变量设置为$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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
编辑好 ~/.bashrc
文件后,单击 保存
按钮后,再关闭 gedit
,如下图所示:
(2) 使设置生效。在终端输入命令:source ~/.bashrc。或者重启系统,也会使得设置生效。
(3) 使用 hadoop version 命令测试是否配置成功,执行结果如下图所示:
出现上图所示的结果,则说明 Hadoop 环境已经配置成功了。
3、修改 Hadoop 配置文件
接下来要进行 Hadoop 的配置设置,需要修改的配置文件有:Hadoop-env.sh、core-site.xml、yarn-site.xml、mapred-site.xml 和 hdfs-site.xml,最后还要修改一下 /etc/profile
文件。
(1) 修改 Hadoop-env.sh 文件。Hadoop-env.sh 是 Hadoop 的配置文件,在此文件中需要设置 Java 的安装路径。首先通过终端打开 Hadoop-env.sh 文件,代码如下:
sudo gedit ./hadoop-3.2.0/etc/hadoop/hadoop-env.sh
Hadoop-env.sh 文件打开后,找到 # export JAVA_HOME
处(可以使用快捷键 <CTRL+F>
查找),在等号后面添加 JDK 的安装位置,并将 export 前面的 # 号删掉,如下图所示:
修改完毕后,单击 保存
按钮,关闭 Hadoop-env.sh 文件。
(2) 修改 core-site.xml 文件,通过终端打开 core-site.xml 文件,代码如下:
sudo gedit ./hadoop-3.2.0/etc/hadoop/core-site.xml
core-site.xml 文件打开后,需要设置 HDFS 的默认名称、地址和端口号,将如下代码添加到 <configuration>
和 </configuration>
之间
<!-- 配置HDFS的主节点,NameNode -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://10.0.2.15:9000</value>
</property>
<!-- 配置HADOOP运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata01/hadoop-3.2.0/dataNode_1_dir</value>
</property>
如下图所示:
说明:代码中的 10.0.2.15
为笔者的虚拟机的 IP 地址,读者可以通过 ifconfig 命令查看本机的 IP 地址。XML文件中,<!--、-->
中间的内容为注释。修改完毕后,单击 保存
按钮,关闭 core-site.xml
文件。
(3) 修改 yarn-site.xml 文件。YARN 的站点配置文件是 yarn-site.xml,通过终端打开 yarn-site.xml 文件的代码如下:
sudo gedit ./hadoop-3.2.0/etc/hadoop/yarn-site.xml
YARN-site.xml 文件打开后,将如下代码添加到 <configuration>
和</configuration>
之间,代码如下:
<!--配置ReourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>10.0.2.15</value>
</property>
<!--配置NodeManager执行任务的方式:shuffle:洗牌 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
修改完毕后,单击 保存
按钮,关闭 YARN-site.xml
文件。如果 YARN 集群有多个节点,还需要配置 yarn.resourcemanager.address 等参数。
(4) 修改 mapred-site.xml 文件。mapred-site.xml 为计算框架文件,用于设置监控 Map 与 Reduce 程序的 JobTracker 任务分配情况以及 TaskTracker 任务运行情况。打开 mapred-site.xml 文件,命令如下:
sudo gedit ./hadoop-3.2.0/etc/hadoop/mapred-site.xml
mapred-site.xml 文件打开后,将如下代码添加到 <configuration>
和</configuration>
之间,设置 mapreduce 的框架为 yarn。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改完毕后,单击 保存
按钮,关闭 mapred-site.xml
文件。
(5) 修改 hdfs-site.xml 文件。hdfs-site.xml 用于设置 HDFS 分布式文件系统。该文件指定与 HDFS 相关的配置信息。需要修改 HDFS 默认的块的副本属性,因为 HDFS 默认情况下每个数据块保存 3 个副本,而在伪分布式模式下运行时,由于只有一个数据节点,所以需要将副本个数改为1;否则 Hadoop 程序会报错。打开 hdfs-site.xml 文件,命令如下:
sudo gedit ./hadoop-3.2.0/etc/hadoop/hdfs-site.xml
同样,hdfs-site.xml 文件打开后,将如下代码添加到 <configuration>
和 </configuration>
之间。
<!-- 指定DataNode存储block的副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 指定namenode数据存储目录 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/bigdata01/hadoop-3.2.0/hadoop_data/hdfs/namenode</value>
</property>
<!-- 指定datanode数据存储目录 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/bigdata01/hadoop-3.2.0/hadoop_data/hdfs/datanode</value>
</property>
<!-- 指定ip地址 -->
<property>
<name>dfs.http.address</name>
<value>10.0.2.15:50070</value>
</property>
修改完毕后,单击 保存
按钮,关闭 hdfs-site.xml
文件。注意:将dfs.replication配置成超过3的数是没有意义的,因为HDFS的最大副本数就是3。
(6) 修改 /etc/profile 文件。
sudo gedit /etc/profile
export HADOOP_HOME=./hadoop-3.2.0
:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
如下图所示:
4、创建并格式化文件系统
在上面的小节,hdfs-site.xml 文件中,指定了 NameNode 和 DataNode 的数据存储目录,但是这两个目录并没有创建,在本小节中,创建 NameNode 和 DataNode 的数据存储目录,并进行格式化。创建 NameNode 和 DataNode 的数据存储目录,命令如下:
- 创建 NameNode 数据存储目录。mkdir -p ./hadoop-3.2.0/hadoop_data/hdfs/namenode
- 创建 DataNode 数据存储目录。mkdir -p ./hadoop-3.2.0/hadoop_data/hdfs/datanode
- 创建 HADOOP 运行时产生文件的存储目录。mkdir -p ./hadoop-3.2.0/dataNode_1_dir/datanode
- 如果 NameNode 目录中已经有数据,那么可以将 HDFS 进行格式化。命令:hdfs namenode -format
5、启动与关闭 Hadoop
通过前面的小节,已经完成了 Hadoop 伪分布式单节点的安装,现在开始启动 Hadoop。使用命令 start-all.sh
,来同时启动 HDFS 和 YARN,执行结果如下图所示:
说明:start-all.sh命令可以拆分为start-dfs.sh和start-yarn.sh,分别用来启动HDFS和YARN。在启动Hadoop时,用这两种方式都可以。
下面通过 jps 命令检验一下是否全部开启 Hadoop 的守护进程,执行结果如图所示:
在上图的结果图中,DataNode、SecondaryNameNode 和 NameNode 是文件系统 HDFS 的进程,NodeManager、ResourceManager 是 YARN 的进程。只有这 5 个进程全部启动,才说明 Hadoop 启动成功了。
关闭 Hadoop 的命令:stop-all.sh,执行结果如下图所示:
说明:stop-all.sh命令可以拆分为stop-dfs.sh和stop-yarn.sh,分别用来关闭HDFS和YARN。在关闭Hadoop时,使用“stop-all.sh”或者“stop-dfs.sh”+“stop-yarn.sh”这两种方式都可以。
6、查看 Hadoop 的基本信息
6.1、查看 HDFS Web 界面
HDFS Web 界面可以检查当前 HDFS 与 DataNode 的运行情况,打开步骤如下。打开浏览器 Firefox,在浏览器的地址栏中输入:10.0.2.15:50070,向下滑动页面,可以看到活动节点,如下图所示:
说明:10.0.2.15 为笔者虚拟机中的 IP 地址,读者应根据实际情况进行替换。
6.2、查看 YARN Web 界面
YARN Web 界面也被称为 Hadoop ResourceManager Web 界面,在此页面中,可以查看当前 Hadoop 的状态;Node 节点;应用程序、进程的运行状态。打开 YARN 的 Web 界面的步骤如下。
打开浏览器 Firefox,在浏览器的地址栏中输入:10.0.2.15:8088,单击 Nodes 链接,显示当前已经运行的节点。因为本篇博文中安装的是伪分布式的 Hadoop,所以会看到当前只有一个节点,如下图所示:
三、在 Centos7 中 进行 Hadoop 伪分布式安装
-
设置静态 ip:vi /etc/sysconfig/network-scripts/ifcfg-ens33(不同系统 ens 后的数字不一样,读者需根据自己本机实际情况)
注意:IPADDR 的值,192.168.61 都是取自虚拟机中虚拟网络编辑器中子网地址的值,最后的 101 是我自己取的,这个值可以取 3~254 之间的任意一个数值,建议大家也按照我这个取值为 101,这样方便统一,后期和我在博客中使用的都是一样的。GATEWAY 的值是取自虚拟网络编辑器中 NAT 设置里面的网关的值,DNS1 的值和 GATEWAY 的值一样即可。
最后:service network restart,如下图所示:
-
hostname:设置临时主机名和永久主机名。临时:hostname bigdata01、永久:vi /etc/hostname 将里面的主机名改为 bigdata01。紧接着重启查看:reboot -h now、hostname。
-
firewalld:临时关闭防火墙+永久关闭防火墙。临时:systemctl stop firewalld、永久:systemctl disable firewalld、确认是否从开机启动项中关闭了:systemctl list-unit-files | grep firewalld
注意:针对不同版本的 centos 系统,关闭防火墙的命令是不一样的,目前的两大主流版本是 centos6 和 centos7,他们两个关闭防火墙的命令也是不一样的。刚刚博主演示的是 centos7 中防火墙关闭的命令,如果你遇到了 centos6,也想关闭防火墙的话可以自己百度一下命令,后续博主也会在 Linux 从菜鸟到精通专栏 中继续更新 Centos6 的相关操作。 -
ssh 免密码登录。在上面 Ubuntu 中详细介绍过,这里博主就不再赘述。
1、ssh-keygen -t rsa、注意:执行这个命令以后,在 Centos 需要连续按 4 次回车键回到 linux 命令行才表示这个操作执行结束,在按回车的时候不需要输入任何内容。
2、把公钥拷贝到需要免密码登录的机器上面:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys -
安装 JDK。先:mkdir -p /data/soft、把 JDK 的安装包上传到 /data/soft/ 目录下
解压 jdk 安装包:tar -zxvf jdk-8u202-linux-x64.tar.gz
重命名 jdk:mv jdk1.8.0_202/ jdk1.8
配置环境变量 JAVA_HOME:vi /etc/profile
立即生效:source /etc/profile
验证:java -version
-
把 hadoop 的安装包上传到 /data/soft 目录下,解压 hadoop 安装包:tar -zxvf hadoop-3.2.0.tar.gz
-
配置一下环境变量 vi /etc/profile
-
修改 Hadoop 相关配置文件。进入配置文件所在目录:cd etc/hadoop/
先修改 hadoop-env.sh,执行命令:vi hadoop-env.sh,如下图所示:
修改 core-site.xml 文件,注意 fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致,执行 vi core-site.xml 命令,添加内容如下:<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata01:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/data/hadoop_repo</value> </property> </configuration>
修改 hdfs-site.xml 文件,把 hdfs 中文件副本的数量设置为1,因为现在伪分布集群只有一个节点。首先:vi hdfs-site.xml,添加内容如下:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
修改 mapred-site.xml,设置 mapreduce 使用的资源调度框架。首先:vi mapred-site.xml,添加内容如下:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
修改 yarn-site.xml,设置 yarn 上支持运行的服务和环境变量白名单。首先:vi yarn-site.xml,添加内容如下:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration>
修改 workers,设置集群中从节点的主机名信息,在这里就一台集群,所以就填写 bigdata01 即可,首先:vi workers,然后将里面的 localhost 改为 bigdata01。
-
格式化 HDFS。cd /data/soft/hadoop-3.2.0、bin/hdfs namenode -format,如下图所示:
如果提示错误,一般都是因为配置文件的问题,当然需要根据具体的报错信息去分析问题。注意:格式化操作只能执行一次,如果格式化的时候失败了,可以修改配置文件后再执行格式化,如果格式化成功了就不能再重复执行了,否则集群就会出现问题。如果确实需要重复执行,那么需要把/data/hadoop_repo
目录中的内容全部删除,再执行格式化。 -
启动伪分布集群,使用 sbin 目录下的 start-all.sh 脚本。
执行的时候发现有很多 ERROR 信息,提示缺少 HDFS 和 YARN 的一些用户信息。解决方案如下:修改 sbin 目录下的 start-dfs.sh,stop-dfs.sh 这两个脚本文件,在文件前面增加如下内容:cd sbin/vi start-dfs.sh,增加以下内容:
HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
vi stop-dfs.sh,增加以下内容:
HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
修改 sbin 目录下的 start-yarn.sh,stop-yarn.sh 这两个脚本文件,在文件前面增加如下内容。vi start-yarn.sh,增加以下内容:
YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
vi stop-yarn.sh,增加以下内容:
YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
再启动集群:
-
验证集群进程信息。执行 jps 命令可以查看集群的进程信息,去掉 jps 这个进程之外还需要有 5 个进程才说明集群是正常启动的。
-
还可以通过 webui 界面来验证集群服务是否正常。HDFS webui 界面:http://192.168.61.101:9870
YARN webui 界面:http://192.168.61.101:8088
如果想通过主机名访问,则需要修改 Windows 机器中的 hosts 文件。文件所在位置为:C:\Windows\System32\drivers\etc\HOSTS。在文件中增加下面内容,这个其实就是 Linux 虚拟机的 ip 和主机名,在这里做一个映射之后,就可以在 Windows 机器中通过主机名访问这个 Linux 虚拟机了。
使用 http://bigdata01:8088/cluster YARN webui 界面,如下图所示:
-
停止集群。如果修改了集群的配置文件或者是其它原因要停止集群,可以使用命令:sbin/stop-all.sh。
转载:https://blog.csdn.net/xw1680/article/details/115434353