学习Hadoop(一)——搭建hadoop集群

蔚落 2024-03-31 11:25 143阅读 0赞

最近开始学习大数据的相关知识,要学习大数据就不得不提到Hadoop。
一般来说学习一门新的知识,很多都是先理论再实践
在这里插入图片描述
我则不然,先实践,再了解理论
在这里插入图片描述

目录

  • 一、VM网络设置
  • 二、安装Centos7
    • 2.1 网络配置
    • 2.2 设置主机名
    • 2.3 hosts设置
    • 2.4 安装JDK
    • 2.5 关闭防火墙
    • 2.6 同步时间
    • 2.7 克隆服务器
    • 2.8 免密钥登陆
  • 三、安装hadoop
    • 3.1 下载hadoop
    • 3.2 解压
    • 3.3 环境变量配置
    • 3.4 检查
  • 四、部署hadoop
    • 4.1 集群部署规划
    • 4.2 环境配置
      • 4.2.1 hadoop-env.sh
      • 4.2.1 core-site.xml
      • 4.2.2 hdfs-site.xml
      • 4.2.3 yarn-site.xml
      • 4.2.4 mapred-site.xml
      • 4.2.5 workers
    • 4.3 复制hadoop
  • 五、启动集群
    • 5.1 格式化NameNode
    • 5.2 启动HDFS
    • 5.3 启动YARN
    • 5.4 启动历史服务器
    • 5.5 查看集群状态
  • 六、Web端查看
    • 6.1 HDFS
    • 6.2 YARN
    • 6.3 历史服务器

一、VM网络设置

打开控制面板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下配置
在这里插入图片描述
设置虚拟机虚拟网络编辑器
在这里插入图片描述
在这里插入图片描述

二、安装Centos7

基于centos环境进行搭建,所以需要安装centos7的虚拟机。

分别搭建三台虚拟机:masterslave0slave1
后面两台都是基于第一台进行克隆。
硬件配置为:






















设备
硬盘 20GB
内存 2GB
处理器 2

具体操作参考安装Centos7

2.1 网络配置

先对master服务器进行配置静态ip。
另外两台等后面克隆后进行设置

  1. vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO设置为static

  1. BOOTPROTO="static"

添加ip信息

  1. IPADDR="192.168.216.128"
  2. NETMASK="255.255.255.0"
  3. GATEWAY="192.168.216.2"
  4. DNS1="8.8.8.8"
  5. DNS2="8.8.8.4"

在这里插入图片描述
重启网路

  1. service network restart

在这里插入图片描述
这个说明重启成功
当前服务器的ip为:192.168.216.128
后续两台克隆出来的服务器依照上面的步骤设置ip:

slave0:192.168.216.129
slave1:192.168.216.130

2.2 设置主机名

先对master服务器进行配置主机名。
另外两台等后面克隆后进行设置

  1. vi /etc/sysconfig/network

修改为:

  1. # Created by anaconda
  2. NETWORKING=yes
  3. HOSTNAME=master

修改主机名

  1. vi /etc/hostname

填写名称(对应服务器修改各自名称)

  1. master

在这里插入图片描述
重新启动该主机,就会发现主机名被修改了。
两台克隆的服务器后续也重复上面的操作进行修改。

2.3 hosts设置

修改/etc/hosts文件,配置主机和ip的映射
在原有的内容下面添加以下内容:

  1. 192.168.216.128 master
  2. 192.168.216.129 slave0
  3. 192.168.216.130 slave1

服务器都一样的内容,只需要修改master,两台克隆的服务器通过克隆即可。

2.4 安装JDK

先卸载自带的openjdk

  1. rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

下载jdk,我这里装的是jdk1.8。
进入官网:https://www.oracle.com/java/technologies/downloads
在这里插入图片描述
将下载后的文件放到/usr/local/java

  1. cd /usr/local/java
  2. tar zxvf 下载包的包名
  3. mv 解压后的包名 jdk1.8

配置环境变量
在/etc/profile文件中末尾加上

  1. export JAVA_HOME=/usr/local/java/jdk1.8
  2. export PATH=$PATH:$JAVA_HOME/bin
  3. export CLASSPATH=$JAVA_HOME/lib

刷新环境变量

  1. source /etc/profile

查看java版本

  1. java -version

显示java版本,安装成功
在这里插入图片描述

2.5 关闭防火墙

查看防火墙状态

  1. systemctl status firewalld.service

如下标识防火墙处于开启状态
在这里插入图片描述
关闭防火墙

  1. systemctl stop firewalld.service

防止服务器重启时防火墙启动

  1. systemctl disable firewalld.service

2.6 同步时间

编辑虚拟机设置
在这里插入图片描述
选项,VMware Tools勾选“将客户机时间与主机同步
在这里插入图片描述

2.7 克隆服务器

从上面配置出来的服务器进行克隆。

注意:克隆前需要关闭被克隆的服务器

鼠标右键点击服务器
管理→克隆
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
设置克隆机的服务器名称和存放位置
在这里插入图片描述
点击完成,克隆完毕。
依此克隆出slave0和slave1

对克隆服务器进行配置,依照上面步骤:

2.1 网络配置
2.2 设置主机名

2.8 免密钥登陆

在master服务器输入下面命令

  1. ssh-keygen -t rsa

进入ssh文件夹

  1. cd ~/.ssh

把公钥文件发送到自己和其它服务器。
以发给自己为例

  1. ssh-copy-id -i id_rsa.pub root@master

输入yes,然后输入目标服务器的root密码
成功后,输入以下命令

  1. ssh root@master

依此,也设置master免密登录slave0、slave1

三、安装hadoop

3.1 下载hadoop

通过http://archive.apache.org/dist/hadoop/common/
下载自己需要的hadoop版本。
我用的是3.1.3版本
在这里插入图片描述
将文件下载并放在master服务器的目录下(自己指定,我存在的是/usr/local)

3.2 解压

进入对应文件夹

  1. cd /usr/local

解压文件

  1. tar -zxvf hadoop-3.1.3.tar.gz

重命名文件

  1. mv hadoop-3.1.3 hadoop

3.3 环境变量配置

配置环境变量
在/etc/profile文件中末尾加上

  1. export HADOOP_HOME=/usr/local/hadoop/
  2. export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

刷新环境变量

  1. source /etc/profile

3.4 检查

检查版本

  1. hadoop version

在这里插入图片描述

四、部署hadoop

4.1 集群部署规划
























master slave0 slave1
HDFS NameNode
DataNode
DataNode SecondaryNameNode
DataNode
YARN NodeManager ResourceManager
NodeManager
NodeManager

注意:NameNode、SecondaryNameNode、ResourceManager这三个要分开不要配置在同一台虚拟机上

4.2 环境配置

配置文件位于hadoop安装目录下的/etc/hadoop目录
主要需要修改的文件为以下四个:

hadoop-env.sh
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
workers

4.2.1 hadoop-env.sh

hadoop运行中所需要的环境变量,例如JAVA_HOME

  1. export JAVA_HOME=/usr/local/java/jdk1.8

4.2.1 core-site.xml

  • 配置hdfs对应的主机和端口
  • 对那个hadopp数据的存放目录

创建存放hadoop数据目录

  1. mkdir /opt/hadoopdata

标签内填充以下内容

  1. <property>
  2. <name>fs.defaultFS</name>
  3. <value>hdfs://master:9000</value>
  4. <!-- 以上ip地址或主机名要按实际情况修改 -->
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/opt/hadoopdata</value>
  9. </property>

4.2.2 hdfs-site.xml

配置namenode和SecondaryNameNode

标签内填充以下内容

  1. <property>
  2. <name>dfs.namenode.http-address</name>
  3. <value>master:9870</value>
  4. </property>
  5. <property>
  6. <name>dfs.namenode.secondary.http-address</name>
  7. <value>slave1:9868</value>
  8. </property>

4.2.3 yarn-site.xml

标签内填充以下内容

  1. <!-- 指定MR走shuffle -->
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. <!-- 指定ResourceManager的地址-->
  7. <property>
  8. <name>yarn.resourcemanager.hostname</name>
  9. <value>slave0</value>
  10. </property>
  11. <!-- 环境变量的继承 -->
  12. <property>
  13. <name>yarn.nodemanager.env-whitelist</name>
  14. <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
  15. </property>
  16. <!-- 如果要程序的运行日志信息上传到HDFS系统上,可配置日志聚集(选择配置) -->
  17. <!-- 开启日志聚集功能 -->
  18. <property>
  19. <name>yarn.log-aggregation-enable</name>
  20. <value>true</value>
  21. </property>
  22. <!-- 设置日志聚集服务器地址 -->
  23. <property>
  24. <name>yarn.log.server.url</name>
  25. <value>http://master:19888/jobhistory/logs</value>
  26. </property>
  27. <!-- 设置日志保留时间为7天 -->
  28. <property>
  29. <name>yarn.log-aggregation.retain-seconds</name>
  30. <value>604800</value>
  31. </property>

4.2.4 mapred-site.xml

标签内填充以下内容

  1. <!-- 指定MapReduce程序运行在Yarn上 -->
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <!-- 如果要看程序的历史运行情况,可以配置历史服务器(选择配置) -->
  7. <!-- 历史服务器端地址 -->
  8. <property>
  9. <name>mapreduce.jobhistory.address</name>
  10. <value>master:10020</value>
  11. </property>
  12. <!-- 历史服务器web端地址 -->
  13. <property>
  14. <name>mapreduce.jobhistory.webapp.address</name>
  15. <value>master:19888</value>
  16. </property>

在配置了

4.2.5 workers

删除原内容,填写集群服务器主机名称

  1. master
  2. slave0
  3. slave1

注意:添加该文件时,内容上下不允许有空行,前后不允许有空格

4.3 复制hadoop

将master的hadoop远程发送给slave0和slave1两台服务器

  1. scp -r /usr/local/hadoop root@slave0:/usr/local
  2. scp -r /usr/local/hadoop root@slave1:/usr/local

给两台服务器的环境变量加上hadoop
参考 3.3 环境变量配置

五、启动集群

5.1 格式化NameNode

第一次启动需要在master节点先格式化NameNode

  1. hdfs namenode -format

在这里插入图片描述

5.2 启动HDFS

NameNode节点(master)上添加环境变量

  1. export HDFS_NAMENODE_USER=root
  2. export HDFS_DATANODE_USER=root
  3. export HDFS_SECONDARYNAMENODE_USER=root

启动

  1. /usr/local/hadoop/sbin/start-dfs.sh

在这里插入图片描述

5.3 启动YARN

ResourceManager节点(slave0)上添加环境变量

  1. export YARN_RESOURCEMANAGER_USER=root
  2. export YARN_NODEMANAGER_USER=root

启动

  1. /usr/local/hadoop//sbin/start-yarn.sh

在这里插入图片描述

5.4 启动历史服务器

只有配置了才进行启动。
(mapred-site.xml中配置)

  1. mapred --daemon start historyserver

5.5 查看集群状态

在各个节点上输入以下命令查看

  1. jps

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、Web端查看

浏览器通过端口可以查看对应启动的服务

6.1 HDFS

访问
http://master:9870
在这里插入图片描述
这里显示在这个位置可以执行一系列操作

6.2 YARN

访问
http://slave0:8088
在这里插入图片描述
这里会显示集群的执行任务

6.3 历史服务器

访问
http://master:19888/jobhistory
在这里插入图片描述
可在该页面查看历史日志

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Hadoop

    Hadoop集群搭建 最近终于忙完了所以把hadoop简单集群的搭建也弄处来给大家参考,这个教程仅仅提供一个最简单的单纯的hadoop集群环境搭建并没有涉及到更多组建搭建

    相关 Hadoop

            前言:搭建hadoop集群的博文很多,不能总是每次搭建时都花时间搜索一篇适合自己机器、文章简练清晰的教程,笔者也是描述自己搭建Hadoop集群的详细过程,以备日