Hadoop安装与配置

本文最后更新于 4 年前,文中所描述的信息可能已发生改变。

Hadoop安装与配置

一、安装Hadoop

1.1 修改网络配置

在添加完虚拟主机后发现其网络地址与我的vmware的设置不同于是修改虚拟机的网段为230

  1. 运行ip addr指令显示地址

    ip addr
    image-20241121164556147
  2. 切换到/etc/sysconfig/network-scripts目录下

    cd /etc/sysconfig/network-scripts
  3. 然后编辑ifcfg-ens33用于修改IP地址

    IPADDR=192.168.230.100
    GATEWAY 192.168.230.2
    DNS1=192.168.230.2
    image-20241121164136790
  4. 重启网卡并ping百度检测网络是否修正完成

    shell
    systemctl restart network 
    ping www.baidu.com
    image-20241121165311962

1.2 模板虚拟机环境准备

  1. 安装 epel-release

    shell
     yum install -y net-tools
    image-20241121170339182
  2. 安装 net-tools

    但是无镜像可以,猜测与centos停止维护有关尝试更换为国内镜像源

    image-20241121170818309
    1. 备份yum源文件

      shell
      sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
      image-20241121171152800
    2. 下载国内源

      shell
      sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      image-20241121171330227
    3. 尝试重新下载

      shell
      sudo yum install -y net-tools
      image-20241121171607547
  3. 安装更新vim

    shell
    sudo yum install -y vim
    image-20241121171817579
  4. 关闭防火墙

    shell
    systemctl stop firewalld 
    systemctl disable firewalld.service
    image-20241121172101276
  5. 创建atguigu用户,并修改atguigu用户的密码

    shell
    [root@hadoop100 ~]# useradd atguigu 
    [root@hadoop100 ~]# passwd atguigu
  6. 配置atguigu用户具有root权限,方便后期加sudo执行root权限的命令

    vim /etc/sudoers

    修改/etc/sudoers 文件,在%wheel这行下面添加一行,如下所示:

    ## Allow root to run any commands anywhere  root     ALL=(ALL)      ALL  ## Allows people in group wheel to run all commands  %wheel  ALL=(ALL)        ALL
  7. 在/opt目录下创建文件夹,并修改所属主和所属组

    1. 在/opt目录下创建module、software文件夹
    2. 修改module、software 文件夹的所有者和所属组均为atguigu用户
    3. 查看module、software 文件夹的所有者和所属组
  8. 卸载虚拟机自带的JDK

    shell
    root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
  9. 重启虚拟机

    shell
    reboot

1.3. 克隆虚拟机

  1. 使用模板主机克隆出三台虚拟机

    image-20241126010546420
  2. 逐一修改克隆机的IP

    shell
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    192.168.10.100 hadoop100 
    192.168.10.101 hadoop101 
    192.168.10.102 hadoop102 
    192.168.10.103 hadoop103
  3. 修改hosts文件,将刚才的ip添加进去。

    image-20241126102045275

1.4 安装JDK

  1. 上传JDK压缩包

  2. 将JDK安装包移动到/opt/software

    image-20241126102521039
  3. 解压JDK到/opt/module

    image-20241126102726887
  4. 配置JDK环境变量

    image-20241126103252409
  5. 测试java安装是否成功

    存在bug在配置完成java环境后依旧不能使用,经排查缺少glibc.i686,安装后即可使用

    shell
    sudo yum install glibc.i686
    image-20241126105602863image-20241126105758881

1.5 安装Hadoop

  1. 下载导入

  2. 解压安装文件到/opt/module下面

    image-20241126113311516
  3. 查看是否解压成功

    image-20241126113331819
  4. 将Hadoop添加到环境变量

    image-20241126113552534

    保存好,退出生效

  5. 查看是否生效

    image-20241126113822603

二、 Hadoop运行模式

2.1 本地运行(官方WordCount)

  1. 创建在hadoop-3.4.1文件下面创建一个wcinput文件夹

    image-20241126114502788
  2. 在wcinput文件下创建一个word.txt文件

    image-20241126114621536
  3. 编辑word.txt文件

    image-20241126114551527
  4. 执行程序

    image-20241126114817692
  5. 查看结果

    image-20241126114844284

2.2 完全分布式运行模式

2.2.1 虚拟机准备

详见前面

2.2.2 编写集群分发脚本xsync

  1. scp 安全拷贝

    • 在hadoop101中将hadoop101中的jdk复制到hadoop102中

      hadoop101中

      image-20241126115937138

      hadoop102中

      image-20241126120011511
    • 在hadoop103中将hadoop101中的jdk复制到hadoop102中

      image-20241127103039317
    • 在hadoop102中将hadoop101中的jdk复制到hadoop102中

      image-20241127103200747
  2. rsync 远程同步工具

    删除hadoop102中的/opt/module/hadoop-3.4.1/wcinput然后从hadoop101同步过去

    image-20241127103702167
  3. xsync 集群分发脚本

  4. 脚本实现

    image-20241127113002037
  5. 修改xsync的执行权限

    image-20241127104857369
  6. 测试脚本

    image-20241127104954400
  7. 将脚本复制到/bin中,以便于全局调用

    image-20241127105022139
  8. 同步环境变量

    image-20241127105229068

    其他虚拟机生效环境变量

    [atguigu@hadoop102 ~]$ source /etc/profile 
    [atguigu@hadoop103 ~]$ source /etc/profile

2.2.3 SSH无密登录配置

首先生成公钥和私钥,然后将公钥copy到需要免密登录的机器上去。

image-20241127110416858

2.2.4 集群配置

  1. 配置集群

    1. 核心配置文件

      配置core-site.xml

      shell
      cd /opt/module/hadoop-3.4.1/etc/hadoop
      vim core-site.xml

      内容如下

      image-20241127112414396
    2. HDFS配置文件

      vim hdfs-site.xml
      image-20241127112345020
    3. YRN配置文件

      vim yarn-site.xml
      image-20241127112545875
    4. MapReduce配置文件

      vim mapred-site.xml
      image-20241127112704707
  2. 在集群上分发配置好的Hadoop配置文件

    xsync /opt/module/hadoop-3.4.1/etc/hadoop/
    image-20241127113329302
  3. 去102和103上查看文件分发情况

    cat /opt/module/hadoop-3.4.1/etc/hadoop/core-site.xml
    image-20241127113542352

2.2.5 群起集群

  1. 配置workers

    编辑workers文件

    shell
    vim /opt/module/hadoop-3.4.1/etc/hadoop/workers
    image-20241127162351966

    同步所以节点配置文件

    image-20241127113947617
  2. 启动集群

    1. 格式化namenode

      image-20241127114518836
    2. 启动HDFS

      image-20241127162104517
    3. 在配置了ResourceManager的节点(hadoop102)启动YARN

      image-20241127162321847
    4. Web端查看HDFS的NameNode

      image-20241127162014274
    5. Web端查看YARN的ResourceManager

      image-20241127162638339
  3. 集群基本测试

    1. 上传文件到集群

      上传小文件

      image-20241127163122006image-20241127163133796

      上传大文件

      image-20241127163224581
    2. 查看文件存放位置

      根据block ID找到HDFS文件存储路径

      image-20241127164257087image-20241127164426175

      查看HDFS在磁盘存储文件内容

      image-20241127164528162
    3. 拼接

      image-20241127165002856
    4. 下载

      image-20241127164948471
    5. 执行wordcount程序

      image-20241127165143527

2.3.6 配置历史服务器

  1. 配置mapred-site.xml

    image-20241127165943675
  2. 分发配置

    image-20241127165655026
  3. 在hadoop102启动历史服务器

    image-20241127170014769
  4. 查看历史服务器是否启动

    image-20241127170014769
  5. 查看jobhistory

    image-20241127170156301

2.3.7配置日志的聚集

  1. 配置yarn-site.xml

    image-20241127170819501
  2. 分发配置

    image-20241127170900909
  3. 关闭NodeManager 、ResourceManager和HistoryServer

    image-20241127171006405
    image-20241127170956869
  4. 启动NodeManager 、ResourceManager和HistoryServer

    image-20241127171102143image-20241127171051761
  5. 删除HDFS上已经存在的输出文件

    image-20241127171137350
  6. 执行WordCount程序

    image-20241127172010387
  7. 查看日志

    image-20241127171934685
image-20241127172031765

2.2.8 集群启动/停止方式总结

  1. 各个模块分开启动/停止(配置ssh是前提)常用

    (1)整体启动/停止HDFS start-dfs.sh/stop-dfs.sh

    (2)整体启动/停止YARN start-yarn.sh/stop-yarn.sh

  2. 各个服务组件逐一启动/停止

    (1)分别启动/停止HDFS组件 hdfs --daemon start/stop namenode/datanode/secondarynamenode (2)启动/停止YARN yarn --daemon start/stop resourcemanager/nodemanager

2.2.9 编写Hadoop集群常用脚本

  1. Hadoop集群启停脚本(包含HDFS,Yarn,Historyserver):myhadoop.sh
image-20241127172753564

​ 保存后退出赋予脚本执行权限

image-20241127172858582
  1. 查看三台服务器Java进程脚本:jpsall

    image-20241127173114945

    保存后退出赋予脚本执行权限

    image-20241127173159592
  2. 分发/home/atguigu/bin目录,保证自定义脚本在三台机器上都可以使用

    image-20241127173234210

2.2.10 常用端口号说明

端口名称Hadoop2.xHadoop3.x
NameNode内部通信端口8020 / 90008020 / 9000/9820
NameNode HTTP UI500709870
MapReduce查看执行任务端口80888088
历史服务器通信端口1988819888

2.2.11 集群时间同步

  1. 时间服务器配置(必须root用户)

    1. 查看所有节点ntpd服务状态和开机自启动状态

      image-20241128102831051
    2. 修改hadoop101的ntp.conf 配置文件

      编辑文件sudo vim /etc/ntp.conf

      image-20241128112425376
    3. 修改hadoop101的/etc/sysconfig/ntpd 文件

      编辑文件sudo vim /etc/sysconfig/ntpd

      增加内容如下(让硬件时间与系统时间一起同步)

      image-20241128103551933
    4. 重新启动ntpd服务

      使用指令sudo systemctl start ntpd

    5. 设置ntpd服务开机启动

      使用指令sudo systemctl enable ntpd

      image-20241128103839750
  2. 其他机器配置(必须root用户)

    1. 关闭所有节点上ntp服务和自启动

      sudo systemctl stop ntpd 
      sudo systemctl disable ntpd 
      sudo systemctl stop ntpd 
      sudo systemctl disable ntpd
      image-20241128104249986
    2. 在其他机器配置1分钟与时间服务器同步一次

      编写定时文件sudo crontab -e

      image-20241128104631202
    3. 修改任意机器时间

      image-20241128104723044
    4. 1分钟后查看机器是否与时间服务器同步

      image-20241128104932962
flume的安装与使用
分布式文件系统HDFS