当前位置:   article > 正文

【云计算】Hadoop集群安装

hadoop集群安装


前言

Hadoop是一种开源框架,可用于处理大数据集。它基于Google的MapReduce算法和Google文件系统(GFS)的概念而来。Hadoop可在廉价硬件上运行,并能够提供高度可靠性和容错性。

Hadoop主要由两个核心组件组成:

  • HDFS:Hadoop分布式文件系统,用于存储和管理大规模数据集;
  • MapReduce:用于并行处理和生成大规模数据集的分布式算法框架。
    除了这两个核心组件外,Hadoop还包括许多其他工具和应用程序,例如Pig、Hive等。

使用Hadoop进行大数据处理时,需要将数据划分为较小的块,然后将这些块分配给多台机器进行并行处理。每个机器都可以在本地对其分配的块执行MapReduce任务,并将结果上传到主节点进行聚合。整个过程非常复杂,但Hadoop能够自动完成这些工作,使用户只关注业务逻辑即可。

Hadoop最初由Apache基金会开发,现在已成为大数据领域的标准之一。

一、环境

软件及环境版本
VMware17
Ubuntu20.0.4
Hadoop3.3.5

二、安装虚拟机及配置

虚拟机下载网址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
在这里插入图片描述
(安装过程略)
激活:

JU090-6039P-08409-8J0QH-2YR7F 或者  MC60H-DWHD5-H80U9-6V85M-8280D
  • 1

安装好后界面:
在这里插入图片描述

配置网络

在这里插入图片描述
选择虚拟网络编辑器:
在这里插入图片描述
在这里插入图片描述
这里配置为192.168.200.0/24网段
在这里插入图片描述
网络给DHCP也可:
在这里插入图片描述
到这里我们的网络环境就配置好了,也可以在Ubuntu中配置固定的IP地址,这个我们放到后面。

三、安装Ubuntu及配置

下载ISO镜像

下载Ubuntu镜像文件(清华源):https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/
在这里插入图片描述
我们选择带桌面:
在这里插入图片描述
下载完成后为iso文件

VMware安装Ubuntu

新建虚拟机
在这里插入图片描述
这里我们自定义:
在这里插入图片描述
这里如果选择选项二VMware会自动给你简易安装Ubuntu,推荐向手动安装:
在这里插入图片描述
在这里插入图片描述
选择虚拟机保存位置注意要放在一个比较大的硬盘中:
在这里插入图片描述
存储可以按需设置,注意这里的硬盘是虚拟的硬盘并不会真的将硬盘拆分,VMware是用多少存储多少,并不会影响其他使用:
在这里插入图片描述
在这里插入图片描述
可以向我一样将虚拟机建个文件夹分类:
在这里插入图片描述
在这里插入图片描述
我们设置一个镜像文件:
在这里插入图片描述
网卡选择nat(可以出网):
在这里插入图片描述
其他配置按需,内存和cpu按照电脑配置更改注意内存至少2G,配置好后开机:
在这里插入图片描述
在这里插入图片描述

语言可以选择中文:
在这里插入图片描述
我们选择汉语拼音:
在这里插入图片描述
这里注意不要安装更新不然下载官方源非常慢:
在这里插入图片描述
这里是在虚拟环境对硬盘没有影响:
在这里插入图片描述
在这里插入图片描述
时区选择上海:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ip a 命令查看网卡是否有ip地址
在这里插入图片描述
ping baidu.com测试网络是否正常:
在这里插入图片描述
在这里插入图片描述

sudo passwd root#给root设置密码
su - #切换到root
apt-get update #更新软件源缓存
  • 1
  • 2
  • 3

Ubuntu配置:

apt-get install vim -y # 安装一下vim,因为版本自带的vi有问题这个一直没有修复过
vim /etc/apt/sources.list #直接输入:200dd然后按i健将下面的url复制进去,复制完成后:wq保存退出
阿里源:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
如果无法复制到vm虚拟机直接用内置火狐搜索阿里源即可复制进去:这个问题后面解决

apt-get upgrade #更新
  • 1

在这里插入图片描述

apt-get install ssh -y # 安装ssh服务
vim /etc/ssh/sshd_config #按i健写入配置,:wq保存退出
  • 1
  • 2

在这里插入图片描述

systemctl enable ssh #加入开机启动
systemctl start ssh #启动ssh服务
systemctl restart ssh #重启ssh服务
  • 1
  • 2
  • 3

在这里插入图片描述
可以看到我们的服务启动22端口:
在这里插入图片描述
我们使用ssh工具连接这里推荐FinalShell,也可以用其他的ssh工具如CRT
在这里插入图片描述

在这里插入图片描述
输入用户名密码和IP连接:
在这里插入图片描述
然后我们拍个快照(快照可以快速恢复环境):
在这里插入图片描述
快速克隆slave节点:
关机后操作:
在这里插入图片描述
选择完整克隆
在这里插入图片描述

在这里插入图片描述
按照一样的方法克隆slave2:在这里插入图片描述
克隆完成后就有三台服务器了:
修改slave1和2的内存为2G:
在这里插入图片描述

修改slavel1的主机名:
sudo vim /etc/hostname
reboot #重启
slavel2一样操作
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
为了区别slavel的用户这里我们创建用户并删除原有的master用户:
在这里插入图片描述
在这里插入图片描述

使用slavel1登录:删除master用户
deluser master
slavel2相同操作
  • 1
  • 2
  • 3

在这里插入图片描述
查看地址:
在这里插入图片描述

在这里插入图片描述
使用ssh工具连接:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置结果IP

主机名IP
Master192.168.200.128
slave1192.168.200.129
slave2192.168.200.130
固定IP地址:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
其他两台一样设置:
在这里插入图片描述
在这里插入图片描述

免密登录

  • Hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts 文件中寻找对应的 IP 地址,一旦找到,系统会立即打开对应网页,如果没有找到,则 系统会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。
  • 为了机器能够快速识别自己以及其他机器,我们可以做一下域名和 IP 的 hosts 映射,这样在之后的操作中,我们就可以直接用域名来代替 IP 地址。
修改三台的hosts文件:
vim /etc/hosts
将以下内容键入:
192.168.200.128   master
192.168.200.129   slave1
192.168.200.130   slave2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
注意slave12需要修改127.0.0.1:在这里插入图片描述
修改配置后用命令重启网卡或者重启生效:
测试连通性:
在这里插入图片描述
配置免密登录(普通用户权限):生产环境尽量使用用户权限

生成公钥
ssh-keygen  -t rsa#一直按回车
  • 1
  • 2

在这里插入图片描述

其他两台机器一样操作:

我们将公钥进行整合

master:
cp id_rsa.pub  authorized_keys # 复制一个公钥
将其他两个公钥复制到此文件内:
  • 1
  • 2
  • 3

在这里插入图片描述
将公钥分发给其他两台电脑或者将公钥复制过去:
其他两台:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述
免密登录成功

在这里插入图片描述

JAVA安装

https://adoptium.net/zh-CN/temurin/releases/?version=8
在这里插入图片描述
将java上传给master节点:
在这里插入图片描述
以下配置只在master上操作:

tar -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz #解压
chmod  755 jdk8u372-b07/ -R #加个权限
vim /root/.bashrc #编辑系统环境变量
最后一行添加:
# JAVA
export JAVA_HOME=/opt/jdk8u372-b07
export PATH=${JAVA_HOME}/bin:$PATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

 source  /root/.bashrc #更新环境变量
  • 1

在这里插入图片描述

hadoop安装:

官网下载:https://hadoop.apache.org/releases.html
在这里插入图片描述
点击下载最好使用迅雷:
在这里插入图片描述

这里使用master配置后用scp传输给其他两台:

上传hadoop上传到master的/opt
tar -zxvf hadoop-3.3.5.tar.gz  #解压
配置环境变量:
vim  /root/.bashrc #添加下面内容
cd /opt
chmod	 755 hadoop-3.3.5 -R
# HADOOP
export HADOOP_HOME=/opt/hadoop-3.3.5
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
source  /root/.bashrc #更新环境变量
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述
修改hadoop配置文件:
hadoop配置存在与/opt/hadoop-3.3.5/etc/hadoop/目录下:
在这里插入图片描述

文件的作用

core-site.xml:

  1. 是Hadoop的一个配置文件,用于配置Hadoop分布式系统中的核心参数。
  2. 此配置文件定义了Hadoop集群中所有节点共享的属性和变量,如文件系统名称(fs.default.name)、Hadoop运行环境的I/O设置(hadoop.tmp.dir)、RPC服务器的地址(hadoop.rpc.socket.factory.class.default)等。
  3. 同时,该配置文件还可以包含其他一些重要的属性和变量,比如数据块的大小、JobTracker和TaskTracker之间的通信端口等。通过修改core-site.xml文件,可以对Hadoop集群进行全局性的参数调整和优化。

core-site.xml

  1. 是Hadoop分布式系统中的一个配置文件,其主要作用是定义一个或多个全局属性和变量,以便在整个集群中使用。
  2. 定义文件系统:通过定义fs.defaultFS属性,可以指定Hadoop分布式文件系统的名称,默认情况下为hdfs://localhost:9000/。
  3. 配置Hadoop运行环境的I/O设置:可以通过指定hadoop.tmp.dir属性来定义Hadoop本地文件系统(LocalFileSystem)的临时目录。
  4. 包含其他重要参数:core-site.xml还包含了其他一些重要的属性和变量,如数据块的大小、JobTracker和TaskTracker之间的通信端口等。
  5. 配置安全性:通过设置hadoop.security.authentication属性可以启用Hadoop的安全功能。同时也可以使用SASL协议对Hadoop进行加密通信。
  6. 配置其他服务:core-site.xml还可以用于配置其他服务的连接信息,比如HBase和Hive。

yarn-site.xml

  1. 是Hadoop中的一个配置文件,用于配置YARN(Yet Another Resource Negotiator)资源管理器。该配置文件主要用于定义各种YARN服务和组件的配置参数和属性。
  2. 配置资源管理器:可以通过指定yarn.resourcemanager.address属性来设置ResourceManager的地址。此外,还可以通过属性yarn.resourcemanager.scheduler.class来设置使用哪种调度程序。
  3. 分配容器资源:yarn-site.xml也包含了多个与容器资源分配相关的参数,如yarn.scheduler.minimum-allocation-vcores、yarn.scheduler.maximum-allocation-mb等,这些参数用于控制YARN在执行应用程序时如何分配资源。
  4. 配置节点管理器:可以使用yarn.nodemanager.local-dirs属性设置本地目录,以存储节点管理器运行时使用的临时文件。
  5. 安全性配置:yarn-site.xml还包含了一些有关安全性的参数,如yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users属性,可以限制非特权用户运行任务的数量。
  6. 其他配置:除上述功能外,yarn-site.xml还包括其他一些配置,如NodeManager的最大重试次数、队列调度程序的特权级别和容忍度等。

mapred-site.xml

  1. 是Hadoop中的一个配置文件,用于配置MapReduce框架的一些参数和属性。MapReduce是Hadoop的一个核心组件,它主要用于处理大规模数据集的并行计算,提供了分布式计算的能力。
  2. 配置JobTracker:可以使用mapred.job.tracker属性指定JobTracker的地址。此外,还可以通过属性mapred.job.tracker.http.address来设置JobTracker Web UI的地址。
  3. 优化任务执行:mapred-site.xml包含了多个与任务执行相关的参数,如mapred.map.tasks、mapred.reduce.tasks等,这些参数用于控制MapReduce框架在执行任务时的并行度。
  4. 设置输入输出格式:可以通过属性mapreduce.inputformat.class来设置输入格式,通过属性mapreduce.outputformat.class来设置输出格式。
  5. 调整内存和磁盘限制:mapred-site.xml还包括一些与内存和磁盘限制相关的参数,如mapreduce.map.memory.mb、mapreduce.reduce.memory.mb等,这些参数用于调整MapReduce任务在执行时所能使用的内存和磁盘资源。
  6. 安全性配置:mapred-site.xml还包含了一些有关安全性的参数,如mapreduce.job.credentials.binary和mapreduce.job.acl-view-job等,这些参数用于对MapReduce作业的访问进行限制和管理。

修改配置:

core-site.xml

cd /opt/hadoop-3.3.5/etc/hadoop #进入目录
vim core-site.xml #修改
<configuration>
        <property>
                <name>fs.defaultFS</name>
                #这里可以修改为hdfs://master:9000
                <value>hdfs://192.168.200.128:9000</value>
        </property>
                # 配置hadoop运行时产生数据的存储目录,不是临时目录
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoop-3.3.5/tmp</value>
        </property>
</configuration>
保存退出:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

hdfs-site.xml

vim hdfs-site.xml
修改以下配置:
<configuration>
# 配置在hdfs中,一份文件存几份,默认是3份,一台机器只能存一份,小于datanode数量
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
                # 是否打开权限检查系统
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
                # 命名空间和事务在本地文件系统永久存储的路径
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/opt/hadoop-3.3.5/data/namenode</value>
        </property>
                # DataNode在本地文件系统中存放块的路径
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/opt/hadoop-3.3.5/data/datanode</value>
        </property>
</configuration>
修改完配置后需要创建以下文件夹用于数据存放:
mkdir -p /opt/hadoop-3.3.5/data/namenode
mkdir -p /opt/hadoop-3.3.5/data/datanode
mkdir -p /opt/hadoop-3.3.5/tmp
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

在这里插入图片描述

yarn-site.xml

vim yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
# 指定yarn的resourcemanager的地址(该地址是resourcemanager的主机地址
,即主机名或该主机的ip地址
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>
                # 指定mapreduce执行shuffle时获取数据的方式
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述

mapred-site.xml

vim mapred-site.xml 
<configuration>
# 指定mapreduce运行在yarn上
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.3.5</value>
        </property>
        <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.3.5</value>
        </property>
        <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.3.5</value>
        </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

在这里插入图片描述

hadoop-env.sh

在任意地方添加 JAVA_HOME和系统运行环境:

vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/jdk8u362-b09
export JAVA_HOME=/opt/jdk8u372-b07
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

workers

vim workers
master
slave1
slave2
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
配置完成后将hadoop和java发送给slave1和2:

scp /opt/hadoop-3.3.5 slave1:/opt
scp /opt/hadoop-3.3.5 slave2:/opt
scp /opt/jdk8u372-b07 slave1:/opt
scp /opt/jdk8u372-b07 slave2:/opt
scp /root/.bashrc slave1:/root/
scp /root/.bashrc slave2:/root/
在slave1和2执行:
source /root/.bashrc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

使用java -version查看是否配置成功
在这里插入图片描述

hdfs初始化:

三台执行:
hdfs namenode -format
  • 1
  • 2

如果初始化失败,需要用下面的命令手动清空 namenode 和 datanode 文件夹,调整配置后,重新初始化

启动 Hadoop

脚本启动:

脚本位置为:/opt/hadoop-3.3.5/sbin
在这里插入图片描述

./start-all.sh #启动所有进程
./start-dfs.sh #启动hdfs进程
./start-yarn.sh #启动yarn进程
./stop-all.sh #关闭所有进程
./stop-dfs.sh #关闭hdfs进程
./stop-yarn.sh #关闭yarn进程
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

命令方式启动:

Namenode:

hdfs --daemon start namenode
hdfs --daemon stop namenode
hdfs --daemon restart namenode
  • 1
  • 2
  • 3

Datanode:

hdfs --daemon start datanode
hdfs --daemon stop datanode
hdfs --daemon restart datanode
  • 1
  • 2
  • 3

ResourceManager:

yarn --daemon start resourcemanager
yarn --daemon stop resourcemanager
yarn --daemon restart resourcemanager
  • 1
  • 2
  • 3

NodeManager:

yarn --daemon start nodemanager
yarn --daemon stop nodemanager
yarn --daemon restart nodemanager
  • 1
  • 2
  • 3

启动

./start-all.sh
启动完毕后可以使用 jps 命令查看启动的 hadoop 进程
在这里插入图片描述
在这里插入图片描述
可以访问 http://192.168.200.128:9870或http://master:9870 ,查看 HDFS 运行情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以访问http://192.168.200.128:8088或 http://master:8088 查看所有 Yarn 任务的运行情况

在这里插入图片描述

如果出现卷只有一个master:

修改hosts文件:将127.0.0.1 master注释掉,重启即可
在这里插入图片描述

测试:

cd /opt/hadoop-3.3.5/share/hadoop/mapreduce #进入mapreduce目录
hadoop jar hadoop-mapreduce-examples-*.jar pi 10 10#我们可以使用一个简单的例子来测试一下 hadoop 是否能够正常运行我们从 hadoop 安装文件夹,启动一个终端,使用下面的命令,计算 pi 值。
  • 1
  • 2

在这里插入图片描述

在这里插入图片描述
到这里我们的hadoop就能正常使用了

总结

安装到这里就结束了,这里用的root用户安装的,在生产环境中建议使用普通用户进行安装,总结以下步骤
在安装Hadoop之后,需要完成以下几个步骤才能开始使用:

  1. 配置环境变量
    将Hadoop的bin和sbin目录加入PATH环境变量中,以便直接使用Hadoop命令。

  2. 修改配置文件
    根据实际情况修改Hadoop的配置文件,特别是core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等。

  3. 格式化HDFS
    在第一次启动Hadoop之前,需要格式化HDFS来创建默认的目录结构。

  4. 启动Hadoop
    使用start-all.sh脚本或手动启动各个组件的进程,开始运行Hadoop集群。

  5. 测试Hadoop
    可以使用Hadoop自带的示例程序,如WordCount和PiEstimator等,来测试Hadoop集群是否正确运行。

总的来说,在安装和配置Hadoop之后,需要对其进行一些基础设置和测试,以确保其正常运行。如果出现问题,需要逐一排查相关的错误,并及时解决。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/828027
推荐阅读
相关标签
  

闽ICP备14008679号